DevOps Tools Engineer Objectives V1(JA): Difference between revisions

From LPI Wiki
Jump to navigationJump to search
Okadaknj (talk | contribs)
No edit summary
No edit summary
 
(4 intermediate revisions by one other user not shown)
Line 26: Line 26:
* [[DevOps_Tools_Engineer_Objectives_V1|英語]]
* [[DevOps_Tools_Engineer_Objectives_V1|英語]]
* [[DevOps_Tools_Engineer_Objectives_V1(ES)|スペイン語]]
* [[DevOps_Tools_Engineer_Objectives_V1(ES)|スペイン語]]
* [[DevOps_Tools_Engineer_Objectives_V1(IT)|イタリア語]]
* [[DevOps_Tools_Engineer_Objectives_V1(JA)|日本語]]
* [[DevOps_Tools_Engineer_Objectives_V1(JA)|日本語]]


Line 48: Line 49:
| style="background:#dadada" |
| style="background:#dadada" |


'''Weight'''
'''総重量'''


| style="background:#eaeaea" | 6
| style="background:#eaeaea" | 6
Line 54: Line 55:
| style="background:#dadada; padding-right:1em" |
| style="background:#dadada; padding-right:1em" |


'''Description'''
'''説明'''


| style="background:#eaeaea" |
| style="background:#eaeaea" |


Candidates should be able to design software solutions suitable for modern runtime environments. Candidates should understand how services handle data persistence, sessions, status information, transactions, concurrency, security, performance, availability, scaling, load balancing, messaging, monitoring and APIs. Furthermore, candidates should understand the implications of agile and DevOps on software development.
データの永続性・セッション・ステータス情報・トランjザクション・並行性・セキュリティ・パフォーマンス・可用性・スケーリング・ロードバランス・メッセージング・モニタリング・APIを、どう操作するか理解している。さらに、アジャイルの影響とソフトウエア開発についてのDevOpsについて理解している。
 
|}
|}


'''Key Knowledge Areas:'''
'''主な知識分野:'''


* Understand and design service based applications
* アプリケーションベースのサービスについての、理解と設計


* Understand common API concepts and standards
* 共通APIのコンセプトと基準の理解


* Understand aspects of data storage, service status and session handling
* データストレージ・サービスステータス・セッション操作の側面の理解


* Design software to be run in containers
* コンテナで実行することを想定したソフトウエアの設計


* Design software to be deployed to cloud services
* クラウドサービスへデプロイすることを想定したソフトウエアの設定


* Awareness of risks in the migration and integration of monolithic legacy software
* マイグレーションのリスクの知識と、モノリシックなレガシーソフトウエアのインテグレーション


* Understand common application security risks and ways to mitigate them
* 共通のセキュリティリスクとそれらの軽減の理解


* Understand the concept of agile software development
* アジャイルソフトウエア開発のコンセプトの理解


* Understand the concept of DevOps and its implications to software developers and operators
* DevOpsのコンセプトと、ソフトウエア開発者とオペレータへの影響についての理解


'''The following is a partial list of the used files, terms and utilities:'''
'''利用されるファイル・用語・ユーティリティ:'''


* REST, JSON
* REST, JSON
Line 88: Line 88:
* Service Orientated Architectures (SOA)
* Service Orientated Architectures (SOA)


* Microservices
* マイクロサービス


* Immutable servers
* 普遍的なサーバ構成


* Loose coupling
* 疎結合


* Cross site scripting, SQL injections, verbose error reports, API authentication, consistent enforcement of transport encryption
* クロスサイトスクリプティング・SQLインジェクション・冗長なエラー報告・API認証・より強力な伝送路暗号化の継続性


* CORS headers and CSRF tokens
* CORSヘッダとCSRFトークン


* ACID properties and CAP theorem
* ACIDプロパティとCAP定理


<br />
<br />


====<span style="color:navy">701.2 Standard Components and Platforms for Software (weight: 2)</span>====
====<span style="color:navy">701.2 ソフトウエアのコンポーネントとプラットホームの標準(総重量: 2)</span>====


{|
{|
| style="background:#dadada" |
| style="background:#dadada" |


'''Weight'''
'''総重量'''


| style="background:#eaeaea" | 2
| style="background:#eaeaea" | 2
Line 113: Line 113:
| style="background:#dadada; padding-right:1em" |
| style="background:#dadada; padding-right:1em" |


'''Description'''
'''説明'''


| style="background:#eaeaea" |
| style="background:#eaeaea" |


Candidates should understand services offered by common cloud platforms. They should be able to include these services in their application architectures and deployment toolchains and understand the required service configurations. OpenStack service components are used as a reference implementation.
共通のクラウドプラットホームにより提供される、サービスを理解している。必要なサービスの設定の理解があり、アプリケーションアーキテクチャーとデプロイのプログラムの連携のサービスを、利用することができる。参照実装として、OpenStackのサービスコンポーネントを利用することができる。


|}
|}


'''Key Knowledge Areas:'''
'''主な知識分野:'''


* Features and concepts of object storage
* オブジェクトストレージの機能と概念


* Features and concepts of relational and NoSQL databases
* リレーショナルデータベースとNoSQLデータベースの機能と概念


* Features and concepts of message brokers and message queues
* メッセージブローカーとメッセージキューの機能と概念


* Features and concepts of big data services
* ビッグデータサービスの機能と概念


* Features and concepts of application runtimes / PaaS
* アプリケーションランタイム/PaaSの機能と概念


* Features and concepts of content delivery networks
* コンテンツデリバリーネットワークの機能と概念


'''The following is a partial list of the used files, terms and utilities:'''
'''利用されるファイル・用語・ユーティリティ:'''


* OpenStack Swift
* OpenStack Swift
Line 149: Line 149:
<br />
<br />


====<span style="color:navy">701.3 Source Code Management (weight: 5)</span>====
====<span style="color:navy">701.3 ソースコード管理 (総重量: 5)</span>====


