DevOps Tools Engineer Objectives V1(JA)
はじめに
これは、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 Container Infrastructure (weight: 4)
|
Weight |
4 |
|
Description |
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. |
Key Knowledge Areas:
- Use Docker Machine to setup a Docker host
- Understand Docker networking concepts, including overlay networks
- Create and manage Docker networks
- Understand Docker storage concepts
- Create and manage Docker volumes
- Awareness of Flocker and flannel
- Understand the concepts of service discovery
- Basic feature knowledge of CoreOS Container Linux, rkt and 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
703 Machine Deployment
703.1 Virtual Machine Deployment (weight: 4)
|
Weight |
4 |
|
Description |
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
- Retrieve and use boxes from Atlas
- Create and run Vagrantfiles
- Access Vagrant virtual machines
- Share and synchronize folder between a Vagrant virtual machine and the host system
- Understand Vagrant provisioning, including File, Shell, Ansible and Docker
- Understand multi-machine setup
The following is a partial list of the used files, terms and utilities:
- vagrant
- Vagrantfile
703.2 Cloud Deployment (weight: 2)
|
Weight |
2 |
|
Description |
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. |
Key Knowledge Areas:
- Understanding the features and concepts of cloud-init, including user-data and initializing and configuring 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
- Understand the features and implications of IaaS clouds and virtualization for a computing instance, such as snapshotting, pausing, cloning and resource limits.
703.3 System Image Creation (weight: 2)
|
Weight |
2 |
|
Description |
Candidates should be able to create images for containers, virtual machines and IaaS cloud instances. |
Key Knowledge Areas:
- Understand the functionality and features of 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
704 Configuration Management
704.1 Ansible (weight: 8)
|
Weight |
8 |
|
Description |
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. |
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
- Manage SSH login credentials for Ansible, including using unprivileged login accounts
- Create, maintain and run Ansible playbooks, including tasks, handlers, conditionals, loops and registers
- Set and use variables
- Maintain secrets using Ansible vaults
- Write Jinja2 templates, including using common filters, loops and conditionals
- Understand and use Ansible roles and install Ansible roles from Ansible Galaxy
- 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
- Awareness of dynamic inventory
- Awareness of Ansibles features for non-Linux systems
- Awareness of Ansible containers
The following is a partial list of the used files, terms and utilities:
- ansible.cfg
- ansible-playbook
- ansible-vault
- ansible-galaxy
- ansible-doc
704.2 Other Configuration Management Tools (weight: 2)
|
Weight |
2 |
|
Description |
Candidates should understand the main features and principles of important configuration management tools other than Ansible. |
Key Knowledge Areas:
- Basic feature and architecture knowledge of Puppet.
- Basic feature and architecture knowledge of Chef.
The following is a partial list of the used files, terms and utilities:
- Manifest, Class, Recipe, Cookbook
- puppet
- chef
- chef-solo
- chef-client
- chef-server-ctl
- knife
705 Service Operations
705.1 IT Operations and Monitoring (weight: 4)
|
Weight |
4 |
|
Description |
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. |
Key Knowledge Areas:
- Understand goals of IT operations and service provisioning, including nonfunctional properties such as availability, latency, responsiveness
- 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
- Monitor containers and microservices using Prometheus
- Understand the principles of IT attacks against IT infrastructure
- Understand the principles of the most important ways to protect IT infrastructure
- Understand core IT infrastructure components and their the role in deployment
The following is a partial list of the used files, terms and utilities:
- Prometheus, Node exporter, Pushgateway, Altermanager, Grafana
- Service exploits, brute force attacks, and denial of service attacks
- Security updates, packet filtering and application gateways
- Virtualization hosts, DNS and load balancers
705.2 Log Management and Analysis (weight: 4)
|
Weight |
4 |
|
Description |
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. |
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
- Understand the architecture and functionality of Elasticsearch and Kibana in the context of log data management (Elastic Stack)
- Configure Logstash to collect, normalize, transform and ship log data
- Configure syslog and Filebeat to send log data to Logstash
- Configure Logstash to send email alerts
- Understand application support for log management
The following is a partial list of the used files, terms and utilities:
- logstash
- input, filter, output
- grok filter
- Log files, metrics
- syslog.conf
- /etc/logstash/logstash.yml
- /etc/filebeat/filebeat.yml