エンジニアの可能性を広げる 〜Google Cloud で学んだクラウド二刀流への挑戦〜

## はじめに
Google Cloudが主催するクラウド二刀流セミナーに参加してきました。
マルチクラウド対応なエンジニア(所謂、クラウド二刀流)を目指す私にとって、とても学びの多い有意義なセッションが多かったです。

本記事では「Google Cloud で目指すクラウド二刀流エンジニア」とは何かに加え、視聴したセッションの概要と得た知見をお伝えします。

## クラウド二刀流とは？
GoogleCloudが推奨する二刀流についてまず説明がありました。

①マルチクラウド　→　AWS or Azure + GoogleCloud
②ハイブリッドクラウド　→　オンプレミス　+　GoogleCloud
③マルチスキル　→　得意な技術領域　+　GoogleCloud

二刀流というワードで何となくイメージするのは①のケースだと思いますが、
GoogleCloudでは②や③を目指すエンジニアも二刀流のロールモデルに含めているそうです。

## クラウド二刀流セミナーの趣旨
二刀流セミナーが開催されるキッカケに関してもお話がありました。
企画発足当初、GoogleCloudのパブリッククラウドとしてのシェアは3番手の位置だったようですが
その順位をひっくり返そうという目的ではなく、他ベンダーと一緒にクラウド市場を盛り上げようという思いで始めたそうです。

二刀流と謳っている時点で他ベンダーのサービスとの比較はつきものですが、利用者に各サービスを理解した上で複数選択肢の中から選定してもらう事で、結果的にWin-Winな関係になれるのかなと思います。

## 【基調講演】新たなクラウド戦略を加速する - 「クラウド二刀流」で切り拓くクラウド人材の育成


### クラウドスキルの重要性
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/b8c67266-a6c6-9b77-9fd8-e42e104f0f68.png)

### クラウド二刀流の重要性
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/be809afd-d698-46f1-ed31-c0dae52b588a.png)

### 今後どのような人材が求められるか？

**内製開発をリードできる人材**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/3588b6cd-1986-43eb-2a70-0226415031e1.png)

**運用管理を改善できる人材**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/5877517b-5597-f5c5-ea0d-dbfb2ccffd9e.png)

**クラウドのガバナンスを向上できる人材**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/53d12760-f823-a87d-b29a-431d48f65215.png)

### GoogleCloudのプログラムを活用して、人材育成を促進


**Tech Acceleration Program(TAP)**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/6a7528d0-9d55-b001-5e5f-43f66bc3b6ab.png)

**Site Reliability Engineering**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/f11c1635-8a50-bfba-924f-a40c67672d2d.png)

**Platform Engineering Jumpstart**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/23a557dc-9300-c808-bbd7-b49b4f61cf0a.png)

### クラウドを適切に推進しないリスク
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/e9b9eded-59f6-9d23-4b7f-f7aad4648d54.png)

### マルチクラウドのベストプラクティス
- 課題ファーストで進める
  - マルチクラウドを押し付けない
  - 特定のプラットフォームありきではなく、「課題」や「何を実現したいのか」を一番に、ベストな実現方法を考える
- 小さな成功体験を積んでみる
  - 実際にサービスを試すことが、そのサービスを理解する近道
  - 製品の比較表を元にした判断は、すぐに情報が古くなり、選定者の好みにも左右されるのでアンチパターン

### 二刀流エンジニア人材育成の必要性
- AWS、Azure、GoogleCloudなど主要なクラウドサービスを幅広く学ぶことで、それぞれの違いや共通点を理解し、より深い分析力と提案力を身に着けることができる
- 複数のクラウドサービスを知っていることで、キャリアとしても広がりを持つことができる

### 育成・学習におけるキーポイント
- 根本思想を理解する
    - 各サービスの設計思想やユースケースを深く理解することが重要
    - 表面的な機能比較にとどまらず、何故そのサービスが生まれたのか、どのような課題が解決できるかを理解する事が真に最適な選択を可能にする

## テクニカルセッション ～Google Cloudのサーバーレスサービスの特徴と違い～
### 本セッションの目的
Google Cloudではサーバーレスアーキテクチャをシンプルに作れるということを理解し、
Google Cloudで作るサーバーレスアーキテクチャのイメージを掴む事がゴールとなります。

