コンテンツに移動
アプリケーション開発

マネージド コンテナ プラットフォーム、Firebase、CI / CD でアプリ開発ライフサイクルを高速化

2022年11月9日
Google Cloud Japan Team

※この投稿は米国時間 2022 年 10 月 20 日に、Google Cloud blog に投稿されたものの抄訳です。

Google は、事業構築段階にあるスタートアップにとって、ユーザーのニーズに基づいた機能を継続的に届けることが最優先事項であることを理解しています。アプリケーション構築時は、特に以下の 3 分野に注力する必要があります。

  1. 開発: 開発に際しては、バックエンドのセットアップと処理を他の誰かに任せることで、アプリの独自性を高める作業に注力します。たとえば、お客様ご自身で API サーバーのセットアップやバックエンド サービスの管理を行わなくても、Firebase がこれらを行います。

  2. ホスティング: アプリを構築したら、次にアプリをホストします。今では、コンテナがアプリケーションをパッケージ化するための標準的方法となっています。コンテナは、Google Kubernetes Engine や Cloud Run などのマネージド環境で簡単に運用できます。

  3. 改善: 一度デプロイすれば終わりというわけではありません。成長は、市場からのフィードバックを受け、それに基づいてアプリケーションを改善することで実現できます。CI / CD を導入し、ソフトウェア デリバリー パイプラインの改善を自動化することをおすすめします。

このブログ投稿では、上記の 3 つの重要分野でお客様を支援するツールについて詳しく説明します。

Firebase を導入してビジネス ロジックに集中し、アプリ開発を高速化する

従来のアプリ アーキテクチャでは、バックエンドにリクエストを送るために API サーバーをセットアップして管理する必要があります。Firebase を使用すると、インフラストラクチャを気にすることなく、数行のコードでモバイルアプリまたはウェブアプリに簡単に機能を追加できます。Firebase のプロダクトは、お客様による構築リリースとモニタリングエンゲージメントを支援します。

これにより、お客様のチームが以下を行えるようになります。

  • たった数行のコードで認証やデータベースなどの機能を追加する

  • Firebase 向け Google アナリティクス、Crashlytics、Peformance Monitoring を使用して、ユーザーとアプリをより深く理解する

  • Firebase Cloud Messaging と In-App Messaging を使用して、ユーザーとのエンゲージメントを深めるメッセージを送信する

シンプルで使いやすいクロス プラットフォーム SDK を備えた Firebase は、アプリケーションのより迅速な開発、製品化までの時間の短縮、より少ない労力と時間でのアプリの品質の向上、アプリ体験の最適化に役立ちます。これらの構成要素をどのように組み立てるかについては、Firebase でのアプリケーション開発の動画をご覧ください。

Video Thumbnail

Google Cloud のマネージド コンテナ プラットフォームでアプリを簡単にホストする

リソースをより有効に活用したいと考えているスタートアップが次に行うべきことは、コンテナ化です。Google Kubernetes Engine(GKE)と Cloud Run に投資した Google Cloud では、Kubernetes、Knative、Istio などのオープンソース ツールに基づく技術スタックで、コンテナを使用して自由な構築を行えます。つまり、お客様が特定ベンダーの技術に大きく依存することがなくなります。

Google Kubernetes Engine

Google は、専門家により運営される自律的で拡張可能なプラットフォームをお客様が求めていることを理解しています。GKE は、アプリケーションを実行するためのマネージド環境、ワンクリックでクラスタを作成、更新できるシンプルなコンソールを備えています。お客様は、最小限の運用オーバーヘッドでアプリケーションをデプロイできます。

コントロール プレーンは Google によって管理されます。4 方向自動スケーリングにより、お客様は、使用するリソースに対して最適な利用率を実現するための微調整を行えます。

