Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

ServerlessDays Tokyo 2019参加記

こんにちは、新人エンジニアの@yktm31です。
先日開催された、ServerlessDays Tokyo 2019に参加したのですが、レベルもボリュームも最高だったのでレポートをしたいと思います!

ServerlessDaysは、サーバーレスを使って得た知見や経験を共有するカンファレンスで、
10/21(Sun)と10/22(Mon)の2日間に渡り開催されました。
初日はハンズオン/ワークショップ、2日目はカンファレンスという日程で、私は両日参加しました。

会場の様子はこんな感じでした。
f:id:acro-engineer:20191118172113p:plain

1日目

Microsoftさんによるワークショップと、@toshi0607さんによる「Knativeで作るDIY FaaS」というワークショップを受けました。

1. Microsoftさんによるワークショップ

2コースに別れていて、一つはテキストに従って進めるハンズオン形式、もう一つはチームで課題をクリアするワークショップ形式がありました。
私はその中のワークショップを選びました。

コンテンツとしては、サーバレスなアプリケーションを構築する上で主に利用するサービスを一気に学べる、充実した内容でした。
Azure Functionsのみならず、Cosmos DB・Logic App・Application Insightsを組み合わせて実際的に作るという点が面白かったです。
個人的には、Azure Functionsのデータバインディングなど、実践的な使い方も学ぶことができたのがよかったです。

当日の資料は以下のリンクから飛べます。
github.com

2. @toshi0607による「Knativeで作るDIY FaaS」

GCP上でk8sクラスタを作成し、Lambdaっぽいことができるプラットフォームを構築しました。
丁寧かつわかりやすい資料(下記リンク)に非常に助けられて、k8s初心者の私でも無事構築できました。
github.com

2日目

2日目はカンファレンス、一つ一つのセッションが先進的かつプラクティカルな知見の塊で、非常に濃密でした。
この記事では、その中でも特に、印象に残ったものを取り上げて紹介したいと思います。
当日の様子は、togetterも参考になると思います。
togetter.com


1. 10x Serverless Product Development for a Startup with Microsoft Azure


EBILABさんは、伊勢の老舗食堂のゑびやさんが立ち上げた、データ活用のためのスタートアップだそうです。
EBILABさんがサーバレスアーキテクチャを採択し、10倍の業務効率改善をしたという話でした。

学習コストが低いPython × Azure Functionでシステムを構成。
協力会社に依頼できる部分は依頼し、エンジニアが本当に必要な箇所の設計・開発に注力できるようにしているそうです。
Pythonであればローコンテキストでコーディングができ、サーバレスだと責務分離がしやすいので、協力会社に作業を渡しやすいとのことでした。

その結果、3,4人ほどの小規模なチームで開発を高速に回せるようになり、
事業を進めるうえで「なるべくエンジニアがボトルネックにならないように」を実現しているそうです。
スタートアップという形にも沿うような、システムづくりやサービス形態を実現できるのはサーバレスのいいところだと感じました。

2. Keynote: Infinite Scaling, Finite Failures: Serverless Resiliency Patterns and Lessons Learned

AzureのDurable Functions 2.0(プレビュー)を使えば簡単に障害回復を実現できるという話でした。
サーバレスシステムでは、データソース、サードパーティAPI、ネットワークなど
依存関係がある箇所どこでも障害が起こり得ます。

サーバレスで障害が起きたとき、回復の手段として多く取られる手法はRetry(再試行)です。
しかし、再試行ではうまく行かないケース、(例えば、削除処理がある関数実行中に障害が起きるなど)があります。

一つ一つの関数がidempotency(冪等性)を担保するために、サーキットブレーカーパターンと言うものがあり、
closed/open/half-open という状態を持って、関数の稼働を制御するそうです。

サーキットブレーカ自体の実装は大変ですが、AzureのDurable Functions 2.0(プレビュー)を使えば簡単に実現できるとのことでした。
今はプレビュー段階ですが、是非触ってみたい機能ですね。

3. グローバル展開のコネクティッドカーを支える大規模サーバーレスシステム事例

実は、弊社マネージャの鈴木 貴典(@takanorig)が、トヨタさん・AWSさんと一緒に登壇していました!
(このセッションを聞くことが目的の一つでもありましたw)

発表されていた内容は、「コネクティッドカー」として、
車と、ドライバーや各種サービスとを繋ぐシステムを、サーバレスで構築した事例の話でした。

サーバレスを用いた理由として、徹底的にムダを削除し、価値ある仕事にコミットするため、というのが印象に残っています。

・多くの車が動くのは日中の時間帯であり、昼と夜とでアクセス数の上下が激しい
・購入された車は数年以上乗り続けられるため、それに合わせたサービスの保守が発生する
といった、「車ならではの特性」を踏まえ、サーバレスを利用してリソースの最適化と運用コストの削減を実現。

運用コストが減った分、新規サービス開発や既存サービスの改善に時間をさけられるようになったようです。

また、大規模サーバレスシステムのリアルな構成・運用の話もあり、かなり実践的な内容だったと思います。

今回、トヨタさんのシステムが発表されるだけでもレアなケースとのこと。
業務的にかなりリアルな内容を含んでいるため、詳細については残念ながらオフレコになっています。
togetterで雰囲気を感じてもらえたらと思います!

4. 空調設備向けIoTシステムにおけるクラウドランニングコスト

空調同士をインターネットに繋いでIoT化・プラットフォーム化するというプロジェクトについての話でした。

システム規模は500万台、1min毎にデータ発生し、同時アクセス9万人という大規模IoTデータを扱うにあたり、
IoT×サーバレスでは、リクエストの数によって青天井にスケールしてしまう可能性がある。
その問題に対処すべく、DynamoDB設計の試行錯誤が、失敗例も含め具体的に発表されていました。
資料はこちらにアップされています。

サーバレスも一つ使い方を誤ると、膨大なコストにつながってしまうことがわかりました。
明日は我が身として、サーバレスを使うときのコストが最小になるような設計が必要だと感じました。

まとめ

今回、色々な企業で実際に利用されている事例が多く発表されていました。
その中でも印象に残ったことは、サーバーレスなシステムにより、無駄がなくなり、サービスの本質的な価値創造によりコミットできるようになるということです。

個人的には、サーバーレスの目指す姿は、
弊社が目指す「人は『人にしかできないこと』にリソースを使うビジネスの世界」に近いと感じました。
そういったシステムの開発やサービスの提供に、自分も携わっていけたら、エンジニア冥利に尽きると感じます。

これだけ刺激的な内容のカンファレンスを準備していただいた運営スタッフの皆さんには感謝です。
また来年も参加したいと思いました!

Acroquest Technologyでは、キャリア採用を行っています。


  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • Elasticsearch等を使ったデータ収集/分析/可視化
  • マイクロサービス、DevOps、最新のOSSを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長

大阪勤務、Pythonでサーバレスアーキテクチャを採用した開発メンバ募集! - Acroquest Technology株式会社のWeb エンジニア中途・新卒の求人 - Wantedlywww.wantedly.com


また、弊社エンジニアのインタビュー記事や、カルチャーについての記事も公開しています。
是非ご一読ください!
・最強の検索エンジンこそが、未来を切り拓く鍵 ~3年目・若きデータサイエンティストの挑戦~
https://www.wantedly.com/companies/acroquest/post_articles/180008
・働きがい全国1位企業に根付く文化 ~全社員で会社を創り上げる~
https://www.wantedly.com/companies/acroquest/post_articles/189283