こんにちは、技術本部Bill One Engineering Unitでインボイス管理サービス Bill One のアーキテクトを担当している加藤です。このたび、8/29〜31にサンフランシスコで開催されたGoogle Cloud Next ’23に参加したので、聴講したセッションの中から印象に残ったものをご紹介したいと思います。
当社からは5名が参加しました。私はWebアプリケーションエンジニアなので、カテゴリーが「Application Developers」「Database Professionals」「DevOps, IT Ops, Platform Engineers, SREs」のセッションを中心に聴講しました。Bill OneではGoogle Cloudをフル活用しているため、主にBill Oneにおいてどのように活用できそうかという観点で聴きました。
Application Developersカテゴリ
Performance optimizations for Java applications
https://cloud.withgoogle.com/next/session-library?session=DEV301 (リンク先から動画と資料を閲覧できます)
このセッションでは、Javaアプリケーションのパフォーマンスを最適化する手法として、次のものが紹介されました。
- ビルド時間の最適化
- jib: レイヤー化されたコンテナイメージの作成
- 起動時間の最適化
- CRaC (Coordinated Restore at Checkpoint): Javaアプリをウォームアップされた状態に戻せる仕組み
- Class Data Sharing: 複数のJVMでクラスデータを共有する仕組み
- Native image compilation: Javaアプリケーションをネイティブイメージにコンパイルする仕組み
- 実行時間の最適化
- Cloud Traceなどを使ったトレーシングによる分析
Bill Oneでは、Kotlin/JVMのアプリケーションをマネージドのCloud Runで稼働させているため、どれも気になるものでした。特に起動時間の最適化で紹介されたCRaCは、まだまだ初期のプロジェクトであるとのことですが、使えるようになると非常に効果がありそうで楽しみです。
Extend your Cloud Run containers’ capabilities using sidecars
https://cloud.withgoogle.com/next/session-library?session=DEV302
このセッションでは、先日Cloud Runでのサポートが発表されたサイドカーのユースケースとして次のものが紹介されました。
- Application monitoring, logging and tracing
- Frontcar / Proxy (リバースプロキシ)
- Advanced Networking, Security, Service Mesh
- Client Connection Proxies (AlloyDB Auth プロキシなど)
- Advanced Use case > 2 sidecars (複数のサイドカーコンテナを使う高度なケース)
サイドカーと聞くと、OpenTelemetryのCollectorのようなオブザーバビリティ用途でのユースケースが一番に頭に浮かびますが、他にもさまざまな使い方が紹介されていて、勉強になりました。
実際、帰国後に参加した打ち合わせでサイドカー(Frontcar / Proxy)がちょうど適用できそうなユースケースがあり、候補の一つとして検討することになりました。Cloud RunのサイドカーサポートはPreview段階ですが、今後が楽しみです。
Developer Keynote: What's Next for Your App?
https://cloud.withgoogle.com/next/session-library?session=DEVKEY
Developer Keynoteでは「Legacy」がテーマとして掲げられました。Legacyは必ずしも悪い言葉ではなく、ビジネス価値を生み出してきた証で、これからも新しいLegacyを生み出していくのだというメッセージでした。そしてGoogleが技術的な課題に向き合ってきた過去と、生成AIを中心とする新しい技術を使った今後の開発が対比して紹介されました。
Bill Oneは社内で比較的新しいシステムであるものの、技術課題と向き合っていく必要があります。 その中で、Googleでさえも技術課題と向き合ってきたというエピソードは勇気づけられるものでした。 プロダクトを進化させるのと同時に技術課題を解消していき、新しいLegacyにしていきたいと感じました。
Ten best practices for modern app development
https://cloud.withgoogle.com/next/session-library?session=DEV203
このセッションでは、モダンなアプリケーション開発のベストプラクティスとして、次の10個が紹介されました。
- Design Stateless Services
- Design for Scale
- Optimize Your Containers
- Infrastructure as Code
- Cloud Native Pipelines
- Supply Chain Security
- Use Managed Services
- Observability
- Manage Costs
- Cloud Based Development
特別新しい話ではないものの、全部できているかと言われると必ずしもそうではなく、しっかりとやらねばという気にさせられました。
What's next for application developers
https://cloud.withgoogle.com/next/session-library?session=SPTL201
このセッションは、アプリケーション開発者向けのスポットライトセッションで、開発者がクラウドを利用する際の認知負荷を下げるための新機能がいろいろと紹介されました。
- Jump Start Solutions (GA)
- Duet AI in Google Cloud (Preivew)
- Application Integration (GA)
- Cloud Workstations (GA)
- Expanded Google Cloud and GitLab partnership
中でもJump Start Solutionsは、ベストプラクティスの構成をコンソールやTerraformで容易に作成し、学べるというもので、新しいサービスをTerraformで構築する際にも役立ちそうに思いました。
Database Professionalsカテゴリ
PostgreSQL the way only Google can deliver it: A deep dive into AlloyDB
https://cloud.withgoogle.com/next/session-library?session=DBS210
このセッションではAlloyDBの事例とアーキテクチャが紹介されました。AlloyDBについてはこれまでにも聞く機会がありましたが、Product Managerから直接聞けるのは貴重な機会でした。Alloy(合金)は「PostgreSQLとの互換性」と「Googleの技術」を組み合わせたものという意図で名付けたという話でした。
事例ではOracle ExadataをAlloyDBに置き換えた話が紹介されました。さまざまなツールを活用してクエリを書き換え、本番でのリプレイテストでパフォーマンス検証を行い、Database Migration Serviceで移行したという素晴らしい事例でした。
AlloyDBのアーキテクチャに関しては、システムメモリとバッファーキャッシュの割合を自動調整してくれるAdaptive memory managementは初めて知り、とても便利そうに感じました。
Building next-generation databases at Google: Cloud Spanner under the hood
https://cloud.withgoogle.com/next/session-library?session=DBS302
このセッションではCloud SpannerのアーキテクチャやGoogle内での利用事例が紹介されました。Cloud SpannerはGoogle内での大量データ処理を改善するために作られたもので、PostgreSQLを改善したAlloyDBとは出自が全く異なることがよくわかりました。
今のところCloud Spannerの利用機会はありませんが、通常のクエリに影響を与えずに分析用のクエリを実行できるCloud Spanner Data Boostも便利そうでした。
Run your high-performance database workloads on any cloud with AlloyDB Omni
https://cloud.withgoogle.com/next/session-library?session=DBS208
このセッションでは、AlloyDBをローカルで利用できるAlloyDB Omniが楽しく紹介されました。元々ローカル開発用途のイメージが強かったですが、Amazon EC2上で起動してAurora Postgresから論理レプリケーションでデータを同期するデモが紹介され、データ移行やパフォーマンス検証でも手軽に利用できることがわかりました。
また、カラムナエンジンを有効にするだけで300msの分析クエリが6msで返ってくるようになるデモも印象的でした。
Five best practices to enable highly available applications with Cloud SQL
https://cloud.withgoogle.com/next/session-library?session=DBS303
このセッションでは、Cloud SQLを使って高い可用性を持つアプリケーションを作るためのベストプラクティスとして、(タイトルに反して)次の6つが紹介されました。
- 相対的な更新順序付きでメンテナンスウィンドウを設定する
- メンテナンスの更なるコントロールのためには、セルフサービスメンテナンスを使用する
- 最高の可用性が必要なインスタンスはEnterprise Plusエディションを使用する
- ゾーンの障害の際にも高可用性を維持するためには、HA構成を有効にする
- リージョンの障害の際にも高可用性を維持するためには、クロスリージョンレプリカでHA構成を有効にする
- 日次の自動バックアップとPITR (Point-in-Time Recovery) を適切な期間で常に有効にし、ユーザーの誤操作や破滅的な事象から守る
Bill OneのメインのデータベースとしてCloud SQLを使用していますが、改めて聞くと、クロスリージョンレプリカのHA構成やPITRを使用した別リージョンへのインスタンス復元など、意外と知らなかった新機能もあり、とても勉強になりました。
Cloud SQLは、Google社内ではあまり使われていないプロダクトだと思われますが、Top 100 Customersの95%以上が使っているとのことで、非常に配慮が行き届いたプロダクトだなと改めて感心しました。
DevOps, IT Ops, Platform Engineers, SREsカテゴリ
What's new in modern CI/CD on Google Cloud
https://cloud.withgoogle.com/next/session-library?session=OPS200
このセッションでは、セキュアでモダンなCI/CDを実現するための次のプロダクトとその新機能が紹介されました。
- Cloud Build
- Artifact Registry
- Cloud Deploy
GitHub/GitLabとの連携が改善したCloud Buildの第2世代リポジトリや、Cloud Run security insightsなど、便利な新機能を知ることができました。
Bill OneのCI/CDを考えてみると、開発を始めた3〜4年前からCloud Build→GitHub Actionsの移行は進みましたが、大きな仕組みとしては変わっていません。紹介されたサービスも活用しつつ、より素早くリリースでき開発者体験が良いものに進化させていきたいと感じました。
おわりに
本記事ではGoogle Cloud Next ’23で印象的だったセッションを紹介しました。記事内ではあまり触れていませんが、AI(特に生成AI)がカンファレンス全体の大きなテーマでした。あらゆるプロダクトでAIを活用した新機能が提供されていました。ソフトウェアエンジニアとして、AIを活用できる機会を常に意識していくことが大切だと感じました。
普段からGoogle CloudのEnterpriseサポートで毎月製品アップデートを紹介していただいたり、リリースノートを購読したりすることで情報をキャッチアップしているつもりでしたが、初めて知る機能が多くあったのにも驚かされました。今後もこのようなカンファレンスに参加することで、しっかりとキャッチアップしていきたいです。
オンサイトで海外カンファレンスに参加するメリットとして、開発に関わっているエンジニアやプロダクトマネジャーと直接会話できることがよく挙げられます。実際に登壇者に質問することでそのメリットを享受できたものの、英会話力はまだまだで、もっと研鑽していきたいと思います。
サンフランシスコには初めて訪れましたが、空は気持ちよく晴れ渡っているのに長袖がちょうどいい程度の涼しさで、とても過ごしやすい気候でした。出発前から近年の治安悪化は聞いていて、実際大通りやショッピングモールの空きテナントの多さには驚きましたが、特に何事もなく帰ってこられて良かったです。
同僚のおかげで毎日美味しいご飯を食べることもでき、充実した出張となりました。機会があればぜひまた訪れたいです。