Red Hat コンサルタントの中川です。「アプリケーションモダナイゼーション」に関連する連載の第6回目です。
本連載では「アプリケーションモダナイゼーション」をテーマに、現場で役立つ実践的な知見をお届けしています。 モダナイゼーションに関連する連載記事はこちらを参照ください。
第1回 アプリケーションモダナイゼーションとは何か? - 主要なアプローチ(6つのR)を理解する - 赤帽エンジニアブログ
第2回 なぜ今、モダナイゼーションなのか?~エンジニアを悩ませる「技術的負債」からの脱却 - 赤帽エンジニアブログ
第3回 アプリケーションモダナイゼーション成功の鍵!〜最初の一歩:現状分析(アセスメント)の進め方 - 赤帽エンジニアブログ
第4回 目標設定とロードマップ策定 - ゴールの明確化と現実的な計画 - 赤帽エンジニアブログ
第5回 Replatformシリーズ - Replatformで変わる開発と運用体験 - 赤帽エンジニアブログ
はじめに:「ただのインフラ刷新」で終わらせないために
今回は、前回に引き続きReplatformにフォーカスしていきます。アプリケーションモダナイゼーションの手法として「Replatform」を検討する際、多くの方がサーバーを「オンプレミスからクラウドへの移行」や、「VM環境からコンテナ環境への移行」といったインフラの刷新をイメージされるかもしれません。 しかし、その取り組みを単なる "お引っ越し" で終わらせてしまうのは、非常にもったいないです。
Replatformの真の価値は、本タイトルにもあるように、アプリケーション開発のライフサイクル全体を「高速」かつ「安全」なものへと変革することにあります。この変革を実現する上で、成功の鍵を握るのが、アプリケーションを動かすだけでなく、開発から運用までのプロセス全体を支えるエンタープライズ向けコンテナプラットフォームの存在です。 本記事では、Red Hat OpenShiftを具体的なプラットフォームとして念頭に置きながら、Replatformがもたらす「1. CI/CDによる高速化」「2. 継続的な脆弱性診断による安全性」「3. 分散トレーシングによる信頼性」という3つの具体的なメリットを深掘りしていきます。
1. CI/CDによる高速化
【Before】かつての開発風景
かつての開発現場を思い出してみてください。ソースコードの変更を本番環境に反映するには、開発者による手作業でのビルド、テスト担当者へのリリース依頼、そしてインフラ担当者による深夜や早朝のデプロイ作業…といった、多くの手作業と伝言ゲームが発生していました。「自分のローカルPCでは動いたのに…」という問題も日常茶飯事だったかもしれません。
【After】OpenShiftがもたらす変化
Red Hat OpenShiftのようなコンテナプラットフォームは、このような状況を改善します。Kubernetesを核とした統合プラットフォームであるOpenShiftは、開発者がインフラを意識することなく、必要な環境をセルフサービスで利用できる世界を提供します。
その中で、クラウドネイティブなCI/CDを実現する中核ツールが OpenShift Pipelines (Tektonベース) です。Tektonは、パイプラインそのものをコンテナとして定義・実行するため、特定のCI/CDサーバーに依存せず、スケーラブルで再利用性の高いパイプラインを構築できます。
開発者が行う作業は、ソースコードをGitにプッシュするだけ。それをトリガーに、以下のようなプロセスが自動的に実行されます。
- ソースコードの取得: Gitなどのソースコードリポジトリから最新のコードをチェックアウトします。
- テストの自動実行: ソースコードに対して単体テストを実行し、品質を担保します。
- コンテナイメージのビルド: テストをパスしたソースコードから、DockerfileやSource-to-Image (S2I) といった機能でコンテナイメージを自動でビルドします。
- デプロイと結合テスト: ビルドしたイメージを開発環境やステージング環境へ自動でデプロイし、必要に応じて結合テストを実行します。
この自動化されたサイクルによって、開発者は煩雑な作業から解放され、ビジネス価値の創造という本来の業務に集中できるようになります。アイデアが生まれてからユーザーに価値を届けるまでのリードタイムが短縮されます。
さらに、Gitを信頼できる唯一の情報源として、アプリケーションのデプロイや運用状態を宣言的に管理・自動化するGitOpsのアプローチも、開発体験を向上させる上で重要です。
OpenShiftでは「OpenShift GitOps」という機能を提供しており、これに含まれるArgo CDを利用することで、Gitリポジトリへの変更をトリガーに、アプリケーションのデプロイや更新を自動で反映させることができます。これにより、CI/CDパイプラインと連携して、一貫性のあるデプロイメントを実現します。
Red Hat OpenShift Pipelines:www.redhat.com Red Hat OpenShift GitOps:www.redhat.com
2. 継続的な脆弱性診断による安全性
【Before】リリース直前の"関所"
従来の開発プロセスでは、セキュリティ診断は開発サイクルの最終盤、リリース直前に行われることが多くありました。 この段階で重大な脆弱性が発見されると、リリースは延期され、開発チームは大きな手戻りを強いられます。 これでは、高速な開発サイクルは実現できません。
【After】OpenShiftで実現するDevSecOps
この課題を解決するのが、セキュリティ対策を開発プロセスの早い段階(左側)へ移行させる「シフトレフト」という考え方、すなわちDevSecOpsです。OpenShiftは、プラットフォーム全体でこのDevSecOpsの実現を強力に支援します。
まず、土台となるOS(RHEL CoreOS)やコンテナのベースイメージ(Red Hat Universal Base Image - UBI)が、エンタープライズレベルでセキュアに保たれています。その上で、アプリケーションのサプライチェーン全体に多層的なセキュリティを組み込むことができます。
- コーディング・ビルド時: OpenShift PipelinesにSonarQubeといったSAST (静的アプリケーションセキュリティテスト) ツールを組み込むことで、ソースコード自体に潜むSQLインジェクションやクロスサイトスクリプティングといった脆弱性をコーディング段階で検出します。さらに、ビルドされたコンテナイメージはRed Hat Quayによって継続的にスキャンされ、ベースイメージやライブラリに含まれる既知の脆弱性(CVE)がないかチェックされます。
- デプロイ時: Red Hat Advanced Cluster Security for Kubernetes (ACS) は、「脆弱性レベル"Critical"のイメージはデプロイさせない」といったポリシーを適用し、安全でないアプリケーションが本番環境に到達するのを防ぎます。
- 実行時: ACSは、実行中のコンテナの異常な振る舞いを検知し、万が一の脅威にも迅速に対応します。
これらのセキュリティチェックを前述のOpenShift Pipelinesに組み込むことで、「安全でないものは、そもそも作らない、デプロイさせない」という文化を開発プロセスに根付かせることができます。
Red Hat Quay:www.redhat.com ACS:www.redhat.com
3. 分散トレーシングによる信頼性
Replatform後の新たな課題
Replatform後、特に分散システムの場合、システムは機能ごとに分割された多数のサービス群で構成されるようになります。 これにより、開発の俊敏性は向上しますが、一方で「あるリクエストが、どのサービスを、どのような順番で経由したのか」を追跡するのが非常に困難になるという新たな課題が生まれます。
OpenShiftにおけるObservability(可観測性)
この複雑化したシステムの"道しるべ"となるのが、Observability (可観測性) の考え方です。 OpenShiftは、システムの内部状態を理解するための機能をプラットフォームに統合されているか、または容易に導入できるようになっています。
- モニタリング: OpenShift Monitoring (Prometheusベース) が、CPU使用率やメモリ使用量といった各種メトリクスを収集・可視化します。
- ロギング: OpenShift Logging (Lokiスタックベース) が、システム全体のログを一元的に集約・検索可能にします。
- 分散トレーシング: 分散システムでの課題を解決する切り札が OpenShift Distributed Tracing (Grafana Tempo) です。
分散トレーシングは、サービスをまたがる一連のリクエストにユニークなIDを付与し、その経路を可視化する仕組みです。 これにより、「決済処理が遅いのは、在庫確認サービスのAPI応答がボトルネックになっているからだ」といった原因究明を、データに基づいて迅速に行うことができます。
これらの機能がプラットフォームに統合されていることで、運用者は複数のツールを使い分けることなく、効率的にシステムの健全性を保ち、問題の根本原因を素早く特定することができるようになります。
OpenShiftでのロギングや監視/モニタリングについては、次回のアプリケーションモダナイゼーションブログで詳しく掘り下げていきます。
Red Hat OpenShift Observability:www.redhat.com
まとめ
Replatformは、単なるインフラの移行にとどまりません。 ビジネスの変化に素早く、そして安全に対応できる「開発・運用文化」そのものを変革する大きな一歩です。 この変革を成功させるには、CI/CD、セキュリティ、可観測性といった個別の要素だけでなく、これらすべてが連携する「統合プラットフォーム」が不可欠です。 Red Hat OpenShiftは、Kubernetes、Tekton、Grafana Tempoなどの技術をベースに、エンタープライズに求められる安定性とセキュリティ、長期サポートを提供します。
高速な開発、強固なセキュリティ、そして安定した運用。これらを手に入れることで、組織は本来のビジネス価値創造に集中できます。 Replatformを検討する際は、ぜひこの「基盤」となるプラットフォーム選びに注力してください。