Blog Post
クラウド・ネイティブ開発の躍進
このブログ記事では、IBM Cloud Pak for Applications、Kabanero、Appsody、Codewind など、IBM がクラウドへの移行を単純化するために新しく開発したクラウド・ネイティブの製品とオープンソース・プロジェクトを紹介します。
航空券を予約するときも、新しいパスポートを申請するときも、あるいは保険関連の書類や銀行口座にアクセスするときも、一般に頼りの手段となるのは、企業に勤める開発者たちが世界中の各社の研究所や所在都市で作成したソフトウェアです。
企業に勤める開発者たちはいつも仕事に追われています。情報にどこからでも高速かつ安全にアクセスできることに対する顧客の期待値はこれまでになく高くなっています。世間では、マイクロサービスとクラウド・ベースのソリューションこそが、真に柔軟でスケーラブルな未来を企業にもたらすと認められています。それでもまだ、クラウドに移行しているソフトウェアはわずか 20% に過ぎません。
企業にとってクラウドに移行する障害となっているのは何でしょうか?企業に勤める開発者たちは時間に追われていて、仕事を通じて学ぶしか方法がないことは珍しくありません。時間があるとしても、クラウド・ネイティブの開発をどこから初めればよいのか、なかなか判断できないことがあります。クラウド・テクノロジーは進化し続けていて、小規模な組織でも、最良のツールと手法に関する意見は分かれます。
このブログ記事では、IBM がクラウドへの移行を単純化するために新しく開発したクラウド・ネイティブの製品とオープン・ソース・プロジェクトを紹介します。
Cloud Pak for Applications
Cloud Pak for Applications の目的は、開発者にとってのクラウド・ネイティブ開発の謎を明らかにすることです。そのために、次の方法をとっています。
- セキュアで高速かつスケーラブルなソリューションを開発するためのクラス最高のライブラリーとフレームワークを結び付けています。
- 組織によって承認されたフレームワークを、カスタマイズが可能な一貫した方法で使用できるようにします。
以下の図は、Cloud Pak for Applications に含まれる基礎となるテクノロジーを示しています。
Cloud Pak for Applications に含まれる数少ない大規模なコンポーネントのうちの 1 つは、Kabanero です。このコンポーネントには、クラウド・ネイティブの開発にとって不可欠であると IBM が考えるクラウド・ネイティブのツールとライブラリーが集められています。
Cloud Pak for Apps 内には、企業内でクラウド・ネイティブ・アプリケーションを作成するためのスマートで統制された一貫性のあるアプローチとして Kabanero が組み込まれています。IBM はこの概念をわかりやすく説明する、一連の新しいコード・パターン、記事、チュートリアルを用意しています。
Kabanero は IBM のクラウド開発オファリングのコア・コンポーネントであるため、その基礎となるテクノロジーを詳しく見ていきましょう。
Kabanero の開発テクノロジー
Kabanero は Cloud Paks for Applications の基盤となるオープン・ソース層です。Kabanero 自体は一般に認められたクラス最高のクラウド・テクノロジーからなります。これらのテクノロジーはいずれもオープン・ソースであり、以下の図を見るとわかるように重要なテクノロジーの多くが含まれています。
Kabanero の特殊な構成要素の 1 つとしては、Appsody が上げられます。Appsody はテクノロジー・スタックとテンプレートを使用して、企業の組織内でアプリを開発する際の統制された一貫性のあるアプローチを生み出します。
Kabanero と Cloud Pak for Apps に関連する開発者向けリソースを作成するために、IBM はクラウド DevOps コンポーネントを使用したワークフローに重点を置いて関連チュートリアルを用意し、参照モデルとして複製して詳細を調べられるコード・パターンを提供しています。最初の開発者向けリソースのコレクションに、Appsody のコード・パターンが含まれています。このコード・パターンでは、例として 2 つのマイクロサービス (およびプレゼンテーションとビジネス・ロジック) からなるアプリケーションを作成する際の基礎を説明しています。また、独自のプロジェクト内で Appsody を使用する際のアプローチについても詳しく掘り下げています。
Appsody で作成して結果の一貫性を確保
Appsody は、クラウド・ネイティブのアプリケーション開発を単純化して管理するオープン・ソース・プロジェクトです。Appsody の主要なコンポーネントとなっているのは、事前構成された Docker イメージをビルドするスタックです。開発者はスタックでビルドされたイメージをそのまま使用して、クラウド環境内でアプリケーションを作成できます。Appsody ではスタック・ビルダーを使用して、アプリケーション・イメージの固定する部分 (一連のテクノロジーの選択肢と、スタック・イメージによって定義される構成) と、スタックのユーザーが変更/拡張可能にする部分 (テンプレート) を決定できるようになっています。
Appsody に対する見方の 1 つとして、Appsody は、開発者が (基礎となるテクノロジー・コンポーネントのインストールと構成から解放されるという点で) PaaS (Platform as a Service) 環境のメリット (PaaS) を利用できると同時に、アーキテクトが Docker イメージを使用してテクノロジー・コンポーネントを柔軟に定義することを可能にするプロジェクトです。
Appsody のスタック
Appsody のスタックは、特定のタイプのクラウド・ネイティブ・アプリケーションを作成する際のタスクを単純化するために事前構成された一連のテクノロジーを表します。スタックには特定の環境 (例えば node.js
対応の環境や、python-flask
対応の環境など) が組み込まれ、そこにモニタリングやロギングなどの選択肢が統合されています。スタックが公開されるリポジトリーは、一般公開される場合も、企業だけに限定公開される場合もあります。開発者は Appsody CLI を使用して、作成するアプリケーションに適切なスタックをリポジトリーからプルできます。Kabanero には、一般公開されたスタック・リポジトリーを使用するためのツールと、こうしたリポジトリーにコードを提供するためのツールのすべてが揃っているだけでなく、企業向けにキュレートされた一連のスタックも含まれています。
Appsody は事前構成されたテクノロジーを簡単に使用できるようにしているだけではありません。開発者が Rapid Local Development Mode を使用して、初めからコンテナー化されたローカル環境内でアプリケーションを作成、テストできるようになっています。初期テストを実行した後は、完成したアプリケーションをクラウド・ベースのテスト用クラスター、本番環境用クラスターにデプロイできます。最初からコンテナー内で開発すれば、開発プロセスの後のほうの段階でコンテナー化を追加する際に捉えにくい微妙な問題が取り込まれる可能性が軽減されます。
Appsody のテンプレート
Appsody のスタックには 1 つ以上のテンプレートが付随しています。テンプレートはそのスタックを使用したスターター・アプリケーションを表し、すぐに実行してデプロイできる状態になっています。開発者はテンプレートに変更を加えることで、独自のアプリケーションを構築できます。
以下の図は、開発者が Appsody を使用してスタックをプルし、変更を加えてビルドしてからリモート Kubernetes クラスターにデプロイする際のプロセス・フローを示しています。
上のフロー図には、手作業による Kubernetes クラスターへのデプロイが示されています。本番指向の環境では、GitOps でビルド・ステップとデプロイ・ステップをトリガーし、Tekton Pipelines でデプロイを駆動することになるでしょう。Cloud Pak for Applications に含まれる Kabanero のコレクションが Appsody のスタック、GitOps、Tekton Pipelines を統合して、成長した クラウド・ネイティブ・アプリケーションの開発およびデプロイメントのためのエンタープライズ対応のソリューションを完成させます。
ソリューションの構築に取り掛かる準備はできていますか?
IBM Cloud Pak for Applications の基礎となるテクノロジーを理解したところで、次は IBM が作成したコンテンツをいろいろと調べてください。Cloud Pak for Applications の導入をサポートするために、開発者向けのパスとソリューション・アーキテクト向けのパスを用意しました。