非開発者向けAZ-400入門

この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。

はじめに

AZ-400はDevOpsソリューションの設計と実装がテーマの試験で、前提となる試験(AZ-104 or AZ-204)とこの試験に合格することで DevOps Engineer Expert の資格を取得することができます。
これまで開発経験は全くありませんでしたが、なんとか合格することができましたで今後受験を考えている方に向けて有効と思われるポイントを紹介していきたいと思います。


AZ-400の出題範囲についてはざっくりと把握していることを前提とします。
試験のアウトラインおよび Microsoft公式のラーニングパスはこちらをご確認ください。

【注意】
開発経験が全くない人向けの内容です!具体的には リポジトリやプルリクエスト ってなに? くらいのレベルを想定しています。
また内容は試験勉強を進めるための大前提となっています。より深い知識はMS Learnを活用しましょう。

どのような問われ方をするか?

DevOps全体の流れを把握していることを前提として、何かしらのシチュエーションにおいて最適な解を選択する問題が多く出題されていた印象でした。以下に例題と回答に至るプロセスを記載します。


例:Azure Piplineを使用している状況においてリリースがシステムのパフォーマンスに影響を及ぼしている。条件を満たした場合にのみ運用環境に展開されるようにしたい。どんな機能を使うか?

例:Azure Piplineを使用している状況においてリリースがシステムのパフォーマンスに影響を及ぼしている。条件を満たした場合にのみ運用環境に展開されるようにしたい。どんな機能を使うか?

まずはこの問題がどんなシチュエーションなのかを考えてみます。
”リリース”とありますので、リリースパイプラインに関することが問われています。パイプラインは1つ以上のステージで構成されており、さらにステージの構成要素として 展開前の条件 ⇒ 展開プロセス ⇒ 展開後の条件 という流れとなっています。
今回は ”条件を満たした場合にのみ展開” とあるので展開前に問題がないことを確認できる「ゲート」という機能を使うことが答えとなります。

実際は4択問題が多いので経験がある方であればピンとくるかもしれませんが、私はここまで把握しないと回答にたどり着くことができませんでした・・・。

まず覚えておくこと

まずDevOpsの流れをおさえてどこでどんなサービスが使われるのかを覚えると良いと思います。 上記の例題のように基本的に何かしらの状況において出題されるため、問題を読んで次のことを抑えられれば意図をつかみやすくなると思います。

・その問題がDevOpsの流れのどの部分にあたるのか?
どんなサービスを使おうとしているのか?

次にDevOpsの大まかな流れを説明します。

DevOpsの大まかな流れ

この図はすでにDevOps環境は整っており、開発者がソースコードを変更したときの流れを表しています。リポジトリやパイプラインといった用語が出てきますが後程解説します。

開発者 ⇒ リポジトリ開発者はVisual Studioなどを使ってローカルリポジトリでソースコードを変更します。それをリポジトリにコミットします。
リポジトリ ⇒ ビルドパイプラインリポジトリへのソースコードのチェックイン(など)をトリガーにして、ビルドパイプラインを起動します。
ソースコードから成果物がビルドされます。これが継続的インテグレーション(CI)です。
パッケージ管理 ⇒ ビルドパイプラインビルドで使用するパッケージを取得します。
ビルドパイプライン ⇒ リリースパイプライン継続的インテグレーション(CI)によりリリースパイプラインがトリガーされます。アプリケーションがデプロイされます。これが継続的デリバリー(CD)です。
リリースパイプライン ⇒ テストアプリケーションの受入テストが実行されます。
※試験には出題されませんでした。
テスト ⇒ WebアプリアプリケーションがWeb Appなどにデプロイされます。
Webアプリ ⇒ 監視Application Insightsなどにより正常性、パフォーマンス、使用状況のテレメトリを収集します。
監視 ⇒ 開発者アプリケーションの運用を、収集したテレメトリにより監視・分析します。
開発者 ⇔ バックログ作業の計画・追跡をします。

DevOpsサービスについて

続いてDevOpsの流れでに登場した役割と対応している代表的なサービスについて説明します。

 役割     Azure DevOps    その他のサービス  説明
リポジトリAzure ReposGithub、Subversion ソースコードの入れ物です。 Azure ReposやGithubは”分散型”と呼ばれ複数の開発者による平行作業が可能になっています。
ビルドパイプラインAzure PipelinesJenkinsソースコードは書いたままでは動きません。コンピューター上で動かすためのいくつかの処理がビルドです。複数の工程があり人力で行うのは非常に手間のようです。これを自動化してくれるのがビルドパイプライン、いわゆる継続的インテグレーション(CI)です。
リリースパイプライン Azure Pipelines Octopus Deployアプリケーションのデプロイを自動化してくれるのがリリースパイプライン、いわゆる継続的デプロイ(CD)です。
リリースはデプロイに至るまでは通常複数のステージに分かれており、ステージの前後に承認ゲートを構成しておくことで展開を止めたり通知を行ったりすることができます。
パッケージ管理 Azure Artifacts GitHub Package Registry ビルドやリリースに必要なパッケージと呼ばれるツール(正確には違うかもしれません)を管理するところです。例えばJavaのビルドにはMavenというものが必要で、これをAzure Artifactsに登録しておく必要があります。

おわりに

開発経験がない方がAZ-400の勉強の足掛かりになればと思い記事を書いてみました。DevOpsの流れを地図のように考えて現在地を確認するという方法が効果的でしたので、機会があれば是非お試しください。

いいね (←参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルクロステクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください