Kubernetesのない世界
すべてがサーバーレスになる
2018.4.19
Japan Container Days v18.04
#containerdaysjp
吉田真吾
@yoshidashingo
Yasuhiro HARA
@toricls
公
開
版
吉田真吾
n バックグラウンド
証券システム基盤開発
p 基盤システム開発、Oracleチューニングなど
エバンジェリスト
p 講演113回(2013年実績)
p AWS設計・構築・移行(2014-2015)
n 現在のしごと
(株) セクションナイン 代表取締役社長
p APN コンサルティングパートナー
p DevOps Dockerize Serverless 支援など
(株) 実績等
p AWSウルトラクイズ
初代チャンピオン (2012年)
p AWS Samurai 2014 / 2016
Yasuhiro HARA
@toricls
SUPINF Inc.
SI, コンサルティング
AWSによるサーバーレスアーキテクチャ
サーバーレスアーキテクチャ• による
動画共有サイト構築
オンライン• 教育動画サイト「A Cloud
Guru」で実際に使われている技術や
コードをベースにした詳細説明
AWS Lambda / API Gateway / S3 /•
CloudFront / Elastic Transcoder /
Auth0 / Firebase Realtime Database
今年もやります!!
本日はざっくりこんなスタンスで
すべてがサーバーレスになる!
んなあほな
われわれがすべきこと
はなんだろう?
ソフトウェア開発者
ソフトウェアを通じて価値を提供する
われわれがすべきこと
短い時間で
価値の高いもの / 素早く / たくさん
デリバリー /フィードバック / 改善
Less Ops, More Code!!
われわれの戦いの歴史
Less Ops, More Code
ちょっと振り返って
みて良いですか?
PaaSの普及 2008〜
インフラ• を隠蔽したソフトウェア実行基盤
→インフラや実行環境のメンテに費やす作業が減る
12• -Factor App / PaaSを活かすアプリのつくりか
た
すべてが• PaaSになったか
レガシーシステム• の移植性
パッケージング• やポータビリティの再現性の低さ
コンテナ技術の一般化 2013(Docker)〜
アプ• リごとの環境分離
複雑• なインフラの依存性からの脱却
すべてが• コンテナ+スケジューラーになるか
クラウド• やオンプレミスのサーバーへのデプロイか
の手間
イメージ• のビルドプロセス
スケーラビリティ• の管理
FaaS 2014〜
FaaS• :コードを用意して渡すだけで実行できるソ
フトウェア実行基盤
超並列的:• キャパシティプランニング不要
サーバ• ーのプロビジョニング / ソフトウェアのインス
トール不要
コンテナ• のビルド / デプロイ 不要
サーバ• ーレスアーキテクチャ
「サーバ• ーに直接アクセスしなくても仕事ができる」新
しいソフトウェアアーキテクチャ
コードに全力を注ぎたい
Less Ops, More Code
ようするに
コンテナってDockerでビルドしてKubernetes
でクラウド上にスケジューリングするというス
タイルで完成形なんですかね?
んなあほな
理想の
Less Ops,
More Code.
サーバーレス
コンテナ
オンプレミス
+H/W
Less Ops な調達モデル
Kubernetes
コンテナ
オンプレミス
クラウドがなかったらこういう組み合わせが多
かったのかなと思ってたけど、今日色々聞いて
みたらむしろクラウド事業者もこぞってオンプ
レにk8sベースのスタックを構築できるソ
リューション出してますな
当日はRancherとかに触れてど
うのこうの言ったけど何話した
か忘れちゃった
理想の
Less Ops,
More Code.
サーバーレス
コンテナ
オンプレミス
+H/W
Less Ops な調達モデル
Kubernetes
コンテナ
VM
理想の
Less Ops,
More Code.
サーバーレス
コンテナ
オンプレミス
+H/W
Less Ops な調達モデル
KubernetesもVM
もない世界
VMレスコンテナ、便利そう。でもFargate、
本番で振り回すには単純にまだ高いなーって。
機能性や運用工数やリスクまで
含めてうんぬんかんぬん
じゃぁ次はサーバーレスの紹介しますね
What is Serverless ?
/ =
= PI
Serverless PaaS は黎明期
Gartner Identifies Three Megatrends That Will Drive Digital Business Into the Next Decade
http://www.gartner.com/newsroom/id/3784363
原則
マイクロサービスn 指向
小規模• で自律的なシステム
• 1つの目的にフィットしている
マイクロサービス:ビジネスü の境界=サービスの境界
サーバーレスü で実行する各ランタイムはサービスの境界よりずっと細かい
リアクティブn なアーキテクチャ
リクエストルーティング• 機能/状態管理/永続ストレージを
コードから「分離」することで、メンテナンスしやすい最小限に維持し、生産
性を向上する
認証・認可n にもとづくリソースアクセス
ドメイン• の違うサービス間のリソースへのアクセスを適切な範囲に限定する
DRYn
競争力• を得られない汎用機能をアウトソースする
理想の
Less Ops,
More Code.サーバーレス
Less Ops な調達モデル
コードだけあれば
いいじゃない
とても良い質問ですね。
FaaSを中心にしたサーバーレスではデプロイメント
を便利にしたりアプリケーションスタックを宣言的
に記述して管理できるフレームワークがエコシステ
ムを中心に発展してきてるんですよ
でもサーバーレスってコード書く以外のとこで
大変なこともまだありますよね?
チーム開発どうやる?とか
ちょっと会話の流れに出来レース感があr
https://dan-serverless-platform-refactor--landscape.netlify.com/grouping=landscape&landscape=serverless
CNCF Landscape
ベンダーやオープンソース作者やそれにコントリ
ビュートする人たちが増えてエコシステムが大きく
なってきてるという実感はありますね。
それ以外にもおとといこんな面白い話を聞いたんで
すよ。
VS Code や Cloud 9 も便利ですよね
ここもかなり出来レース感g
チーム開発って難しいですか?
アーキテクト• と実装の分割さえできればむしろ
工程や品質管理しやすい
中山桂一さん@キャラウェブ
WebもアプリもサーバーサイドはREST API化
してますが「Swagger定義」と「DynamoDB
のテーブル定義」さえちゃんとできていれ
ば、外部ベンダに関数ごとに制作お願いでき
るんで管理しやすいですよ
(明日の開発カンファレンス より)
現場的コンウェイの法則
(マイクロサービスの実践)
マイクロサービスやるとデススターになりが
ちなので、イベントハブを中心にしてイベン
トの経路の見通しが良いアーキテクチャを作
るのが大事だと思うんですよね。
となるとイベントハブ部分にほぼ無限のスケーラビ
リティが確保できるプラットフォームって自ずと限
られてきそうですね
マイクロサービス “デス・スター”
サーバーレス独特なObservabilityサービスも
最近はいろいろあるし、トレンドも変わって来
てるみたいなので紹介しますね
Observability
Engineering
“サーバーレス時代”の
たとえばFaaS主体で機能単位に構成していくと
どんな感じになるかというと…
Mackerel とか とか、あと Mackerel とかも
けっこうみなさん入れてt
サーバーがあった頃であれば、個別のメトリク
スってZabbixやNagiosのエージェント入れて
収集したり、NewRelicみたいなAPMのエー
ジェントも入れてたと思うんですよ。
分散トレーシングしたければZipkinとか
Jaegerあたりとか。でもね…
OS以下の情報にアクセスできない
それぞれのシステムや共通監視システムの
マネージャーインスタンスでログのアグリ
ゲートしてたりすると思うんですけど、
並列でスケーラブルにログが飛んでくる
ベンダーが提供するツールや専業のスタート
アップも増えてきてますね
モニタリング層
Serverless Application Lens
Amazon CloudWatch AWS X-Ray
※非同期処理はトレースされない
https://dan-serverless-platform-refactor--landscape.netlify.com/grouping=landscape&landscape=serverless
この2つ紹介しますね
Building Composable Serverless Apps
Eric Windisch
IOpipe, Inc.#iopipe
= SL O
I
ただこれだと毎回数百msec余計なレイテンシ
が増えて課金もバカにならないんですよね
O E A S = E
R - - O
トレンドは「Functionをラップしてステート
などをタッピングする同期型のツール」から
Epsagon, THUNDRA のような「CloudWatch
Logsに必要なメトリクスを出力させたうえで
それをサービスダッシュボードで可視化する
非同期型のツール」に移りつつあるように思
います
といったあたりでお時間です。まとめとしては「ソフト
ウェア実行基盤の調達モデルに違いがあっても、Less
Ops, More Code. を目指そう」そして「コンテナのエコ
システム同様、サーバーレスにもそれぞれの課題とそれ
を解決するエコシステムがありますよ」て感じですかね
xxxxxxxxxxxxxxxxxxxxx
まとめ

Kubernetesのない世界 すべてがサーバーレスになる