DevOps Tools Engineer Objectives V1(JA)

From LPI Wiki
Revision as of 07:26, 20 April 2019 by Okadaknj (talk | contribs)
Jump to navigationJump to search

はじめに

これは、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 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