第6章 デプロイ、演算子、モニター
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
アプリケーションが本番環境に到達するまでに、そのアプリケーションを支えるコードは、何度も何度もレビューされ、テストされているはずだ。コードのデプロイは、コンテナであれ、クラウドであれ、あるいはレガシー、クラウド、コンテナの組み合わせであれ、複数回行われているはずであり、コードが本番環境に昇格したときに驚く余地はほとんどない。この作業の左遷は、DevOpsとDevSecOpsの中心的なテーマである。ソフトウェア開発ライフサイクル(SDLC)の非常に早い段階で反復可能な方法でデプロイ、運用、監視を行うことで、DevSecOps の実務者は、問題がタイムラインやエンドユーザに与える影響が少ない時に、問題を後回しにするのではなく、早期に発見することができる。
この章では、自動化された CI/CD は、品質保証と本番環境に移行する前に、SDLC の左側で最初に達成されるゴールであるという考えで CI/CD を見ている。この章はまた、DevSecOps の成功に寄与する要因として、モニタリングに焦点を当てる。
継続的インテグレーションと継続的デプロイ
最新のアプリケーションのデプロイに必要な複雑さのレベルは、過去20年間()にわたって大幅に増加している。多くの組織では、本番環境にアプリケーションをデプロイする必要があるため、ダウンタイムは発生しない。デプロイが早朝に行われ、スキーマが変更される間、データベースサーバーのようなバックエンドアプリケーションがダウンしていたかもしれないが、今ではフィーチャーフラグやブルーグリーンデプロイが普通になっている。
このセクションでは、Ansibleを使った環境の構築とメンテナンスから始まり、デプロイのためのJenkinsの使い方を説明する。Jenkinsを使って、シンプルだが拡張可能なコードデリバリパイプラインを構築する。マルチコンテナ環境に成熟した組織もあるだろう。そのような組織は、この章で示したデプロイモデルやソフトウェアを使いこなすことができないかもしれない。例えば、Kubernetesを使用している組織は、Argo CDや他のデプロイツールのようなものを利用するかもしれない。さらに、複数のクラウドプロバイダを使用している組織は、DevSecOps プロセスの一部として、クラウドネイティブツールや複数のツールの統合を使用するかもしれない。ソフトウェア・ツールの数も、必要とされるソフトウェア・ツールの潜在的な組み合わせの数も、1冊の本でカバーすることは不可能であり、ましてや1章でカバーすることはできない。したがって、私のゴールは、DevSecOpsが組織内で成熟するにつれて、他のツールに拡張可能な実例を用いてプロセスを実証することである。
Ansibleによる環境の構築とメンテナンス
Ansibleは、アプリケーションスタック全体のベアメタルデプロイなど、複雑なインフラの自動化を支援する一握りの技術である。。Ansibleは、軽量で、エージェントレスで動作し、YAMLやINIのようなプレーンテキストの構成ファイル形式を使用する点で異なる。Ansible はSSHとPythonを使っている。そのため、SSHのような標準化されたソフトウェアがインストールされているか、最新のオペレーティングシステムで利用可能なため、エージェントソフトウェアという攻撃のベクトルが1つ減ることになる。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access