これらのベスト プラクティスは、GKE の 2 番目の運用モードである Autopilot でデフォルトで適用されます。このモードでは、コンピューティング リソースが動的に調整されるため、未使用の容量について心配する必要がありません。使用した Pod についてのみ、vCPU、メモリ、ディスクのリソース リクエストの利用料金が秒単位で課金されます。つまり、運用費用を削減しながら、本番環境に合わせた最適化とワークロードの可用性を高めるための最適化を行えます。

Gooogle Kubernetes Engine でのコンピューティングをご覧になり、ぜひ GKE をお試しください。

Video Thumbnail

Cloud Run

Cloud Run では、フルマネージド型サーバーレス環境でコンテナを運用でき、リクエストが来ないときには「ゼロ」までスケールダウンできる機能を備えています。ウェブ フロントエンド、REST API、軽量なデータ変換ジョブなど、ステートレスなアプリケーションに最適です。

Cloud Run は、以下の 3 つのステップでデプロイします。

  1. ソースコードを使用してビルドを作成する。

  2. ビルドを送信して、任意のコンテナ レジストリに保存する。

  3. 簡単なコマンドを使用して、アプリケーションをデプロイする。

このプロセスは他のプラットフォームでのデプロイと非常によく似ていますが、Cloud Run が特別な点は、これらすべてを「gcloud run deploy -source」という 1 つのコマンドで実現できることにあります。

この様子は、Cloud Run でアプリケーション開発を効率化するの動画でご覧いただけます。

Video Thumbnail

CI / CD ソリューションでより頻繁に改善と反復処理を行う

ソフトウェア システムは生きものであり、変化し続ける優先事項を反映できるよう対応する必要があります。継続的インテグレーション / 継続的デプロイ(CI / CD)とは、その言葉が示すとおり、コードの更新を継続的に追加、デプロイすることをいいます。

開発者は、コードを書くことに時間を費やす必要があるため、コードが push されたときに CI / CD ステップがトリガーされ、バックグラウンドで実行される必要があります。CI / CD パイプラインのコンポーネントと、Google Cloud ツールがどのようにそれらをサポートしているかを見てみましょう。

  • Cloud Code がお客様の IDE と統合されることで、アプリケーションを簡単に記述、実行、デバッグできるようになります。

  • Cloud Build により、ビルドステップを実行してアプリケーションをパッケージ化し、Google Cloud 上の任意のプラットフォームにデプロイできます。ビルドを自動的に開始できるよう、トリガーを設定できます。

  • Artifact Registry は、ビルド中に作成された中間アーティファクトを保存する場所です。ここに保存されたコンテナ イメージは、より新しいデプロイを他のプラットフォームにも作成するために使用できます。

  • Cloud Deploy は、お客様が指定した対象環境への更新済みアプリケーションの移行を自動化してくれます。

  • Cloud Run と GKE はどちらも Google Cloud のオペレーション スイートと統合されているため、アプリケーションにエラーやパフォーマンス上の問題がないかをモニタリングできます。

Google は、お客様がバグのない機能をユーザーに提供したいと望んでいることを理解しています。そこで、コードの配布において、パフォーマンス上の問題を早期に発見し、開発者のワークフローを改善するのに CI / CD パイプラインがどのように役立つかをご検討ください。Google Cloud で CI / CD パイプラインをセットアップするには、Google Cloud でのCI/CD の実践 をご覧ください。

Video Thumbnail


最新情報をお見逃しなく

Google Cloud スタートアップ向け技術ガイドシリーズには、お客様の成長過程をサポートする、より詳細な動画やリソースが多数用意されています。Google Cloud Tech チャンネルの全再生リストや、Google ウェブサイトのハンドブックとサンプル アーキテクチャをそれぞれご確認ください。最新情報を入手できるようにチャンネル登録をお忘れなく。Google Cloud の利用を開始する準備ができたら、Google for Startups クラウド プログラムに今すぐお申し込みください。

ご利用をお待ちしております。

 

-カスタマー エンジニア Mirabel Tukiman
- アプリケーション モダナイゼーション、カスタマー エンジニア Arpana Metha
投稿先