{|
{|
| style="background:#dadada" |
| style="background:#dadada" |


'''Weight'''
'''総重量'''


| style="background:#eaeaea" | 5
| style="background:#eaeaea" | 5
Line 160: Line 160:
| style="background:#dadada; padding-right:1em" |
| style="background:#dadada; padding-right:1em" |


'''Description'''
'''説明'''


| style="background:#eaeaea" |
| style="background:#eaeaea" |


Candidates should be able to use Git to manage and share source code. This includes creating and contributing to a repository as well as the usage of tags, branches and remote repositories. Furthermore, the candidate should be able to merge files and resolve merging conflicts.
ソースコードの管理と共有に、Gitを利用することができる。タグ・ブランチ・リポートリポジトリの利用だけではなく、リポジトリの作成と提供が含まれる。さらに、ファイルのマージとマージコンフリクトを解決することができる。


|}
|}


'''Key Knowledge Areas:'''
'''主な知識分野:'''


* Understand Git concepts and repository structure
* Gitのコンセプトとリポジトリ構成の理解


* Manage files within a Git repository
* Gitリポジトリ内でのファイルの管理


* Manage branches and tags
* ブランチとタグの管理


* Work with remote repositories and branches as well as submodules
* サブモジュールだけではなく、リポートリポジトリとブランチの作業


* Merge files and branches
* ファイルとブランチのマージ


* Awareness of SVN and CVS, including concepts of centralized and distributed SCM solutions
* 中央集中型と分散型のSCM(Source Code Management)ソリューションを含んだ、SVNとCVSの知識


'''The following is a partial list of the used files, terms and utilities:'''
'''利用されるファイル・用語・ユーティリティ:'''


* git
* git
Line 190: Line 190:
<br />
<br />


====<span style="color:navy">701.4 Continuous Integration and Continuous Delivery (weight: 5)</span>====
====<span style="color:navy">701.4 継続的インテグレーションと継続的デリバリ (総重量: 5)</span>====


{|
{|
| style="background:#dadada" |
| style="background:#dadada" |


'''Weight'''
'''総重量'''


| style="background:#eaeaea" | 5
| style="background:#eaeaea" | 5
Line 201: Line 201:
| style="background:#dadada; padding-right:1em" |
| style="background:#dadada; padding-right:1em" |


'''Description'''
'''説明'''


| style="background:#eaeaea" |
| style="background:#eaeaea" |


Candidates should understand the principles and components of a continuous integration and continuous delivery pipeline. Candidates should be able to implement a CI/CD pipeline using Jenkins, including triggering the CI/CD pipeline, running unit, integration and acceptance tests, packaging software and handling the deployment of tested software artifacts. This objective covers the feature set of Jenkins version 2.0 or later.
継続的インテグレーションと継続的インテグレーションの連鎖の原理とコンポーネントの理解。CI/CDの連鎖のトリガ・ユニットテスト・テストの導入と受諾・ソフトウエアのパッケージング・テストが行われたソフトウエア成果物のデプロイの操作などを含む、Jenkinsを用いたCI/CDの連鎖の実装。試験範囲は、Jenkins version 2.0以降の機能をカバーしている。


|}
|}


'''Key Knowledge Areas:'''
'''主な知識分野:'''


* Understand the concepts of Continuous Integration and Continuous Delivery
* 継続的インテグレーションと継続的デリバリーの概念の理解


* Understand the components of a CI/CD pipeline, including builds, unit, integration and acceptance tests, artifact management, delivery and deployment
* ビルド・ユニットテスト・テストの導入と受諾・成果物管理・デリバリ・デプロイを含むCI/CDの連鎖のコンポーネントの概念の理解


* Understand deployment best practices
* デプロイのベストプラクティスの理解


* Understand the architecture and features of Jenkins, including Jenkins Plugins, Jenkins API, notifications and distributed builds
* Jenkinsの、Jenkinsプラグイン・Jenkins API・通知・分散ビルドを含んだ、アーキテクチャーと機能の理解


* Define and run jobs in Jenkins, including parameter handling
* パラメータ操作を含む、Jenkinsのジョブジョブの実行と定義


* Fingerprinting, artifacts and artifact repositories
* 指紋取得(Fingerprinting)、成果物、成果物リポジトリ


* Understand how Jenkins models continuous delivery pipelines and implement a declarative continuous delivery pipeline in Jenkins
* どのようにJenkinsモデルの継続的デリバリーが連鎖するか、そしてJenkinsで宣言的継続的デリバリの連鎖を実装するかの理解


* Awareness of possible authentication and authorization models
* 有効な認証と承認モデルの知識


* Understanding of the Pipeline Plugin
* パイプラインプラグインの理解


* Understand the features of important Jenkins modules such as Copy Artifact Plugin, Fingerprint Plugin, Docker Pipeline, Docker Build and Publish plugin, Git Plugin, Credentials Plugin
* Copy Artifactプラグイン・Fingerprintプラグイン・Dockerパイプライン・Docker Build and Publishプラグイン・Gitプラグイン・Credentialsプラグインなどの、重要なJenkinsモジュールの機能の理解


* Awareness of Artifactory and Nexus
* ArtifactoryとNexusの知識


'''The following is a partial list of the used files, terms and utilities:'''
'''利用されるファイル・用語・ユーティリティ:'''


* Step, Node, Stage
* Step, Node, Stage
Line 243: Line 243:
* Declarative Pipeline
* Declarative Pipeline


* Blue-green and canary deployment
* Blue-green と canaryデプロイメント


<br />
<br />


===''702 Container Management''===
===''702 コンテナ管理''===


====<span style="color:navy">702.1 Container Usage (weight: 7)</span>====
====<span style="color:navy">702.1 コンテナの利用方法(総重量: 7)</span>====


{|
{|
| style="background:#dadada" |
| style="background:#dadada" |


'''Weight'''
'''総重量'''


| style="background:#eaeaea" | 7
| style="background:#eaeaea" | 7
Line 260: Line 260:
| style="background:#dadada; padding-right:1em" |
| style="background:#dadada; padding-right:1em" |


'''Description'''
'''説明'''


| style="background:#eaeaea" |
| style="background:#eaeaea" |


Candidates should be able to build, share and operate Docker containers. This includes creating Dockerfiles, using a Docker registry, creating and interacting with containers as well as connecting containers to networks and storage volumes. This objective covers the feature set of Docker version 17.06 or later.
Dockerコンテナのビルド・シェア・操作することが可能である。ネットワークとストレージボリュームをコンテナに接続するだけでなく、Dockerレジストリを用いて、コンテナの作成・操作などを実現するDockerfileを作成できることを含まれる。試験範囲は、Dockerのversion 17.06以降の機能をカバーしている。


|}
|}


