Exam 701: DevOps Tools Engineer

試験のバージョン: 1.0

試験コード: 701-100

目的別の重さについて: 各項目には、重み付けの値が割り当てられています。重みは、試験における各目標の相対的な重要性を示しています。重みが高い目標は、より多くの問題で試験に取り上げられます。

Purchase Voucher

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