こちらは、Linode documentで公開されている技術者ブログの要約記事です
Chat GPTで要約し、初心者の方でもわかりやすいように注釈を入れた紹介記事となります。
元記事:「Is Your Cloud Development Strategy All Wrong?」Linode blog
https://www.linode.com/blog/linode/is-your-cloud-development-strategy-all-wrong
この記事の専門用語解説
- パブリッククラウド: インターネットを通じて提供されるクラウドサービス。例えば、Amazon Web Services(AWS)やGoogle Cloud Platform(GCP)など。
- プラットフォームネイティブ: 特定のクラウドプロバイダーのツールやサービスを使用して構築する方法。
- オープンソースツール: 無料で使用でき、誰でも修正・配布できるソフトウェア。例えば、KubernetesやDockerなど。
- CI/CD: 継続的インテグレーション/継続的デリバリー。コードの変更を自動的にテストし、リリースする手法。
- IaC: インフラストラクチャをコードとして管理する手法。例えば、TerraformやAnsibleなど。
- コンテナ化: ソフトウェアを一つのパッケージにまとめ、どこでも動かせるようにする技術。Dockerが代表的。
- ワークロード(※注1):コンピュータシステムで実行される一連の作業やタスクのこと。
- データのレプリケーション(※注2):データを複数の場所にコピーして保存すること。災害時のデータ保護や複数地域でのサービス提供に使われます。
記事要約
私は20年前にソフトウェアエンジニアとしてキャリアをスタートしました。その時からクラウド技術の急速な成長を目の当たりにしてきました。
クラウドプロバイダーには「プラットフォームネイティブ」と呼ばれるアプローチがあります。これは、特定のクラウドプロバイダーのサービスやツールを使って開発する方法です。しかし、クラウドプロバイダーがどのように構築するかを決めるべきではありません。代わりに、ワークロード(※注1)はポータブル(移動可能)であり、どこでも展開できるようにするべきです。
開発者のクラウド選びの旅
クラウドプロバイダーを選ぶ際に間違いを犯したことがあります。しかし、その経験からパターンを見つけることができました。以下の5つの段階があります。
- 発見
新しいクラウドサービスについて知り、興味を持つ段階です。イベント、Stack OverflowやRedditのスレッド、YouTubeなどで初めて知ることが多いです。 - 評価
興味を持ったサービスをさらに詳しく調べる段階です。ドキュメントを15〜20分程度読んで、サービスやツールの違いを理解します。 - 学習
最も重要な段階です。次のプロジェクトにそのクラウドプロバイダーが適しているかどうかを判断するために、多くの時間を投資します。 - 構築
実際に手を動かして構築する段階です。最小限の実用製品(MVP)ではなく、最小限の魅力的な製品(MLP)を構築することが重要です。 - スケール
スケールの段階では、多くの質問があります。複数の地域での展開や、データのレプリケーション(※注2)、自動化のためのCLIやAPIの利用などです。
プラットフォームネイティブ vs クラウドネイティブ
クラウドの選択は進化の旅です。私は最初、特定のプラットフォームとツールでのみ構築していました。しかし、成長するにつれて、オープンソースツールを使用して統一された標準(CI/CD、IaC、コンテナ化)を採用するクラウドネイティブな方法で構築するようになりました。
まとめ
クラウドプロバイダーを選ぶ際の5つの段階(発見、評価、学習、構築、スケール)についての説明は、特に新しいクラウドサービスを検討している開発者にとって有益です。それぞれの段階で具体的なアクションや考慮すべきポイントが示されており、実践的なアドバイスかと思います。「なんとなく」を言語化するのは、非常に重要だと感じました。今後、社内でも活用して行きたいと思います。