'''Key Knowledge Areas:'''
'''主な知識分野:'''


* Understand the Docker architecture
* Dockerの構造を理解する


* Use existing Docker images from a Docker registry
* Dockerレジストリから存在しているDockerイメージを利用する


* Create Dockerfiles and build images from Dockerfiles
* Dockerfileを作成し、Dockerfileからイメージをビルドする


* Upload images to a Docker registry
* Dockerリポジトリにイメージをアップロードする


* Operate and access Docker containers
* Dockerコンテナを操作しアクセスする


* Connect container to Docker networks
* コンテナをDockerネットワークに接続する


* Use Docker volumes for shared and persistent container storage
* コンテナストレージの共有あるいは永続化のために、Dockerボリュームを利用する


'''The following is a partial list of the used files, terms and utilities:'''
'''利用されるファイル・用語・ユーティリティ:'''


* docker
* docker
Line 294: Line 294:
<br />
<br />


====<span style="color:navy">702.2 Container Deployment and Orchestration (weight: 5)</span>====
====<span style="color:navy">702.2 コンテナのデプロイとオーケストレーション (総重量: 5)</span>====


{|
{|
| style="background:#dadada" |
| style="background:#dadada" |


'''Weight'''
'''総重量'''


| style="background:#eaeaea" | 5
| style="background:#eaeaea" | 5
Line 305: Line 305:
| style="background:#dadada; padding-right:1em" |
| style="background:#dadada; padding-right:1em" |


'''Description'''
'''説明'''


| style="background:#eaeaea" |
| style="background:#eaeaea" |


Candidates should be able to run and manage multiple containers that work together to provide a service. This includes the orchestration of Docker containers using Docker Compose in conjunction with an existing Docker Swarm cluster as well as using an existing Kubernetes cluster. This objective covers the feature sets of Docker Compose version 1.14 or later, Docker Swarm included in Docker 17.06 or later and Kubernetes 1.6 or later.
サービスを提供するために、複数のコンテナを同時に動かし管理することができる。これには、既存のKubernaetesクラスタを利用するだけではなく、存在しているDocker Swarmによる連結をDocker Composeで実現して、Dockerコンテナ群でのオーケストレーションの実現含んでいる。これには、Docker Compose version 1.14以降、Docker 17.06以降に含まれたDockerSwarm、Kubernetes 1.6以降がカバーされている。


|}
|}


'''Key Knowledge Areas:'''
'''主な知識分野:'''


* Understand the application model of Docker Compose
* Docker Composeのアプリケーションモデルを理解


* Create and run Docker Compose Files (version 3 or later)
* Docker Composeファイル(version 3以降)の作成と実行


* Understand the architecture and functionality of Docker Swarm mode
* Docker Swarmモードの構造と機能の理解


* Run containers in a Docker Swarm, including the definition of services, stacks and the usage of secrets
* サービス・スタックの定義とシークレットの利用方法を含んだ、Docker Swarmでコンテナを実行する


* Understand the architecture and application model Kubernetes
* Kuberneteの構造とアプリケーションモデルの理解


* Define and manage a container-based application for Kubernetes, including the definition of Deployments, Services, ReplicaSets and Pods
* Deployment, Services, ReplicaSet, Podsの定義を含む、Kuberneteのコンテナベースアプリケーションの定義と管理


'''The following is a partial list of the used files, terms and utilities:'''
'''利用されるファイル・用語・ユーティリティ:'''


* docker-compose
* docker-compose
Line 337: Line 337:
<br />
<br />


====<span style="color:navy">702.3 Container Infrastructure (weight: 4)</span>====
====<span style="color:navy">702.3 コンテナインフラストラクチャー (総重量: 4)</span>====


{|
{|
| style="background:#dadada" |
| style="background:#dadada" |


'''Weight'''
'''総重量'''


| style="background:#eaeaea" | 4
| style="background:#eaeaea" | 4
Line 348: Line 348:
| style="background:#dadada; padding-right:1em" |
| style="background:#dadada; padding-right:1em" |


'''Description'''
'''説明'''


| style="background:#eaeaea" |
| style="background:#eaeaea" |


Candidates should be able to set up a runtime environment for containers. This includes running containers on a local workstation as well as setting up a dedicated container host. Furthermore, candidates should be aware of other container infrastructures, storage, networking and container specific security aspects. This objective covers the feature set of Docker version 17.06 or later and Docker Machine 0.12 or later.
コンテナの実行環境をセットアップすることができる。特定のコンテナホストだけではなく、ローカルのワークステーションでコンテナを動作させることも含まれている。さらに、コンテナインフラストラクチャー・ストレージ・ネットワーキング・特定のセキュリティの側面からのコンテナの知識がある。この試験範囲は、Docker version 17.06以降とDocker Machine 0.12以降の機能をカバーしている。


|}
|}


'''Key Knowledge Areas:'''
'''主な知識分野:'''


* Use Docker Machine to setup a Docker host
* Dockerホストをセットアップするために、Docker Machineを利用する


* Understand Docker networking concepts, including overlay networks
* オーバーレイネットワークを含む、Dockerネットワーキングの概念の理解


* Create and manage Docker networks
* Dockerネットワークの理解と管理


* Understand Docker storage concepts
* Dockerストレージの概念の理解


* Create and manage Docker volumes
* Dockerボリュームの作成と管理


* Awareness of Flocker and flannel
* Flockerとflannelの知識


* Understand the concepts of service discovery
* サービスディスカバリーの概念の理解


* Basic feature knowledge of CoreOS Container Linux, rkt and etcd
* CoreOS Container Linux, rkt, etcdの基本的な機能の知識


* Understand security risks of container virtualization and container images and how to mitigate them
* コンテナ仮想化とコンテナイメージのセキュリティリスクと、それらの軽減の方法の理解


'''The following is a partial list of the used files, terms and utilities:'''
'''利用されるファイル・用語・ユーティリティ:'''


* docker-machine
* docker-machine
Line 382: Line 382:
<br />
<br />


===''703 Machine Deployment''===
===''703 マシンデプロイメント''===




====<span style="color:navy">703.1 Virtual Machine Deployment (weight: 4)</span>====
====<span style="color:navy">703.1 仮想マシンのデプロイメント (総重量: 4)</span>====


{|
{|
| style="background:#dadada" |
| style="background:#dadada" |


'''Weight'''
'''総重量'''


| style="background:#eaeaea" | 4
| style="background:#eaeaea" | 4
Line 396: Line 396:
| style="background:#dadada; padding-right:1em" |
| style="background:#dadada; padding-right:1em" |


'''Description'''
'''説明'''


| style="background:#eaeaea" |
| style="background:#eaeaea" |


Candidates should be able to automate the deployment of a virtual machine with an operating system and a specific set of configuration files and software.
オペレーティングシステムと特定の設定ファイルのセットとソフトウエアが入った仮想マシンのデプロイの自動化ができる。


|}
|}


'''Key Knowledge Areas:'''
'''主な知識分野:'''


* Understand Vagrant architecture and concepts, including storage and networking
* Vagrantのストレージとネットワークの機能を含んだ構造と概念の理解


* Retrieve and use boxes from Atlas
* Atlasからのボックスの検索と利用


* Create and run Vagrantfiles
* Vagrantfileの作成と実行


* Access Vagrant virtual machines
* Vagrant仮想マシンへのアクセス


* Share and synchronize folder between a Vagrant virtual machine and the host system
* Vagrant仮想マシンとホスソシステムの間のフォルダの共有と同期


* Understand Vagrant provisioning, including File, Shell, Ansible and Docker
* File, Shell, Ansible, Dockerを含んだVagrantのプロビジョニングの理解


* Understand multi-machine setup
* 複数マシンのセットアップの理解


'''The following is a partial list of the used files, terms and utilities:'''
'''利用されるファイル・用語・ユーティリティ:'''


* vagrant
* vagrant
Line 428: Line 428:
<br />
<br />


====<span style="color:navy">703.2 Cloud Deployment (weight: 2)</span>====
====<span style="color:navy">703.2 クラウドへのデプロイ(総重量: 2)</span>====


{|
{|
| style="background:#dadada" |
| style="background:#dadada" |


'''Weight'''
'''総重量'''


| style="background:#eaeaea" | 2
| style="background:#eaeaea" | 2
Line 439: Line 439:
| style="background:#dadada; padding-right:1em" |
| style="background:#dadada; padding-right:1em" |


'''Description'''
'''説明'''


| style="background:#eaeaea" |
| style="background:#eaeaea" |


Candidates should be able to configure IaaS cloud instances and adjust them to match their available hardware resources, specifically, disk space and volumes.  Additionally, candidates should be able to configure instances to allow secure SSH logins and prepare the instances to be ready for a configuration management tool such as Ansible.
IaaSクラウドインスタンスが設定可能で、特にディスクの容量や空き容量の、利用可能なハードウエアリソースにマッチした調整をすることができる。さらに、インスタンスにセキュアなSSHログインを許可し、Ansibleのような設定管理ツールを利用可能に準備することができる。


|}
|}


'''Key Knowledge Areas:'''
'''主な知識分野:'''


* Understanding the features and concepts of cloud-init, including user-data and initializing and configuring cloud-init
* ユーザデータと初期化とcloud-initの設定を含む、cloud-initの機能と概念の理解


* Use cloud-init to create, resize and mount file systems, configure user accounts, including login credentials such as SSH keys and install software packages from the distribution’s repository
* SSHキーのようなログイン証明書と配布リポジトリからのソフトウエアパッケージのインストールを含む、ファイルシステムの作成・リサイズ・マウント、ユーザアカウントの設定、cloud-initの利用


* Understand the features and implications of IaaS clouds and virtualization for a computing instance, such as snapshotting, pausing, cloning and resource limits.
* スナップショット・一時停止・クローン・リソース制限などの、コンピューティングインスタンスの仮想化とIaaSクラウドの、機能と影響の理解


<br />
<br />


====<span style="color:navy">703.3 System Image Creation (weight: 2)</span>====
====<span style="color:navy">703.3 システムイメージの作成 (総重量: 2)</span>====


{|
{|
| style="background:#dadada" |
| style="background:#dadada" |


'''Weight'''
'''総重量'''


| style="background:#eaeaea" | 2
| style="background:#eaeaea" | 2
Line 468: Line 468:
| style="background:#dadada; padding-right:1em" |
| style="background:#dadada; padding-right:1em" |


'''Description'''
'''説明'''


| style="background:#eaeaea" |
| style="background:#eaeaea" |


Candidates should be able to create images for containers, virtual machines and IaaS cloud instances.
コンテナ・仮想マシン・IaaSクラウドインスタンスのイメージを作成することができる


|}
|}


'''Key Knowledge Areas:'''
'''主な知識分野:'''


* Understand the functionality and features of Packer
* Packerの機能と仕様の理解


* Create and maintain template files
* テンプレートファイルの作成と管理


* Build images from template files using different builders
* 異なるビルダを利用したテンプレートファイルからイメージを構築


'''The following is a partial list of the used files, terms and utilities:'''
'''利用されるファイル・用語・ユーティリティ:'''


* packer
* packer
Line 490: Line 490:
<br />
<br />


===''704 Configuration Management''===
===''704 設定管理''===


====<span style="color:navy">704.1 Ansible (weight: 8)</span>====
====<span style="color:navy">704.1 Ansible (総重量: 8)</span>====


{|
{|
| style="background:#dadada" |
| style="background:#dadada" |


'''Weight'''
'''総重量'''


| style="background:#eaeaea" | 8
| style="background:#eaeaea" | 8
Line 503: Line 503:
| style="background:#dadada; padding-right:1em" |
| style="background:#dadada; padding-right:1em" |


'''Description'''
'''説明'''


| style="background:#eaeaea" |
| style="background:#eaeaea" |


Candidates should be able to use Ansible to ensure a target server is in a specific state regarding its configuration and installed software. This objective covers the feature set of Ansible version 2.2 or later.
Ansibleを利用して、対象のサーバが設定ファイルにより特定の状態であり、ソフトウエアがインストールされている状態にすることができる。この試験範囲は、Ansible version 2.2以降をカバーしている。


|}
|}


'''Key Knowledge Areas:'''
'''主な知識分野:'''


* Understand the principles of automated system configuration and software installation
* システムの設定とソフトウエアのインストールの自動化の、概念の理解


* Create and maintain inventory files
* インベントリファイルの作成と管理


* Understand how Ansible interacts with remote systems
* リモートシステムのAnsibleの動作の理解


