Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[INF-4] 改めて学ぶ Immutable Infrastructure Golden I...

[INF-4] 改めて学ぶ Immutable Infrastructure Golden Image編

Azure Partner Technical Briefing 2023 Winter
https://msevents.microsoft.com/event?id=1202787571

Kodai Sakabe

December 19, 2023
Tweet

More Decks by Kodai Sakabe

Other Decks in Technology

Transcript

  1. 2023.12.19 14:00 – 14:45 [INF-4] 改めて学ぶ Immutable Infrastructure Golden Image編

    日本マイクロソフト株式会社 パートナー事業本部 パートナー技術統括本部 AI & Azure アーキテクト本部 坂部 広大 2023.12.19 14:00 – 14:45 Azure Partner Technical Briefing 2023 Winter
  2. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Conditions and terms of use © Microsoft Corporation. All rights reserved. Microsoft, Windows and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解 を示したものです。状況等の変化により、内容は変更される場合があります。マイクロソフトは、本資料の情報に対して明 示的、黙示的または法的な、いかなる保証も行いません。
  3. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. 本資料の位置づけ こんな方向け IaaS 運用者 クラウドのポータル作業を減らしたい コンソール作業を減らしたい 属人化や暗黙知を減らしたい メンテナンスやリリースといった作業がサービスまたは提供先が違うけど同じ作業が増えている 最新のシステムの状態を把握するのが難しくなってきている 作業の抜け漏れを減らしたい オートスケールを使った運用に切り替えたい 話さないこと cloud-init , Ansible その他クラウドの例(基本的にどのクラウドでも必要となる部分を中心に話します)
  4. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Well-Architected オペレーショナル エクセレンスの適用範囲 コード 推奨 OE:01 ワークロード チーム メンバーの特殊化を決定し、ワークロード を設計、開発、デプロイ、運用するための堅牢な一連のプラクティスに統合して、仕様 に合わせます。 チームメンバーは、意思決定と責任を明確にし、継続的な改善と最適化を評価し、継続的な学習を組み込む責任のないカルチャを採用 する必要があります。 OE:02 ドキュメント、チェックリスト、または自動化を使用して、必要に応じてルーチンの実行方法と緊急時の運用タスクを正式化します。 シフトレフト ア プローチなど、業界をリードするプラクティスとアプローチを採用することで、チーム プロセスと成果物の一貫性と予測可能性に努めます。 OE:03 ソフトウェアのアイデアと計画プロセスを形式化する。 確立された業界および組織の標準から引き出します。一般的な優先順位付けされたバックログ と十分に詳細な仕様を使用します。 結果に基づいて、計画プロセスの継続的な改善を推進します。 OE:04 開発とテストに関する業界で実証済みのプラクティスに従って、ソフトウェア開発と品質保証プロセスを最適化します。 明確なロールの指定について は、ツール、ソース管理、アプリケーション設計パターン、ドキュメント、スタイルガイドなどのコンポーネント間でプラクティスを標準化します。 OE:05 標準化されたコードとしてのインフラストラクチャ(IaC) アプローチを使用して、リソースとその構成を準備します。 他のコードと同様に、一貫したス タイル、適切なモジュール化、品質保証を使用してIaC を設計します。可能な場合は宣言型のアプローチを使用します。 OE:06 予測可能な自動化されたパイプラインを通じて提案された変更を推進するワークロードサプライ チェーンを構築します。 パイプラインは、環境間でこ れらの変更をテストして昇格させます。 サプライチェーンを最適化して、ワークロードを信頼性が高く、セキュリティで保護し、コスト効率が高く、 パフォーマンスを高めます。 OE:07 監視システムを設計して実装し、 設計の選択を検証し、将来の設計とビジネス上の決定を通知します。このシステムは、ワークロードのインフラスト ラクチャとコードから出力される運用テレメトリ、メトリック、ログをキャプチャして公開します。 OE:08 効果的な緊急業務プラクティスを開発する。ワークロードがインフラストラクチャとコード全体で意味のある正常性シグナルを出力することを確認し ます。 結果のデータを収集し、それを使用して、ダッシュボードとクエリを介して緊急対応を実行する実用的なアラートを生成します。 オンコール ローテーション、インシデント管理、緊急リソースアクセス、事後分析の実行など、人間の責任を明確に定義します。 OE:09 人間の介入の洞察と適応性の恩恵を受けない、高度な手続き型であり、自動化投資収益率を生み出す貯蔵寿命を持つすべてのタスクを自動化しま す。 可能であれば、自動化用とカスタム実装用の既製ソフトウェアを選択します。すべての自動化をワークロード コンポーネントと同じように扱い、 Well-Architected Framework の柱を設計と実装に適用します。 OE:10 ライフサイクルの問題、ブートストラップ、ガバナンスとコンプライアンスガードレールの適用などの運用のための自動化を事前に設計して実装します。 後で自動化をレトロフィットしようとしないでください。プラットフォームで提供される自動化機能を選択します。 OE:11 ワークロードの安全なデプロイプラクティスを明確に定義します。 小規模で増分的な品質ゲートリリース方法の理想を強調します。 リスクを制御する には、最新のデプロイ パターンと段階的な公開手法を使用します。 定期的な展開と緊急または修正プログラムの展開のアカウント。 OE:12 迅速な復旧に関する予期しないロールアウト途中の問題に対処するデプロイ エラー軽減戦略を実装します。 ロールバック、機能の無効化、デプロイ パ ターンのネイティブ機能の使用など、複数のアプローチを組み合わせます。
  5. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Agenda Immutable Infrastructure ソフトウェアデリバリーの重要性 Golden Image Packer GitHub Actions Terraform
  6. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Immutable Infrastructure
  7. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Immutable Infrastructure 目的 サーバー状態の複雑さの増加を防ぎ、コントロール、運用 コストを下げる アプリケーションのテストやデプロイのプロセスをシンプルにし 、いつでもデプロイ可能かつ不具合が発生した際のロール バックできるようにすることで開発効率を向上させる 構成 不変なサーバ(Immutable Sever)。設定後は何も変え ない手作業運用は行わない) OS 設定やアプリケーションまで細かくビルド いつでも差替可能なデプロイメント 条件 API でインフラ操作 サーバクラスタを扱うツール 可視化・監視ツール サーバーの配布 ローカル、テスト、ステージ、プロダクションの環境差異 ロードバランサ・プロキシーのリモート操作 GitHub や配布するためのツールの充実 ゴールデンイメージ 仮想化技術の容易さ プロビジョニング/コンフィグツールの進化 開発プロセス(Git, Test, Pull Request, 差分がない環境)
  8. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. インフラコード化からImmutable Infrastructure 発展 Blue-green Deployment のフロー 1. 新アプリ(green)を必要な数だけ用意 2. 新アプリ(green)にデプロイ 3. ルーティング(web)切替(+α スキーマ変更) 4. 経過観察後に旧アプリ(blue)削除 1993 CFengine https://cfengine.com/ 2005 Puppet https://www.puppet.com/ 2009 Chef https://www.chef.io/ 10 deploys per day Dev & ops cooperation at Flickr https://www.oreilly.com/library/view/devops-in- practice/9781491902998/video169253.html 2010 BlueGreenDeployment https://martinfowler.com/bliki/BlueGreenDeployment.html https://www.publickey1.jp/blog/14/blue- green_deployment.html Immutable Infrastrucure(変更不可能なインフラ) Mutable Infrastructure(変更可能なインフラ)
  9. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. インフラコード化からImmutable Infrastructure 発展 2012 Ansible https://www.ansible.com/ Amazonは1時間に最大1000回もデプロイする。クラウドネイティブなデプロイとはどういうものか? AWS re:Invent 2012 基調講演 https://www.publickey1.jp/blog/12/amazon11000_aws_reinventday2_am.html 2013 ImmutableServer https://martinfowler.com/bliki/ImmutableServer.html Trash Your Severs and Burn Your Code: Immutable Infrastructure and Disposable Components http://chadfowler.com/blog/2013/06/23/immutable-deployments/ https://www.publickey1.jp/blog/14/immutable_infrastructure.html Packer https://github.com/hashicorp/packer/releases/tag/v0.1.0 Ops 側でも TDD や DDD などの考えが浸透し誰でも実践しやすくなった
  10. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. 10 deploys per day Dev & ops cooperation at Flickr 2009 1. Automated infrastructure 2. Shared version control 3. One step build and deploy 4. Feature flags 5. Shared metrics 6. IRC and IM robots 1. Respect 2. Trust 3. Healthy attitude about failure 4. Avoiding Blame https://www.oreilly.com/library/view/devops-in-practice/9781491902998/video169253.html
  11. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. ソフトウェアデリバリーの重要性
  12. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. State of DevOps Report https://dora.dev/ DevOps で高い成果を、技術、プロセス、組織文化に 関する能力をどのように開発手法に組み込み、成功を 収めているか調査 2014 年から DevOps の年次調査レポート DevOps 手法を取り入れたことによる 3 つの主な成果と、 その達成に貢献する能力を調査。 組織的なパフォーマンス - 顧客やコミュニティに価値 チームのパフォーマンス - チームのイノベーションとコラボレーション 従業員の健康 - 燃え尽き症候群、満足度 / 生産性 LeanとDevOpsの科学[Accelerate] テクノロジーの戦略的活用が組織変革を加速する DevOps Status Reportを作成する過程での試行錯誤が記された本
  13. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. 2021 年 2022 年 https://dora.dev/research/2022/dora-report/ ソフトウェアデリバリーのパフォーマンス比較 https://dora.dev/publications/pdf/state-of-devops-2021.pdf
  14. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. ソフトウェアデリバリーのパフォーマンス評価 変更のリードタイム: コードの変 更を commit してからデプロイ するまでの時間 デプロイの頻度: 変更を本番環 境に push する頻度 変更のエラー率: ソフトウェアのデ プロイによりエラーが発生し、すぐ に対処する必要が生じる頻度 デプロイ失敗の復旧までの時間: デプロイの失敗時に復旧にかか る時間 *2022 年ではなくなった Elite level が2023年に復活や recovery time がデプロイ失敗時の復旧時間として再定義 Accelerate State of DevOps 2023 P12 引用
  15. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. ソフトウェア デリバリー能力を向上させる方法 健全な組織文化を確立する メンバーが受け入れられていると感じ、帰属意識を持てる、生成的な文化のあるチームは、生成的な文化が ない組織と比べ、組織のパフォーマンスが 30% 高い ユーザーを念頭に置いてビルドする ユーザーを重視するチームは、重視しないチームと比べて組織のパフォーマンスが 40% 高い 質の高いドキュメントで技術的機能を強化する ドキュメントの質が高い場合、質が低い場合と比べてチームのパフォーマンスが 25% 高い 仕事を公平に配分する マイノリティとそうではない回答者と比べ、燃え尽き症候群の報告が 24% 、反復作業の量が 29% 多い クラウドでインフラストラクチャの柔軟性を高める クラウドを使用しなかった場合と比べてインフラストラクチャの柔軟性が 22% 高くなります。この柔軟性により、 インフラストラクチャの柔軟性が低い場合と比べて、組織的パフォーマンスを 30%
  16. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Golden Image
  17. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Golden Image ゴールデンイメージとは?  開発者がその上にアプリケーションを構築できる仮想マシンのイメージ  開発者はシステムの依存関係やパッチではなくアプリケーション自体に集中できる  一般的なゴールデンイメージで行われること  共通のシステム  ロギング  監視ツール  最新のセキュリティ パッチ  アプリケーションの依存関係 https://developer.hashicorp.com/packer/tutorials/cloud-production/golden-image-with-hcp-packer?product_intent=packer
  18. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Golden Image を支える習慣 = トイルをなくす アンチフラジャイル(ストレスを受けたときに強化されるシステム) 属人化から見える化へ、暗黙知から知見の共有へ 手順書から実行できるコード SSH/RDP/Console 作業の削減 運用ローテーション ポストモーテム(アドホックな作業の振り返り) latestといった一意にならない名称を排除 人のチェックから、機械(クラウドやツール)に任せる 共通の設定と関心ごとの共有とトレードオフ ログ、メトリクス、セキュリティ etc ミドルウェア スペック デプロイ(イメージ単位 or 二段階ビルド) ログ、トレース、メトリクス デバッグ、キャパシティ(scale up or. Scale out) => Deploy 時の問題の短縮、共通化、暗黙知の削減
  19. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Packer の範囲外としてステートフルな DB や File のようなデータストアはマネージド・サービスの活用。 バックアップ、リストア含めてマネージド側で管理。 GitHub Actions 経由で HCP Packer ビルドす る。 git の commit ハッシュ値を image の tag に 入れることでロールバックやテスト用でも利用。 a b サブスクリプション Availability Zone 1 VNet Availability Zone 2 Azure Backup Blob Storage Snapshot Image Azure SQL Database Application Gateway Standard_v2 a c 考慮事項 b Resource Manager DB snapshot ロードバランサーといったネットワークについては、 マ ネージドを活用。 TLS 終端等で利用。 blue- green deployment の場合にセッションの切替た めに nginx 利用。 Rolling Deploy でシンプルに 構成する場合不要。または DNS 切替も可能。 c DNS b e Azure SQL Database ゾーン冗長。バックアップ、 リストア等もマネージド・サービス側で管理 e f Rolling deploy の場合、 Virtual Machine Scale Set の機能で可能。接続ドメインの設定で 安全にセッションの着替えができる。図は blue- green deployment の場合は、新旧混在を防ぐ f 監視を Azure Monitor や Log Analytics への検 討。セキュリティ対策のための Microsoft Defender for Cloud やコンプライアンス違反の検 出、運用における自動化を行う。 Key Vault には 証明書等の秘匿情報のための管理。 Managed ID は、 VM からインフラを操作時に褐葉する。 g g Storage Account 静的ファイルやコンテンツ置き場として blob または azure file などを活用 h h Log Analytics Key Vault Managed ID Azure Monitor Automation(WSUS) blue green Defender (ウィルス対策) Standard Load balancer Virtual Machine Scale Set (nginx 4-6台) Packer Developer Virtual Machine Scale Set (web-green 4-6台) Virtual Machine Scale Set (web-bule 4-6台) Standard Load balancer 2 1 1 2 3 3 4 4 5 5 6 6 7 7
  20. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Packer の範囲外としてステートフルな DB や File のようなデータストアはマネージド・サービスの活用。 バックアップ、リストア含めてマネージド側で管理。 GitHub Actions 経由で HCP Packer ビルドす る。 git の commit ハッシュ値を image の tag に 入れることでロールバックやテスト用でも利用。 a b サブスクリプション Availability Zone 1 VNet Availability Zone 2 Azure Backup Blob Storage Snapshot Image Azure SQL Database Application Gateway Standard_v2 a c 考慮事項 b Resource Manager DB snapshot ロードバランサーといったネットワークについては、 マ ネージドを活用。 TLS 終端等で利用。 blue- green deployment の場合にセッションの切替た めに nginx 利用。 Rolling Deploy でシンプルに 構成する場合不要。または DNS 切替も可能。 c DNS b e Azure SQL Database ゾーン冗長。バックアップ、 リストア等もマネージド・サービス側で管理 e f Rolling deploy の場合、 Virtual Machine Scale Set の機能で可能。接続ドメインの設定で 安全にセッションの着替えができる。GitHub Action から実施することで常にレポジトリと同期 f 監視を Azure Monitor や Log Analytics への検 討。セキュリティ対策のための Microsoft Defender for Cloud やコンプライアンス違反の検 出、運用における自動化を行う。 Key Vault には 証明書等の秘匿情報のための管理。 Managed ID は、 VM からインフラを操作時に褐葉する。 g g Storage Account 静的ファイルやコンテンツ置き場として blob または azure file などを活用 h h Log Analytics Key Vault Managed ID Azure Monitor Automation(WSUS) Defender (ウィルス対策) Virtual Machine Scale Set (spp 4-6台) Packer Developer 2 1 1 2 3 3 4 4 5 5 6 6 7 7
  21. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Why Blue-green Deployment using Nginx? https://jpaztech.github.io/blog/network/appgw- configchange/#%E8%A8%AD%E5%AE%9A%E5%A4%89%E6%9B%B4%E3%81%AE%E5%BD%B 1%E9%9F%BF-1で Application Gateway HTTP 設定を行う場合に既存すべてのリスナーへのTCP 接続が切断される動作 AppGw の仕様に問題がなければ、直接バックエンドプールを指定のみ。または backend pool 内でrolling でVM入替も可能) Nginx User A blue Application Gateway green App App User B Deploy 中でたまたま User A が blue へ振られてもblue でタイムアウトやエラーがない限りそのままレスポンスを返す Switch 後(瞬時)は、たまたま User B がきたトラフィックはそのままgreen へ 2. green へ 1. deploy 前のアクセス 3. Deploy 後のアクセス ファイルの有無で簡単切替 $ touch /etc/nginx/switch/green
  22. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. 参考情報: Blue – Green Deployment と Rollback Nginx はロードバランサーとリバースプロキシの2つの機能が大きくある Blue-green deployment ゼロダウンタイム(ステートレスのみ) Nginx の upstream を変更して reload する マスタープロセスで構成を再ロードする信号を受信すると、新しい構成ファイルの構文の有効性をチェックし、そこに提供されている構成を適用しよう とします。これが成功すると、マスター プロセスは新しいワーカー プロセスを開始し、古いワーカー プロセスにメッセージを送信してシャットダウンを要求し ます。それ以外の場合、マスター プロセスは変更をロールバックし、古い構成で動作し続けます。シャットダウンのコマンドを受信した古いワーカー プロ セスは、新しい接続の受け入れを停止し、すべてのリクエストが処理されるまで現在のリクエストの処理を続けます。その後、古いワーカー プロセスは 終了します。https://nginx.org/en/docs/beginners_guide.html Nginx の if を使って変数やファイルの有無による切替(reload いらない) https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/ https://github.com/koudaiii/modernize-private-isu/pull/1/commits/40b82c4023b337b2aa74477a06bf357faf6bbef6 この場合、ファイルの入れ替えや変数の変更を自作する必要がある ngx_dynamic_upstream https://github.com/cubicdaiya/ngx_dynamic_upstream Webhook で動的に upstream を変更できるもの。 Nginx PLUS にある機能と挙動が同じにできる ロールバックを瞬時実行可能 Nginx の切替部分はダウンタイムがない点であり、不具合検知後にすぐに元に戻しやすい 何かあってもすぐに戻せるのはデプロイおける心理的な負担が少ない
  23. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. ロールバックを自前で実現 新しいソフトウェアのデプロイによって、システムの機能が損なわれることや、機能が低下に添える Nginx のアーキテクチャは2つのプロセスを持つ。 マスタープロセスでプロセス制御(config の読み込みや worker への指示)などを行い、ワーカープロセスではシングルスレッドのプロセスが、それぞ れ複数のリクエストを処理を行う構造により(イベントループによる)非同期なイベント駆動と、IOの多重化によってリクエストが完全に処理さ れることを待たずに処理を捌くことができる。 リクエストを受けながらも安定してさばきながら、 Deploy と同時に Rollback まで可能 https://qiita.com/kamihork/items/296ee689a8d48c2bebcd ファイルの有無で簡単切替 $ touch /etc/nginx/switch/green
  24. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Packer
  25. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Packer 複数のプラットフォームにマシンイメージを作成するツール マシンイメージの形式はプラットフォームごとに出力可能 ※HCP Packer は hashicorp 社提供のマネージド・サービス Chef や Puppet や Ansible のような構成管理を置き換えるものではなく、 ツールを一緒に活用してイメージを作成 https://developer.hashicorp.com/packer
  26. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Install Packer # MacOS $ brew tap hashicorp/tap $ brew install hashicorp/tap/packer https://developer.hashicorp.com/packer/tutorials/d ocker-get-started/get-started-install-cli
  27. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Build an image # see https://developer.hashicorp.com/packer/tutorial s/docker-get-started/docker-get-started-build- image $ mkdir packer_tutorial $ cd packer_tutorial $ touch docker-ubuntu.pkr.hcl # write some code $ packer init .# Initialize Packer configuration $ packer fmt . # Format your Packer template $ packer validate . # validate your Packer template $ packer build docker-ubuntu.pkr.hcl https://github.com/koudaiii/packer_tutorial/issues?q=label%3Atutorial+is%3Aclosed
  28. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. https://developer.hashicorp.com/ packer/guides/hcl Packer template structure
  29. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. All in One で自身のPCに構築編 1/2 サービスに関わるコンポーネント(ミドルウェア等)がわかる ローカルPCでできれば、仮想マシンでもでき、仮想マシンのスナップショットから利用可能なイメージ化もできる 因数分解して、他サーバーで動かして連携できるかの検証 他のサーバーで動かしたものをマネージドサービスで実現可能かの検証 使いたい機能が利用可能か? メンテナンスの影響がないか? アプリケーションを複数構成にして問題なく動かくか検証 マネージドサービス化が終えたところで、AllinOne で残ったアプリケーションでステートレスで稼働可能か検証 できない場合には再度因数分解や違うミドルウェアなどを検証 AllinOne のアプリケーションがステートレスな状態かチェック 複数台で動かしても問題がない状態、または複数台が1台になっても問題がない状態か? 仮想マシンイメージを使ったデプロイやコンテナ化ができるかを検証 バージョンが古いものを把握 使われていないもの 非同期処理やバッチ、定期処理などないか? 属人化の発見
  30. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. All in One で自身のPCに構築編 2/2 外部システムと連携がないか?(メール通知など) エンドポイントを把握(例: rake route) モデルやコントローラ含めて把握(例:rake stats) JavaScript などのフロントエンド技術 helpersとかworkers といったバックエンド処理や共通で使われるもの 使っているパッケージの把握 テストコードの大きいやつを読む ローカルで少しソースコードを変更して試す。デバッグしてみる。 Config を見る キャッシュ戦略 静的ファイルはどのような扱いか?データ形式は何があるか?配信はどうしているか? コードの品質 開発環境 CICD リリース方法と監視方法 自動化と環境整備 12 factor app にできるか? SEO対策は何しているか? SPF などの対策済みか?
  31. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. 12 + 3 Factor Application 1 コードベース 各マイクロサービスの1 つのコードベースが、独自のリポジトリに格納されています。 バージョン管理によって追跡され、複数の環境(QA、ステー ジング、運用環境) に配置できます。 2 依存関係 各マイクロサービスでは、それぞれの依存関係を分離してパッケージ化し、システム全体に影響を与えずに変更を行います。 3 構成 構成情報は、マイクロサービスから取り出され、コード外部の構成管理ツールを使用して外部化されます。同じ配置が、正しい構成の適用により、 複数の環境に伝達されます。 4 補助的サービス 補助リソース(データ ストア、キャッシュ、メッセージ ブローカー) をアドレス指定可能な URL を介して公開する必要があります。 これによって、 アプリケーションからリソースが分離され、交換可能になります。 5 ビルド、リリース実行 リリースごとに、ビルド、リリース、および実行の各ステージに対して厳密な分離を適用する必要があります。それぞれに一意のID をタグ付けし、 ロールバックできる機能をサポートする必要があります。最新の CI/CD システムは、この原則に従うのに役立ちます。 6 処理 各マイクロサービスは、実行中の他のサービスから分離され、独自のプロセス内で実行する必要があります。 必要な状態を、補助的サービス (分散 キャッシュまたはデータ ストア) に外部化します 7 ポートのバインド 各マイクロサービスは、独自のポートで公開されるインターフェイスと機能を含めて、自己完結している必要があります。これによって、他のマイ クロサービスから分離されます。 8 コンカレンシー サービスは、使用可能な最高性能のマシン上で 1 つの大きなインスタンスをスケールアップするのではなく、多数の小さな同一プロセス (コピー) に 対してスケールアウトします。 9 ディスポーザビリティ サービスインスタンスはディスポーザブルであることが必要です。これにより、高速で起動してスケーラビリティの機会を増やし、正常にシャット ダウンしてシステムを適切な状態に保つことができます。 Docker コンテナーおよびオーケストレーターによって、本質的にこの要件が満たされます。 10 開発/運用のパリティ 環境をアプリケーション ライフサイクル全体で可能な限り同様に維持し、コストのかかるショートカットを回避します。 ここでは、コンテナーの採 用が大きく貢献します。同じ実行環境が推進されるためです。 11 ログの記録 マイクロサービスによって生成されるログをイベントストリームとして扱います。 イベント アグリゲーターを使用して処理し、データをデータマイ ニング/ログ管理ツール (Azure Monitor や Splunk など) に伝達し、最終的には長期間アーカイブを行います。 12 管理プロセス 管理タスクを1 回限りのプロセスとして実行します。タスクには、レポートのためのデータ クリーンアップとプル分析が含まれることがあります。 これらのタスクを実行するツールは、運用環境から呼び出す必要がありますが、アプリケーションとは別に呼び出します。 13 API ファースト すべてをサービスにします。 コードが、フロントエンド クライアント、ゲートウェイ、または別のサービスによって使用される仮定します。 14 製品利用統計情報 ワークステーション上で、アプリケーションとその動作の詳細を確認します。 クラウドでは、行いません。 監視、ドメイン固有、および正常性/シス テム データのコレクションが設計に含まれていることを確認します。 15 認証/認可 最初から ID を実装します。 パブリック クラウドでは、使用可能な RBAC (ロールベースのアクセス制御) 機能を検討してください。 https://12factor.net/
  32. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. GitHub Actions
  33. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. HCP Packer + GitHub Actions on Azure 1. ローカル環境で確認、git push 2. GitHub Actions が push をトリガー に Packer セットアップし、 packer build 3. packer build を行うに当たり、 base イメージとなる VM を立ち上げ build 開始 4. Build 完了後、 image 化、 metadata 作成。 5. HCP Packer へ metadata を push (詳細は、 .github/workflows) https://github.com/koudaiii/relearning_immutable_infrastructure_golden_image_ptb20231219_04
  34. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. VM Subscription 任意リソースグループにゴールデンイメージをデプロイ Resource Group subnet Vnet 仮想ネットワーク NSG ネットワークセキュリティグループ https://github.com/koudaiii/relearning_immutable_infrastructure_golden_image_ptb20231219_04 az vm create \ --resource-group $az_resource_group \ --name $az_vm_name \ --image $az_vm_image \ --admin-username azureuser \ --location $az_region \ --size $az_vm_size \ --generate-ssh-keys
  35. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Terraform
  36. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Terraform data "hcp_packer_image" "goldenimage" { bucket_name = "goldenimage" channel = "latest" cloud_provider = "azure" region = "Japan East" } # Then replace your existing references with # data.hcp_packer_image.goldenimage.cloud_image_id output "packer-registry-goldenimage-japaneaset" { value = data.hcp_packer_image.goldenimage.cloud_image_id } # https://learn.microsoft.com/ja- jp/azure/developer/terraform/overview
  37. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. 仮想マシンの id 更新 resource "azurerm_linux_virtual_machine" ”koudaiii" { name = "${var.prefix}-koudaiii-webapp" location = var.location resource_group_name = azurerm_resource_group.koudaiii.name size = var.vm_size network_interface_ids = [azurerm_network_interface.koudaiii.id] # Community版の terraform を前提にする場合、 直接 id でも可能 source_image_id = data.hcp_packer_image.goldenimage.cloud_image_id ・・・ }
  38. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. 新しい機能をサービスに安全に追加するための9つのステップ Create a new runtime configuration directive 新しい機能のためのconfig を作成し、default は false に 設定。 Release a new binary :参照がない状態でリリース Update the configuration file :config を更新して見えるようにする。ユーザーの導線なし。 Update the canary jobs :カナリージョブのみでconfig を有効にする Update all jobs :全部公開。この時点で新しい機能が有効。 Change the default flag value :flag を default で true になるように変更。 Update the configuration file again :config を更新して、config 参照をなくします。 Edit the conditional code execution :条件付きのコード実行を常に実行するように編集します。 Remove the now-unused code :今は使われていないコードを削除します。 https://www.usenix.org/system/files/login/articles/login_1410_05_klein.pdf Daniel V. Klein、DinaM. Betser、Mathew G. Monroe
  39. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. VM Subscription 任意リソースグループにゴールデンイメージをデプロイ Resource Group subnet Vnet 仮想ネットワーク NSG ネットワークセキュリティグループ https://github.com/koudaiii/relearning_immutable_infrastructure_golden_image_ptb20231219_04 terraform plan terraform apply
  40. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Infrastructure as Code に Azure Export for Terraform Azure で作成したリソースを Terraform に簡易エクスポートし、 IaC への実現 https://github.com/Azure/aztfe xport https://learn.microsoft.com/ja- jp/azure/developer/terraform/ azure-export-for- terraform/export-terraform- overview
  41. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. 現状の理解の先へ 飛躍しすぎない モダナイズ?クラウドネイティブ?マイクロサービス?マネージドサービス?といった名前は期待値が高い 継続的な改善作業であること 最初の一歩を簡単にする ※一番最初の改善策は terminal に時間をだすことだった まとめてやろうとしない アプリ?インフラ?役割を超えて、どんな技術を使っているのかを把握 因数分解する際に、マネージドサービスに置き換えできる可能性がある 入念な準備 計測 監視 / モニタリング Deploy 数 Deploy からの障害復旧時間 変更による障害率 コスト
  42. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. モダナイゼーションの進め方 現状の理解 ソースコードのレビューやインタビュー、利用規約、ヘルプページ、構築手順、運用手順などあらゆるドキュメントと営業資料、システムイベントの確認。監視、エ ンドポイント、コンポーネントの把握。現状把握でかなり時間が必要であり、スケジュールの確保は必須 ビジネス要件の確認 ビジネス要件の明確化。KPI、OKRといった指標と目標と目的を言語化。振り返るためのプロセスを整理し、継続性を確保 技術選択 ビジネス要件、開発者のスキル、予算などを考慮して、最適な技術。制約の有り無しの両方のパターンを作る モダナイゼーション戦略の選択 ビジネス要件、リスク、コストなどに基づいて、最適な戦略を選択しましょう。ロールバックプランとマイルストーン、意思決定プロセスの整理。変化を計測 開発とテスト モダナイゼーションを段階的に進める。監視やメトリクス、デプロイパイプラインとロールバックの整備。コードの開発とテストを並行して行い、リスクを減らす 移行方法 段階的な移行や一斉移行など、適切なアプローチを選択。データ移行以外に Feature flag でまずは社員のドッグフーディングなどの整備 継続的な改善と保守 モダナイゼーションはプロジェクトの終了ではなく、継続的なプロセス。改善と保守を行い、変化を継続して計測
  43. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. プレモーテム/ ポストモーテム 発生した障害から学びを得るため 似たような問題がまた起こらないか 長期的に取り組むべき課題はある か 長期的な課題にどのくらい声があ がっているか可視化 標準化された作業の改善 リスク把握
  44. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. 堅牢なシステムは、継続的に変更を加えられる人の存在 “人体の負荷トレーニングに例え、絶えず変更し改良することによって、システムは より堅牢にすることができる、と筆者は説く。そして、自動化だけではそれは実現 できず、システムをよく理解し、継続的に変更を加えられる人の存在こそが重要 である、と語られている。 新しい技術用語が出てくると、関連するツールやプロセスが注目され、それらを導 入すれば課題は解決する、と思われがちである。しかし、大切なのはその言葉の 背後にある思想や哲学を理解し、適切に運用する人である、ということは常に頭 の片隅に置いておきたい。 ” Infrastructure as Code クラウドにおけるサーバ管理の原則とプラクティス Kief Morris 著 宮下 剛輔 監訳 長尾 高弘 訳 https://www.oreilly.com/library/view/infrastructure-as-code/9784873117966/
  45. 2023.12.19 14:00 – 14:45 MICROSOFT CONFIDENTIAL 本資料は情報提供のみを目的としており、本資料に記載されている情報は、本資料作成時点でのマイクロソフトの見解を示し たものです 。状況等の変化により、内容は変更される場合があります。本資料に表記さ れている内容(提示されている条件等を含みます

    )は、貴社との有 効な契約を通じ て決定さ れます 。それまでは、正式に確定するものではありません。 従って、本資料の記載内容とは異なる場合があります。また、本資料に記載されている価格はいずれも、別段の表記がない限り、参考価格となります 。貴社の 最終的な購入価格は、貴社のリセラー様により決定されます。マイクロソフトは、本資料の情報に対し て明示的、黙示的または法的な、いかなる保証も行いません。 © 2023 Microsoft Corporation. All rights reserved. Azure アーキテクチャ センター Azure での様々な設計パターンやアーキテクチャデザインを紹介 Azure 活用における戦略策定、アーキテクチャ設計の参考になる情報が充実 業界ソリューションガイド、技術的な説明、ベストプラクティスを多数掲載 Azure に限らずクラウド全般に適用できるシナリオやポリシーのサンプルも豊富 https://learn.microsoft.com/ja-jp/azure/architecture/
  46. 2023.12.19 14:00 – 14:45 © 2023 Microsoft Corporation. All rights

    reserved. Microsoft, Windows, Windows Vista and other product names are or may be re gistered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee t he accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.