### Google Cloudのサーバーレスとは？
**運用**
- インフラ管理不要
- マネージドセキュリティ
- 従量課金

**プログラミング**
- サービスベース
- イベントドリブン
- オープン

要はインフラ管理はGoogle Cloudに任せて、アプリケーション開発に専念できるという事です。

### 主要なサーバーレスサービス
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/ff28338f-40c6-66ad-12dd-d7db623587c7.png)

#### Cloud Run
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/f2b21df7-fd97-c80f-b980-27d6af3544b5.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/1f0ce4dd-327b-8bc2-92d4-c1b28417b976.png)

Cloud FunctionsというFaaSが元々あったのですが、リブランドされて名称が**Cloud Run functions**に変わったそうです。

#### Workflows
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/39e421a5-5642-38d9-cd60-f87a705ad463.png)

#### Pub/Sub
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/757b48de-e3e1-a9a2-ef55-3cd77807a8a1.png)

イベントドリブンなアーキテクチャ実現に利用できるサービス。
他クラウドのキューイングサービスはパブリッシュとサブスクライブが別サービスに分かれている事が多いが、GoogleCloudでは一つのサービスで完結できる事がポイントです。

#### Firestore
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/f746d6a1-cb06-4bec-9bf1-780ad6000d99.png)

#### BigQuery
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/8df63d36-f612-94b2-1aab-5800a445c80b.png)
データのETLもBigQuery内で実施できてしまうので、とりあえずデータをBigQueryにいれておけば何とかなります。

#### クラウド移行パスと現状の再確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/924c3912-079c-112a-4a19-24b68e764cb2.png)

Migrationは行ったが、モダナイゼーションへのステップアップが行われず滞っているケースが多いようです。Modernizationに関しても、本当にそのアーキテクチャで課題が解決できたか、より良いアーキテクチャは無いかと振り返る事が大事だと説明がありました。

#### クラウドに移行したが、、よく聞く課題
- ランニングコストが高い
    - 余剰リソースがある
    - VMが常時稼働でコストがかかっている
- 運用に人的コストがかかる
    - SSHログインしないと原因が分からない、保守できない。
    - デプロイが大掛かりで気軽にできない

#### サーバーレスのメリット
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/08fcea45-e314-0972-d170-4c2d70f1715c.png)

#### コールドスタートの課題
- アプリケーションの起動までが遅いとコールドスタートが発生してしまう
- コールドスタートを避けるためにはスタンバイが有効だが"必要な時だけ起動"に相反している

**サーバーレスアーキテクチャ方針で進めたにも関わらず、結果として常時稼働になっちゃってる**

#### Cloud Runはコールドスタートの課題を解決
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/66659c9e-9bbc-1a65-38b2-f2d1ffbd3873.png)

#### イベントドリブンアーキテクチャの例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/6b5821ba-c2ce-1007-2ef3-74250c8d8ede.png)

この例でよく聞く課題
- 障害が多く、解消も困難
- スケールするとコストがかかる
- アーキテクチャが複雑化してしまう

#### サーバーレスアーキテクチャをシンプルに構築する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/a042e6c3-4f52-e212-addf-47b0047a10a9.png)


#### CloudRunと一般的なFaaSの違い
一般的なFaaSはリクエストごとにFunctionが起動するが、CloudRunはコンカレンシーの設定で1コンテナインスタンスへの同時リクエスト数が設定できる。


#### コスト比較
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/1b6a7ec7-e21e-84b7-b3e3-f4cf3da93ead.png)

#### アーキテクチャの紹介
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/99f615de-801e-62bb-c240-bd7bb858837b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/8e745192-cb49-f46e-6640-2cf3013469b9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/c50c6558-0765-67d2-c06e-f0ea5d803cc5.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3880077/b44fa86b-10aa-c255-b7c9-8b2ca729638a.png)

## さいごに
今回のセミナーを通じて、マルチクラウドの重要性と動向をキャッチアップする事ができました。
エンジニアとして複数のクラウドサービスを扱える知識と経験は必須になっていく事が予想されますので、本セミナーで知り得た情報を駆使しながら更なるスキルアップを目指したいと思った次第です。