* Manage SSH login credentials for Ansible, including using unprivileged login accounts
* 非特権アカウントの利用を含む、AnsibleのSSHログイン証明書の管理


* Create, maintain and run Ansible playbooks, including tasks, handlers, conditionals, loops and registers
* task, handlers, loops, registersを含むAnsible playbookの作成・管理・実行


* Set and use variables
* 変数の定義と利用


* Maintain secrets using Ansible vaults
* Ansible vaultを利用した、パスワードの管理


* Write Jinja2 templates, including using common filters, loops and conditionals
* 共通のfilter, loop, conditionalを用いた、Jinja2テンプレートの記述


* Understand and use Ansible roles and install Ansible roles from Ansible Galaxy
* Ansible roleの利用と理解、Ansible GalaxyからのAnsible roleのインストール


* Understand and use important Ansible tasks, including file, copy, template, ini_file, lineinfile, patch, replace, user, group, command, shell, service, systemd, cron, apt, debconf, yum, git, and debug
* ファイルのinclude, copy, template, ini_file, lineinfile, patch, replace, user, group command, shell, service, systemd, cron, apt, debconf, yum, git, debugの、重要なAnsible taskの理解と利用


* Awareness of dynamic inventory
* AnsibleのDynamic Inventoryの知識


* Awareness of Ansibles features for non-Linux systems
* 非LinuxシステムでのAnsibleの仕様の知識


* Awareness of Ansible containers
* Ansibleコンテナの知識


'''The following is a partial list of the used files, terms and utilities:'''
'''利用されるファイル・用語・ユーティリティ:'''


* ansible.cfg
* ansible.cfg
Line 553: Line 553:
<br />
<br />


====<span style="color:navy">704.2 Other Configuration Management Tools (weight: 2)</span>====
====<span style="color:navy">704.2 他の設定管理ツール(総重量: 2)</span>====


{|
{|
| style="background:#dadada" |
| style="background:#dadada" |


'''Weight'''
'''総重量'''


| style="background:#eaeaea" | 2
| style="background:#eaeaea" | 2
Line 564: Line 564:
| style="background:#dadada; padding-right:1em" |
| style="background:#dadada; padding-right:1em" |


'''Description'''
'''説明'''


| style="background:#eaeaea" |
| style="background:#eaeaea" |


Candidates should understand the main features and principles of important configuration management tools other than Ansible.
Ansible以外の重要な設定管理ツールの主な仕様と概念の理解している。


|}
|}


'''Key Knowledge Areas:'''
'''主な知識分野:'''


* Basic feature and architecture knowledge of Puppet.
* Puppetの基本的な仕様と構造の知識


* Basic feature and architecture knowledge of Chef.
* Chefの基本的な仕様と構造の知識


'''The following is a partial list of the used files, terms and utilities:'''
'''利用されるファイル・用語・ユーティリティ:'''


* Manifest, Class, Recipe, Cookbook
* Manifest, Class, Recipe, Cookbook
Line 596: Line 596:
<br />
<br />


===''705 Service Operations''===
===''705 サービスオペレーション''===




====<span style="color:navy">705.1 IT Operations and Monitoring (weight: 4)</span>====
====<span style="color:navy">705.1 IT オペレーションと監視 (総重量: 4)</span>====


{|
{|
| style="background:#dadada" |
| style="background:#dadada" |


'''Weight'''
'''総重量'''


| style="background:#eaeaea" | 4
| style="background:#eaeaea" | 4
Line 610: Line 610:
| style="background:#dadada; padding-right:1em" |
| style="background:#dadada; padding-right:1em" |


'''Description'''
'''説明'''


| style="background:#eaeaea" |
| style="background:#eaeaea" |


Candidates should understand how IT infrastructure is involved in delivering a service. This includes knowledge about the major goals of IT operations, understanding functional and nonfunctional properties of an IT services and ways to monitor and measure them using Prometheus. Furthermore candidates should understand major security risks in IT infrastructure. This objective covers the feature set of Prometheus 1.7 or later.
ITインフラがサービスのデリバリーを実行する方法を理解している。これには、ITサービスの機能・非機能の理解と、Prometheusを利用したそれらの監視と測定の方法を理解、ITオペレーションの主要な目標についての理解が含まれている。さらに、ITインフラの主要なセキュリティリスクを理解している。この試験範囲は、Prometheus バージョン1.7以降の機能セットをカバーしている。


|}
|}


'''Key Knowledge Areas:'''
'''主な知識分野:'''


* Understand goals of IT operations and service provisioning, including nonfunctional properties such as availability, latency, responsiveness
* 可用性・反応速度・黄桃などの非機能プロパティを含む、ITオペレーションとサービスのプロビジョニングの目標を理解している


* Understand and identify metrics and indicators to monitor and measure the technical functionality of a service
* サービスの技術的な機能を監視・測定するための、指標や基準を理解し特定する


* Understand and identify metrics and indicators to monitor and measure the logical functionality of a service
* サービスの論理的な機能を監視・測定するための、指標や基準を理解し特定する


* Understand the architecture of Prometheus, including Exporters, Pushgateway, Alertmanager and Grafana
* Exporters, Pushgateway, Altermanager, Grafanaを含む、Prometheusの構造の理解


* Monitor containers and microservices using Prometheus
* Prometheusを利用して、コンテナとマイクロサービスを監視


* Understand the principles of IT attacks against IT infrastructure
* ITインフラに対するIT攻撃の原理の理解


* Understand the principles of the most important ways to protect IT infrastructure
* ITインフラを守る重要な方法の原理の理解


* Understand core IT infrastructure components and their the role in deployment
* ITインフラコンポーネントの主要部分と、デプロイでの役割の理解


'''The following is a partial list of the used files, terms and utilities:'''
'''利用されるファイル・用語・ユーティリティ:'''


* Prometheus, Node exporter, Pushgateway, Altermanager, Grafana
* Prometheus, Node exporter, Pushgateway, Altermanager, Grafana


* Service exploits, brute force attacks, and denial of service attacks
* Service exploits, ブルートフォースアタック, DoS


* Security updates, packet filtering and application gateways
* セキュリティアップデート、パケットフィルタリング、アプリケーションゲートウェイ


* Virtualization hosts, DNS and load balancers
* 仮想化ホスト、DNSとロードバランサー


