Atlassian Cloud への移行に関する 10 の誤解を正す

無料のホワイトペーパーで学ぶ Atlassian Cloud の利点

詳細を確認

マイクロサービスと DevOps: 両者の長所を活かすには

2020-05-27 (Wed)  •  By 伊藤  •  活用のヒント  •  DevOps マイクロサービス

今回の記事は、ゴーツーグループ ブログ英語版「Microservices and DevOps: Get the Best of Both Worlds 」の弊社翻訳版です。原文と差異がある場合は、原文の内容が優先されます。

はじめに

エンタープライズ IT の世界では、DevOps とマイクロサービスという 2 つの重要なトレンドに関する情報が飛び交っています。マイクロサービスは、非常に管理しやすく、単独で展開可能な疎結合サービスの集合体としてアプリケーションを構成するアーキテクチャ スタイルです。このため、マイクロサービスではモノリシック アーキテクチャとは対照的に、複雑なアプリケーションをすばやく、頻繁かつ安定的に配信できます。こうしたマイクロサービスの生来の機能により、チームは以前と比べて DevOps の目標を速く達成できます。このブログでは、組織の IT 近代化のためにマイクロサービスと DevOps を組み合わせることの意義について解説します。

マイクロサービスと DevOps を組み合わせることの意義

マイクロサービスは、複雑で包括的なアプリケーションを個々に展開可能なサービスに分割します。こうした分解されたサービスはそれぞれ個別のビジネス機能を実行し、RESTful API を通じて互いに通信します。このマイクロサービスの生来のモジュール性により、DevOps の主目標の 1 つであるソフトウェア配信プロセスの大幅なスピードアップを実現できます。基本的に、マイクロサービスのアーキテクチャは DevOps が自然に進化したものです。DevOps とマイクロサービスの 2 つを組み合わせることで、組織に以下のような重要な恩恵をもたらします。

展開のスピードアップ

マイクロサービスはそれぞれ独自のデータベースで自律的に実行します。そのため、チームはアプリケーション全体の展開準備ができるまで待つ必要がありません。各チームは自分たちの展開スケジュールを忠実に実行し、アプリケーション配信の全体的なペースを上げることができます。一言でいえば、マイクロサービスは短いビルド、テスト、および展開サイクルによってデリバリー パイプラインの高速化を可能にします。

高い安定性

マイクロサービス アーキテクチャのモジュール性はサービスの機能だけではなく、それに伴うエラーもはっきりと線引きします。端的に言えば、マイクロサービスは 1 つのサービスの問題がアプリケーションの別の部分に影響を与えないようにすることで、単一障害点を回避します。それに対して、モノリシック アプリケーションではコンポーネントとサービスが密結合しているため、小さな問題がシステム全体のクラッシュにつながることがあります。また、マイクロサービス アーキテクチャでは最小限のダウンタイムで特定のサービスの機能を拡張できます。これにより、システムの高可用性が保たれます。

コードの再利用性と高拡張性

マイクロサービスの疎結合アーキテクチャという性質により、アプリケーションから個々の機能を取り出し、別のアプリケーションにコードを再利用することが可能になります。また、他のサービスに影響を与えることなく不規則な作業負荷を管理するために、Docker や Kubernetes などのコンテナを使用してマイクロサービスを個別に拡張できます。マイクロサービスのこうした特徴は、クラウドの順応性との相性が良好です。

自律的で専門に特化したチーム

マイクロサービスの中核理念は、大規模で複雑なアプリケーションを小規模な独立したサービスに分解することにあります。各サービスは専門チームに割り当てられるためチームは単体のサービスに注力でき、高い生産性を確保できます。さらに、チームは自分たちが担当しているサービスに合った技術、ツール、およびプロセスを選択する自由を得られるため、自律的に作業することが可能になります。

品質と精度の向上

目標が明確に定義されていると、チームは格段に短い時間で精度と品質の高いコードを生成できます。DevOps とマイクロサービスを組み合わせることで、テスティングから配信プロセスまでの一連の自動化が可能になります。さらに特定のサービスで問題があった場合、アプリケーションの他の部分の稼働を止めることなく問題の特定と解決をすばやく実行できます。

高頻度の漸次リリース

DevOps 構想は、主にその中核理念である「実装、計測、改善」に見合った高頻度の漸次リリースを重要視しています。各サービスの単独での開発、テスト、修正、および展開を可能にするマイクロサービスのモジュール性は非常に重宝します。また、これによりチームは外部の力に頼ることなく作業を進めることができるため、すばやく頻度の高い漸次リリースが可能になります。

Netflix、Amazon、Apple といった会社は、DevOps とマイクロサービスの組み合わせがいかに組織の開発/IT 運用プロセスを劇的に改善させるかを実証しました。Amazon の例を見てみましょう。

創立時、Amazon はコンポーネントどうしが密結合したモノリシック アーキテクチャに従っていました。展開担当者が組織に何百人といる状態で、同社は希望どおりの頻度で展開作業を行うことができませんでした。大規模なコード変更はすべて、数週間から数か月もパイプラインにとどまり続けました。

ボトルネックを特定するため、Amazon はアプリケーションをサービスに分解し、各サービスに小規模のチームをあてました。このシステムの一掃により、Amazon のアーキテクチャの目覚ましい改善、すなわちマイクロサービスの活用に向けた下地が整いました。結果として、マイクロサービスはアプリケーション配信のスピードアップと展開頻度の向上を実現し、Amazon の DevOps プロセスの改善に寄与しました。

DevOps が開発/IT 運用の文化を改善する一方で、マイクロサービスはアプリケーションのビルド、リリースおよび保守をすばやく簡単に行うことを可能にします。

結論

結論として、マイクロサービスは単なるアーキテクチャ様式以上のものであり、パラダイム シフトの典型であると言えます。ある分析によると、DevOps とマイクロサービスのエコシステム市場は 2019 年から 2024 年の間にグローバルで 16% の年平均成長率を果たし、2023 年までには 100 億ドルに達すると見込まれています。DevOps とマイクロサービス アーキテクチャの組み合わせを活用する会社はすばやく革新を成し遂げ、競争上の優位性を保つことができます。

DevOps とマイクロサービスの融合を検討しない組織は、競合他社に後れを取る可能性があります。しかし、マイクロサービスの活用に関わる具体的な課題を理解し、より効率的に自社の IT アーキテクチャに取り入れる方法を考えることも重要です。

マイクロサービスの利用を開始するにあたって、その基本原則や戦略についてさらに詳しく掘り下げたい場合は、弊社の eBook を参照してください。

マイクロサービスを活用してビジネス アジリティを向上させるために企業アプリケーションの近代化を図りたいとお考えの方は、弊社の専門スタッフまでお問い合わせください。

  Previous Next  

関連記事