登壇した「ソフトウェアの継続的アップデートをコンテナ化によって加速させる」というタイトルのLTについて紹介します。LTでは駆け足の説明でしたので、補足的な位置づけとなります。簡単に説明すると変更しにくいシステムは放置されるので、コンテナ化して変更しやすくした!という話です。以降で詳しく説明していきます。ソフトウェアアップデートの必要性についてソフトウェアを継続的にアップデートしなければシステムは徐々に壊れていきます。予想外のタイミングと規模でアップデートを強制されることに繋がり、ビジネスに悪影響を及ぼします。バージョンも上げる必要がある。」「OpenSSLのバージョンを上げたいがパッケージが提供されていないため、OSを上げるか自前でビルドするか選択する」といったケースです。事業部のアプリケーションを取り巻く状況と課題さまざまな歴史を持つ40種類のWebアプリケーションがVMかつ複数のアーキテクチャで稼働しており、技術的な課題がありました。サーバーをメンテナンスするときに稼働中のサーバーをサービスアウトするオペレーションだけでも複数種類のオペレーションが必要でした。他にはOSや言語のバージョンを上げる時に、ChefやPuppetといった構成管理ツールの大きめの開発をしたり、VMを作って移行したりと作業量が多く専門スキルが必要でした。1度作ったVMを構成管理ツールを用いて手動で数年に渡って継ぎ足し運用をしており、構成ドリフト(構成管理ツールと実サーバの設定が異なっている)が発生してしまってオートメーション恐怖症になってしまうこともありました。書くことができれば特別なオペレーションをせずにアプリケーションの変更ができるようにしました。初手でコンテナ化をすることで、ソフトウェアアップデートの作業ができるエンジニアの幅を広げつつ、デリバリー速度を上げることが狙いです。実現するための工夫について紹介しています。徹底したGitOpsこれまでは、構成管理ツールによるサーバーのプロビジョニングと、Capistranoによるアプリケーションのデプロイを行っていました。Dockerfile、アプリケーションコードを同一リポジトリ内で管理してアプリケーションエンジニアやSREがコミットします。Requestのマージのみです。用いて動作確認をしています。環境を自動生成できます。以下のメリットがあります。manifestsでありインフラ構成であるため、Productionに限りなく近い環境であることが売りの1つです。Request毎に行うことができます。動作確認をしやすいシステムはソフトウェアの継続的なアップデートに一役買っています。当日は紹介する時間がなかったのですが、以下のような仕組みで実現しています。用いて埋め込んでいます。具体的には2つのステップで実現しています。Requestの環境であるホスト名をAnnotationとして設定する。Requestの環境であるホスト名をAnnotationから取得して、Ingressリソースに埋め込む。Requestごとにホスト名が変わるIngressリソースを生成することができます。プログレッシブデリバリーの導入アプリケーションコードの変更を段階的にリリースをして特定の条件を満たすと自動ロールバックをする仕組みを入れています。システムに変更を加えると、想定外の障害が発生することがあります。その際のリスクを軽減する目的です。ClusterのモニタリングツールとしてDatadogを採用しており、アプリケーションのエラーレートを元に一定の割合になるとリリースを中断してロールバックするようになっています。脆弱性の対応ホスティング事業部のWebアプリケーションだけで40個ほどあります。それらのアプリケーションの脆弱性をすべて対応するとなると大量の作業が必要になります。理想的にはすべて対応することですが、リソースが有限である以上は優先順位をつけざるを得ません。Materials)を収集しています。SBOMとはソフトウェアのコンポーネントや依存関係をリスト化したものです。集約して脆弱性を管理しています。該当するものに絞って通知することで最優先で対応する運用をしています。KEVとは実際に悪用が確認された脆弱性のリストです。この取り組みによって、無数の脆弱性の中から最優先で対応すべきものを見逃さないようにしています。詳しくは、以下のスライドをご覧ください。さいごにアプリケーションのコンテナ化を進めることで「変更しやすいシステム」を構築し「開発者体験」を良くしていきました。その結果、メンテナンスが活発になりソフトウェアアップデートが加速するという内容でした。「負債と言わないことが負債と向き合うこと」というタイトルで登壇しています。ペパボにおける技術的負債の向き合い方について紹介していますので、ぜひご覧ください。エンジニア新卒採用に関する情報をまとめたページも公開中!ツイート書いた人takumakumeソルトルアーフィッシングとコーヒー豆の焙煎にハマっています。kubernetesが好きです。