<br />
<br />


====<span style="color:navy">705.2 Log Management and Analysis (weight: 4)</span>====
====<span style="color:navy">705.2 ログの管理と分析 (総重量: 4)</span>====


{|
{|
| style="background:#dadada" |
| style="background:#dadada" |


'''Weight'''
'''総重量'''


| style="background:#eaeaea" | 4
| style="background:#eaeaea" | 4
Line 659: Line 659:
| style="background:#dadada; padding-right:1em" |
| style="background:#dadada; padding-right:1em" |


'''Description'''
'''説明'''


| style="background:#eaeaea" |
| style="background:#eaeaea" |


Candidates should understand the role of log files in operations and troubleshooting. They should be able to set up centralized logging infrastructure based on Logstash to collect and normalize log data. Furthermore, candidates should understand how Elasticsearch and Kibana help to store and access log data.
オペレーションとトラブルシューティングにおいて、ログファイルの役割を理解している。ログデータの取得と標準化を、Logstashに基づいた中央集中化したログインフラの設定をすることができる。さらに、ログデータの保存とアクセスのために、ElasticSearchとKibanaの利用方法を理解している。


|}
|}


'''Key Knowledge Areas:'''
'''主な知識分野:'''


* Understand how application and system logging works
* アプリケーションとシステムログの働きの理解


* Understand the architecture and functionality of Logstash, including the lifecycle of a log message and Logstash plugins
* ログメッセージのライフサイクルとLogstashのプラグインを含む、Logstashの機能と構造の理解


* Understand the architecture and functionality of Elasticsearch and Kibana in the context of log data management (Elastic Stack)
* ログデータ管理(Elastic Stack)の背景とするElasticsearchとKibanaの構造と機能の理解


* Configure Logstash to collect, normalize, transform and ship log data
* ログデータの収集・標準化・変換・出荷のためのLogstashの設定


* Configure syslog and Filebeat to send log data to Logstash
* Logstashにログデータを送るため、syslogとFilebeatの設定


* Configure Logstash to send email alerts
* emailによる警告を送るための、Logstashの設定


* Understand application support for log management
* ログ管理のためのアプリケーションサポートの理解


'''The following is a partial list of the used files, terms and utilities:'''
'''利用されるファイル・用語・ユーティリティ:'''


* logstash
* logstash

Latest revision as of 11:10, 18 May 2021

はじめに

これは、LPI DevOps Tools Engineer認定試験に必要な項目です。DevOpsを実現するために必要な、一般的なツールの使い方に関する基本的なスキルをカバーしています。

このページは、現在リリースされているLPI DevOps Tools Engineer認定試験の試験範囲をカバーしています。


受験生への注意事項

本資格の所有者は、オリジナルのソースから、最終デプロイ・配布可能な製品・オープンソース技術の利用して特定の分野に特化したサービスなどを、取得するための頑丈で効率的なプロセスが必要である、ITソリューションの生産に関わっている、プロフェッショナルのソフトウエア開発者か、プロフェッショナルのシステム管理者です。本資格の所有者は、システム管理だけではなく、ソフトウエア開発の側面からも取り組む強調型の手法を利用して、ソフトウエアを作成・実行・操作できる能力があります。特に、本資格所有者は、ソリューションや製品の開発と操作の仲介に熟練しています。本資格所有者はこれらのツールが、安定して、スケーラブルで、最新のサービスを、ユーザと顧客に対して実行をする操作タスクや開発を、どうやってやりやすくするかを理解しています。


バージョン情報

この試験範囲は、バージョン1.0.0。


試験範囲の翻訳

このwikiに、以下の試験範囲の翻訳があります:


試験

LPI DevOps Tools Engineer認定試験は、この試験に合格した後に認定されます。試験を受験するにあたり、他の資格を所有している必要はありません。LPIは、すべてのLinux Professional Institute DevOps Toolsのエンジニアが、システム管理者かソフトウエア開発者のどちらかで、最低1つの有効な認定試験を保持していることを、推奨しています。この試験は、LPIC-1と同等のレベルです。


試験範囲

701 ソフトウエアエンジニアリング

701.1 モダンなソフトウエア開発 (総重量: 6)

総重量

6

説明

データの永続性・セッション・ステータス情報・トランjザクション・並行性・セキュリティ・パフォーマンス・可用性・スケーリング・ロードバランス・メッセージング・モニタリング・APIを、どう操作するか理解している。さらに、アジャイルの影響とソフトウエア開発についてのDevOpsについて理解している。

主な知識分野:

  • アプリケーションベースのサービスについての、理解と設計
  • 共通APIのコンセプトと基準の理解
  • データストレージ・サービスステータス・セッション操作の側面の理解
  • コンテナで実行することを想定したソフトウエアの設計
  • クラウドサービスへデプロイすることを想定したソフトウエアの設定
  • マイグレーションのリスクの知識と、モノリシックなレガシーソフトウエアのインテグレーション
  • 共通のセキュリティリスクとそれらの軽減の理解
  • アジャイルソフトウエア開発のコンセプトの理解
  • DevOpsのコンセプトと、ソフトウエア開発者とオペレータへの影響についての理解

利用されるファイル・用語・ユーティリティ:

  • REST, JSON
  • Service Orientated Architectures (SOA)
  • マイクロサービス
  • 普遍的なサーバ構成
  • 疎結合
  • クロスサイトスクリプティング・SQLインジェクション・冗長なエラー報告・API認証・より強力な伝送路暗号化の継続性
  • CORSヘッダとCSRFトークン
  • ACIDプロパティとCAP定理


701.2 ソフトウエアのコンポーネントとプラットホームの標準(総重量: 2)

総重量

2

説明

共通のクラウドプラットホームにより提供される、サービスを理解している。必要なサービスの設定の理解があり、アプリケーションアーキテクチャーとデプロイのプログラムの連携のサービスを、利用することができる。参照実装として、OpenStackのサービスコンポーネントを利用することができる。

主な知識分野:

  • オブジェクトストレージの機能と概念
  • リレーショナルデータベースとNoSQLデータベースの機能と概念
  • メッセージブローカーとメッセージキューの機能と概念
  • ビッグデータサービスの機能と概念
  • アプリケーションランタイム/PaaSの機能と概念
  • コンテンツデリバリーネットワークの機能と概念

