10.3K Views
September 10, 24
スライド概要
2024-09-09 ServerlessDays Tokyo 2024 PreEvent
https://serverless.connpass.com/event/329046/
解説ブログ記事
https://d.nekoruri.jp/entry/2024/09/20/serverlessjp
秋葉原生まれ大手町育ちの歌って踊れる江戸っ子インフラエンジニア。 0と1が紡ぐ「ゆるやかなつながり」に魅せられ早20年、 SNSとCGMの力で世界を幸福にするのがライフワーク。 市民、幸福は義務です。 あなたは幸福ですか?
Serverless Updates 2024 Ver.1.1 2024-09-09 ServerlessDays Tokyo 2024 PreEvent めもおきば Aki @nekoruri
サーバーレスのおさらい 「サーバー」の抽象化によって登場した以下の性質をもつサービス 1. 運用者: 自分でサーバーを管理しなくて良い • 完全従量課金(※)なフルマネージドサービス • 0円から使った分だけいくらでもスケールしてくれる 2. 開発者: 個々のサーバーに依存する機能を利用しない • プロセスメモリやファイルシステムはリクエストをまたいで 共有されない(ことがある) • レプリケーションとシャーディングによるスケーラビリティ確保 ※ 最低限動かし続けなくてはいけない動作(に対する課金)はありうる 2
「サーバーレス」の全体像2024 小さな計測単位:時間、性能 サーバーマシン管理からの解放 確保量から使用量へ 弾力性 (オートスケール、ゼロスケール) 完全従量料金 コスト最適化 フルマネージドサービス イベントバス・ワークフローエンジン オーケストレーション・コレオグラフィ マイクロサービス・分散システム イベントドリブンアーキテクチャ リアクティブシステム リソースの抽象化 アクターモデル microVM/コンテナランタイム/Sandbox スタートアップの高速化 Platform Engineering サーバーマシン依存リソースの非共有 プロセスメモリ・ファイルシステム ID管理・認証認可 プログラミングモデル データエンジニアリング スキーマ管理 価値・成果への注力 NewSQL/DBaaS ストレージとコンピュートの分離 自由と抽象化のグラデーション シャーディング・レプリケーション Container – Function – DSL - Configuration ストリーミング処理 3
2023再掲:イベントドリブンアーキテクチャ(EDA) • 利用するたくさんのクラウドサービスをどう管理するか • 「FaaSでつなげていく」はもう古い • 失敗時の再送、異常データの除外、 データの書き換え・フィルタリング、etc… • ピタゴラ装置の構成をどう管理するか • オーケストレーション • コレオグラフィー 4
AI拡張型開発:LLMによる開発 • UI: v0(Vercel)、AI Generated UI(Google) • エンジン: AWS App Studio • コード: Copilot Workspace • 擬似言語: SudoLang • SQL: Postgres.new(Supabase) • 古いコードの更新: Amazon Q Code Transformation ⇒ LLMとの親和性が技術選定の重要要素に 5
コストに基づいたアーキテクチャ • 巨大なクラウドほど「コスト」から受ける影響が大きい • 今後4年間で電力消費量が2倍以上に増える予想(※) • 性能改善による利益が成長の源泉につながる正のループ • The Frugal Architect • https://thefrugalarchitect.com/ • コスト構造こそがアーキテクチャ設計の要件となる • ゼロスケールでも掛かる共通機能のコスト(例:FaaSのロードバランサ) 1. 実はクラウド事業者が負担 ※ グローバルなデータセンターの電力消費量が4年で2倍以上に急増、 2. マルチテナントによって「みんなで負担」 国際エネルギー機関が予測。今後のAI分野の競争は電力調達が勝敗を 握るようになるか? - Publickey https://www.publickey1.jp/blog/24/42ai.html 6
NewSQLとDBaaS • プロトコル互換 • PostgreSQL、MySQL、MongoDB • マルチモデルな計算機層 • Azure CosmosDB、Google Cloud Spanner • グラフ構造、ベクトル(RAG向け)、全文検索 • ストレージ • オブジェクトストレージからの直接クエリ(Athena – S3) • 他社ストレージへの直接クエリ(BigQuery Omni、DuckDB) ⇒マルチクラウドからクロスクラウドへ 7
フロントエンドとバックエンドの接点 • 新たな「on Rails」の模索 • Next.js • フロントエンドのコードにサーバー側実装を埋め込むServer Actions • Hono • Web Standardsによる可搬性によってフロントエンド側へ浸透 • データのスキーマや型をどう管理するか • GraphQLやgRPCからコード生成 • tRPC(TypeScriptによる大統一理論) 8
FaaS Updates AWS • 性能向上(オートスケーリング) • 長時間実行・HTTPストリーミング • 開発体験の向上 Application Composer、Amplify Gen2 • Managed OSS(Flink、InfluxDB、Airflow) Azure Functions • Flex Consumptionプラン 従来のPremiumプランの不都合を解消 • HTTPストリーミング • v4プログラミングモデル(Pythonに続いてNode.js) • OpenAI拡張、Redis拡張 Google Cloud Functions(旧称) • Cloud Runとの統合 現:Cloud Run functions • GPU対応 共通 • 開発のしやすさへの注力 • コンテナ技術とのさらなる統合 • IPv6対応 9
まとめ • 「サーバーレス」という技術ムーブメントの全体像 • FaaSそのものはひきつづき完成度を上げている • サーバーレスをより深く知るための視点 • AI拡張型開発 • コストに基づいたアーキテクチャ • DBaaSなどをふまえたマルチクラウド・クロスクラウド • フロントエンドとバックエンドの接点 10
【パネルディスカッションテーマ】 サーバーレスの今後に向けて • 誰が「サーバーレス」を使っていくのか • 開発生産性をあげて殴っていくためには • マルチクラウド時代 • プラットフォームエンジニアリング • ガバメントクラウド…… • データ主権、テクノロジー主権 11