The Modernization Imperative(TMI): 退屈であることの素晴らしさ
Google Cloud Japan Team
※この投稿は米国時間 2023 年 8 月 23 日に、Google Cloud blog に投稿されたものの抄訳です。
地球から 150 億マイル離れた場所の宇宙探査機よりもコンピューティング能力が高い何かが、今ポケットの中にあります。いいえ、スマートフォンではありません。車のキーフォブです。ボイジャー 1 号とボイジャー 2 号は 1977 年に打ち上げられ、45 年経った今でも、冷たく空虚な宇宙空間を時速 30,000 マイル以上で移動しながら地球にデータを送り続けています。お持ちのキーフォブは 2068 年になってもまだ機能していると思いますか?同じように驚くのは、ローマ人が作ったコンクリートが非常に長持ちするということです。そのコンクリートを使った建造物は 2,000 年後の今でもまだ使用されています。私の自宅前の道路は、ウサギがくしゃみをすれば穴ができるほどだというのに。
私は耐久性が大好きです。耐久性が確保されていれば、従来の枠組みにとらわれることなく物事を考えられます。基盤が信頼できるとわかっていれば、限界を押し広げ、安全地帯の外に出てイノベーションを実現しようという気持ちになります。環境がそれに対処可能だからです。耐久性は、アプリケーションのモダナイゼーションについての考察における基礎とすべきものです。お客様向けに作成するアプリケーションや環境は、お客様の次世代のテクノロジーとビジネス戦略の第一歩となります。組織全体の目標や理想は私たちが構築しているテクノロジー アーキテクチャの能力にかかっています。私たちは、将来何が起ころうとも、それ以上のものに耐える強さを備えた基盤を実現する必要があります。
最新のアプリケーションに適した基盤を選択する際は、テクノロジーの長期的な存続と信頼性を考慮することが非常に重要です。魅力的な新しいオープンソースの大規模言語モデルは 1 年後に存在するでしょうか?あるいは、PayPal のあの興味深い新しいデータベースはどうでしょうか?CNCF の増え続ける概要図の中からどうやって選べばよいでしょうか?このような場合に役立つのがオープンソースのコミュニティとベンダーの支援の力です。たとえば、Kubernetes、PostgreSQL、Java は、堅牢な機能セット、専用のコミュニティ、ベンダーによる強固な支援のおかげで、年月を経ても使われ続けています。
Kubernetes は Google の強固な支援を受けて、アプリケーションの管理とデプロイ用のスケーラブルなソリューションを提供しています。7 月時点で、Google は k8s プロジェクトに対して 1,000,000 件を超える貢献を行っています。これは、他のコントリビューターの 2.3 倍も多い件数です。一方、PostgreSQL は、世界最先端のオープンソース データベースの一つであり、広範囲のデータ処理ニーズに対応した包括的な機能セットを提供し、活発なコミュニティがその機能を常に拡張しています。汎用プログラミング言語の Java は、数十年前から開発コミュニティにおける主要な言語であり、堅牢なアプリケーションを構築するための信頼性の高いプラットフォームを提供しています。
確立されたテクノロジーを選択することで、成熟した機能セットというメリットだけでなく、確実に継続されていくというメリットも得られます。新しいデータベースや言語モデルは将来性があるかもしれませんが、こういったテスト済みのテクノロジーにある実績に欠けています。このような新しいテクノロジーの採用には、サービス終了の可能性またはサポートの欠如といったリスクが伴い、このことがアプリケーションの安定性や長期的な存続を脅かす可能性があります。
ボイジャーのチームによるアルミホイルの使用は、このことをよく表しています。ミッション中に繊細な計器を保護するためにチームが選択したのは、シンプルで信頼性が高く入手しやすい解決策です。アルミホイルという選択肢は、特に最先端でも面白いわけでもありませんが、実用性と信頼性に優れており、結局のところは成功につながる選択肢でした。同じように、最新のアプリケーションの基盤テクノロジーを選択する際には、「退屈な」選択肢が最善である場合があります。最新のトレンドを追うことではなく、機能し、年月を経ても使われ続けるものを選択することが重要です。
ベンダーの支援は、基盤テクノロジーを選択する際のもう一つの重要な考慮事項です。基盤テクノロジーを実行する信頼性の高いプラットフォーム プロバイダは、高い稼働時間のサービスレベル契約(SLA)を保証します。たとえば、Google Kubernetes Engine(GKE)は稼働率 99.95% の SLA を提供し、Bigtable は問題なく機能し、Cloud Storage は年間の耐久性 99.999999999% を実現する設計のおかげでデータを失うことがありません。
退屈であるからといって劣っているわけではない
新しいテクノロジーをテストしたり、お客様にも同じことをするよう促したりすべきではないということではありません。イノベーション戦略が必要です。ここでは「イノベーションの範囲」というコンセプトが役立ちます。イノベーションの範囲は、企業が特定のニーズと能力に応じて採用できる技術的なイノベーションのさまざまな度合いを表しています。範囲の一方の端にあるのは段階的なイノベーションで、これは既存のプロダクト、サービス、プロセスに対して小規模な改善や拡張を行うことです。もう一方の端にあるのは急進的または破壊的なイノベーションです。これは、業界全体に混乱をもたらす可能性のある、まったく新しいプロダクトまたはサービスを作成することです。
最先端テクノロジーと「退屈な」従来のテクノロジーのバランスを取る典型的な例は、金融機関でよく見られます。不正行為検出や予測分析に AI と ML を使用する一方で、コアバンキング システムには依然として確実に信頼できるテクノロジーを利用しています。このように新旧のテクノロジーを混在させると、重要な業務の安定性と信頼性を危険にさらすことなく最新の技術からメリットを得られます。ただし、銀行業界で明らかになっているのは、これにはイノベーション抑制のリスクがあり、お客様が離れていく原因になる可能性があることです。
デベロッパーにとって同じようにイノベーションと安定性の間のバランスを取っているものとして、Google Cloud の Kubernetes ベースのプラットフォームがあります。たとえば、研究者が GKE の最先端の GPU 共有を活用して宇宙の起源を調査する一方で、BBC が Cloud Run のサーバーレス コンテナを使用してニュース記事のトラフィックの急増の需要に対応します。
プラットフォーム エンジニアリングのようなベスト プラクティスを採用することで、新しいテクノロジーをロールアウトするための堅牢な基盤が提供されます。プラットフォーム エンジニアリングは、アプリケーションの迅速なデプロイを可能にする、安定したスケーラブルかつ安全なプラットフォームを作成することに焦点を当てています。GitOps は、Git を宣言型のインフラストラクチャとアプリケーションのための信頼できる唯一の情報源として使用するもう一つの重要な手法です。Git をデリバリー パイプラインの中心に据えることで、デベロッパーは、使い慣れたツールで pull リクエストを行うことができます。変更のロールアウトとロールバックが容易になり、新しいテクノロジーの採用プロセスがよりスムーズになります。
最新のアプリケーションを開発する際には、選択する基盤テクノロジーの信頼性と耐久性に信頼を置けることが重要です。この信頼がないと、デベロッパーはリスクを負ったり創造的なソリューションを模索したりすることを躊躇する可能性があります。確信を持てるように、効果的なプラットフォーム エンジニアリング戦略を策定することで、安定性とセキュリティを確保しながら新しいテクノロジーをロールアウトするための強固な基盤を提供できます。
退屈であることは、特に長期的な存続を目指して構築する際には素晴らしいことである場合があります。道路、宇宙船、マイクロサービス、ネットワーク アーキテクチャなど、創り出しているものが何であれ、基盤となる構造は、将来起こると考えられるすべてのことに耐えられる必要があります。堅固で耐久性の高い基盤があれば、デベロッパーは、限界を押し広げるために必要な能力と、150 億マイル離れた場所で未だに快調に動くような発明品を作るために必要な信頼性を得ることができます。