利用されるファイル・用語・ユーティリティ:

  • OpenStack Swift
  • OpenStack Trove
  • OpenStack Zaqar
  • CloudFoundry
  • OpenShift


701.3 ソースコード管理 (総重量: 5)

総重量

5

説明

ソースコードの管理と共有に、Gitを利用することができる。タグ・ブランチ・リポートリポジトリの利用だけではなく、リポジトリの作成と提供が含まれる。さらに、ファイルのマージとマージコンフリクトを解決することができる。

主な知識分野:

  • Gitのコンセプトとリポジトリ構成の理解
  • Gitリポジトリ内でのファイルの管理
  • ブランチとタグの管理
  • サブモジュールだけではなく、リポートリポジトリとブランチの作業
  • ファイルとブランチのマージ
  • 中央集中型と分散型のSCM(Source Code Management)ソリューションを含んだ、SVNとCVSの知識

利用されるファイル・用語・ユーティリティ:

  • git
  • .gitignore


701.4 継続的インテグレーションと継続的デリバリ (総重量: 5)

総重量

5

説明

継続的インテグレーションと継続的インテグレーションの連鎖の原理とコンポーネントの理解。CI/CDの連鎖のトリガ・ユニットテスト・テストの導入と受諾・ソフトウエアのパッケージング・テストが行われたソフトウエア成果物のデプロイの操作などを含む、Jenkinsを用いたCI/CDの連鎖の実装。試験範囲は、Jenkins version 2.0以降の機能をカバーしている。

主な知識分野:

  • 継続的インテグレーションと継続的デリバリーの概念の理解
  • ビルド・ユニットテスト・テストの導入と受諾・成果物管理・デリバリ・デプロイを含むCI/CDの連鎖のコンポーネントの概念の理解
  • デプロイのベストプラクティスの理解
  • Jenkinsの、Jenkinsプラグイン・Jenkins API・通知・分散ビルドを含んだ、アーキテクチャーと機能の理解
  • パラメータ操作を含む、Jenkinsのジョブジョブの実行と定義
  • 指紋取得(Fingerprinting)、成果物、成果物リポジトリ
  • どのようにJenkinsモデルの継続的デリバリーが連鎖するか、そしてJenkinsで宣言的継続的デリバリの連鎖を実装するかの理解
  • 有効な認証と承認モデルの知識
  • パイプラインプラグインの理解
  • Copy Artifactプラグイン・Fingerprintプラグイン・Dockerパイプライン・Docker Build and Publishプラグイン・Gitプラグイン・Credentialsプラグインなどの、重要なJenkinsモジュールの機能の理解
  • ArtifactoryとNexusの知識

利用されるファイル・用語・ユーティリティ:

  • Step, Node, Stage
  • Jenkins SDL
  • Jenkinsfile
  • Declarative Pipeline
  • Blue-green と canaryデプロイメント


702 コンテナ管理

702.1 コンテナの利用方法(総重量: 7)

総重量

7

説明

Dockerコンテナのビルド・シェア・操作することが可能である。ネットワークとストレージボリュームをコンテナに接続するだけでなく、Dockerレジストリを用いて、コンテナの作成・操作などを実現するDockerfileを作成できることを含まれる。試験範囲は、Dockerのversion 17.06以降の機能をカバーしている。

主な知識分野:

  • Dockerの構造を理解する
  • Dockerレジストリから存在しているDockerイメージを利用する
  • Dockerfileを作成し、Dockerfileからイメージをビルドする
  • Dockerリポジトリにイメージをアップロードする
  • Dockerコンテナを操作しアクセスする
  • コンテナをDockerネットワークに接続する
  • コンテナストレージの共有あるいは永続化のために、Dockerボリュームを利用する

利用されるファイル・用語・ユーティリティ:

  • docker
  • Dockerfile
  • .dockerignore


702.2 コンテナのデプロイとオーケストレーション (総重量: 5)

総重量

5

説明

サービスを提供するために、複数のコンテナを同時に動かし管理することができる。これには、既存のKubernaetesクラスタを利用するだけではなく、存在しているDocker Swarmによる連結をDocker Composeで実現して、Dockerコンテナ群でのオーケストレーションの実現含んでいる。これには、Docker Compose version 1.14以降、Docker 17.06以降に含まれたDockerSwarm、Kubernetes 1.6以降がカバーされている。

主な知識分野:

  • Docker Composeのアプリケーションモデルを理解
  • Docker Composeファイル(version 3以降)の作成と実行
  • Docker Swarmモードの構造と機能の理解
  • サービス・スタックの定義とシークレットの利用方法を含んだ、Docker Swarmでコンテナを実行する
  • Kuberneteの構造とアプリケーションモデルの理解
  • Deployment, Services, ReplicaSet, Podsの定義を含む、Kuberneteのコンテナベースアプリケーションの定義と管理

利用されるファイル・用語・ユーティリティ:

  • docker-compose
  • docker
  • kubectl


702.3 コンテナインフラストラクチャー (総重量: 4)

総重量

4

説明

コンテナの実行環境をセットアップすることができる。特定のコンテナホストだけではなく、ローカルのワークステーションでコンテナを動作させることも含まれている。さらに、コンテナインフラストラクチャー・ストレージ・ネットワーキング・特定のセキュリティの側面からのコンテナの知識がある。この試験範囲は、Docker version 17.06以降とDocker Machine 0.12以降の機能をカバーしている。

主な知識分野:

  • Dockerホストをセットアップするために、Docker Machineを利用する
  • オーバーレイネットワークを含む、Dockerネットワーキングの概念の理解
  • Dockerネットワークの理解と管理
  • Dockerストレージの概念の理解
  • Dockerボリュームの作成と管理
  • Flockerとflannelの知識
  • サービスディスカバリーの概念の理解
  • CoreOS Container Linux, rkt, etcdの基本的な機能の知識
  • コンテナ仮想化とコンテナイメージのセキュリティリスクと、それらの軽減の方法の理解

利用されるファイル・用語・ユーティリティ:

  • docker-machine


703 マシンデプロイメント

703.1 仮想マシンのデプロイメント (総重量: 4)

総重量

4

説明

オペレーティングシステムと特定の設定ファイルのセットとソフトウエアが入った仮想マシンのデプロイの自動化ができる。

主な知識分野:

  • Vagrantのストレージとネットワークの機能を含んだ構造と概念の理解
  • Atlasからのボックスの検索と利用
  • Vagrantfileの作成と実行
  • Vagrant仮想マシンへのアクセス
  • Vagrant仮想マシンとホスソシステムの間のフォルダの共有と同期
  • File, Shell, Ansible, Dockerを含んだVagrantのプロビジョニングの理解
  • 複数マシンのセットアップの理解

利用されるファイル・用語・ユーティリティ:

  • vagrant
  • Vagrantfile


703.2 クラウドへのデプロイ(総重量: 2)

総重量

2

説明

IaaSクラウドインスタンスが設定可能で、特にディスクの容量や空き容量の、利用可能なハードウエアリソースにマッチした調整をすることができる。さらに、インスタンスにセキュアなSSHログインを許可し、Ansibleのような設定管理ツールを利用可能に準備することができる。

主な知識分野:

  • ユーザデータと初期化とcloud-initの設定を含む、cloud-initの機能と概念の理解
  • SSHキーのようなログイン証明書と配布リポジトリからのソフトウエアパッケージのインストールを含む、ファイルシステムの作成・リサイズ・マウント、ユーザアカウントの設定、cloud-initの利用
  • スナップショット・一時停止・クローン・リソース制限などの、コンピューティングインスタンスの仮想化とIaaSクラウドの、機能と影響の理解


703.3 システムイメージの作成 (総重量: 2)

総重量

2

説明

コンテナ・仮想マシン・IaaSクラウドインスタンスのイメージを作成することができる

主な知識分野:

  • Packerの機能と仕様の理解
  • テンプレートファイルの作成と管理
  • 異なるビルダを利用したテンプレートファイルからイメージを構築

利用されるファイル・用語・ユーティリティ:

  • packer


704 設定管理

704.1 Ansible (総重量: 8)

総重量

8

説明

Ansibleを利用して、対象のサーバが設定ファイルにより特定の状態であり、ソフトウエアがインストールされている状態にすることができる。この試験範囲は、Ansible version 2.2以降をカバーしている。

主な知識分野:

  • システムの設定とソフトウエアのインストールの自動化の、概念の理解
  • インベントリファイルの作成と管理
  • リモートシステムのAnsibleの動作の理解
  • 非特権アカウントの利用を含む、AnsibleのSSHログイン証明書の管理
  • task, handlers, loops, registersを含むAnsible playbookの作成・管理・実行
  • 変数の定義と利用
  • Ansible vaultを利用した、パスワードの管理
  • 共通のfilter, loop, conditionalを用いた、Jinja2テンプレートの記述
  • Ansible roleの利用と理解、Ansible GalaxyからのAnsible roleのインストール
  • ファイルのinclude, copy, template, ini_file, lineinfile, patch, replace, user, group command, shell, service, systemd, cron, apt, debconf, yum, git, debugの、重要なAnsible taskの理解と利用
  • AnsibleのDynamic Inventoryの知識
  • 非LinuxシステムでのAnsibleの仕様の知識
  • Ansibleコンテナの知識

利用されるファイル・用語・ユーティリティ:

  • ansible.cfg
  • ansible-playbook
  • ansible-vault
  • ansible-galaxy
  • ansible-doc


704.2 他の設定管理ツール(総重量: 2)

総重量

2

説明

Ansible以外の重要な設定管理ツールの主な仕様と概念の理解している。

主な知識分野:

  • Puppetの基本的な仕様と構造の知識
  • Chefの基本的な仕様と構造の知識

利用されるファイル・用語・ユーティリティ:

  • Manifest, Class, Recipe, Cookbook
  • puppet
  • chef
  • chef-solo
  • chef-client
  • chef-server-ctl
  • knife


705 サービスオペレーション

705.1 IT オペレーションと監視 (総重量: 4)

総重量

4

説明

ITインフラがサービスのデリバリーを実行する方法を理解している。これには、ITサービスの機能・非機能の理解と、Prometheusを利用したそれらの監視と測定の方法を理解、ITオペレーションの主要な目標についての理解が含まれている。さらに、ITインフラの主要なセキュリティリスクを理解している。この試験範囲は、Prometheus バージョン1.7以降の機能セットをカバーしている。

主な知識分野:

  • 可用性・反応速度・黄桃などの非機能プロパティを含む、ITオペレーションとサービスのプロビジョニングの目標を理解している
  • サービスの技術的な機能を監視・測定するための、指標や基準を理解し特定する
  • サービスの論理的な機能を監視・測定するための、指標や基準を理解し特定する
  • Exporters, Pushgateway, Altermanager, Grafanaを含む、Prometheusの構造の理解
  • Prometheusを利用して、コンテナとマイクロサービスを監視
  • ITインフラに対するIT攻撃の原理の理解
  • ITインフラを守る重要な方法の原理の理解
  • ITインフラコンポーネントの主要部分と、デプロイでの役割の理解

利用されるファイル・用語・ユーティリティ:

  • Prometheus, Node exporter, Pushgateway, Altermanager, Grafana
  • Service exploits, ブルートフォースアタック, DoS
  • セキュリティアップデート、パケットフィルタリング、アプリケーションゲートウェイ
  • 仮想化ホスト、DNSとロードバランサー


705.2 ログの管理と分析 (総重量: 4)

総重量

4

説明

オペレーションとトラブルシューティングにおいて、ログファイルの役割を理解している。ログデータの取得と標準化を、Logstashに基づいた中央集中化したログインフラの設定をすることができる。さらに、ログデータの保存とアクセスのために、ElasticSearchとKibanaの利用方法を理解している。

主な知識分野:

  • アプリケーションとシステムログの働きの理解
  • ログメッセージのライフサイクルとLogstashのプラグインを含む、Logstashの機能と構造の理解
  • ログデータ管理(Elastic Stack)の背景とするElasticsearchとKibanaの構造と機能の理解
  • ログデータの収集・標準化・変換・出荷のためのLogstashの設定
  • Logstashにログデータを送るため、syslogとFilebeatの設定
  • emailによる警告を送るための、Logstashの設定
  • ログ管理のためのアプリケーションサポートの理解

利用されるファイル・用語・ユーティリティ:

  • logstash
  • input, filter, output
  • grok filter
  • Log files, metrics
  • syslog.conf
  • /etc/logstash/logstash.yml
  • /etc/filebeat/filebeat.yml