Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Manage-less Infrastructure with Container and S...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
sakajunquality
April 25, 2018
Technology
1
1.1k
Manage-less Infrastructure with Container and Serverless
DevOpsDaysTokyo 2018
sakajunquality
April 25, 2018
Tweet
Share
More Decks by sakajunquality
See All by sakajunquality
DevFest Tokyo 2023: Google Cloudでチームで安全にデプロイをする
sakajunquality
10
1.9k
Cloud Spanner Monitoring 入門 / Cloud Spanner Monitoring Introduction
sakajunquality
1
1.4k
GKE Overview March 2021: Introducing Autopilot
sakajunquality
1
880
Introduction to Cloud Run 2021
sakajunquality
3
1.6k
Building Reliable Distributed Systems on GCP
sakajunquality
1
290
Istio 1.5 Updates
sakajunquality
4
2k
GCP 101: Getting Started through Cloud Run
sakajunquality
6
3.8k
Seeking Observability, Getting Started with Service Mesh
sakajunquality
0
180
Fastly Yamagoya Meetup: Leveraging Cloud Portability with Fastly
sakajunquality
0
16k
Other Decks in Technology
See All in Technology
CDK対応したAWS DevOps Agentを試そう_20260201
masakiokuda
1
350
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
480
ランサムウェア対策としてのpnpm導入のススメ
ishikawa_satoru
0
190
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
200
【Ubie】AIを活用した広告アセット「爆速」生成事例 | AI_Ops_Community_Vol.2
yoshiki_0316
1
110
登壇駆動学習のすすめ — CfPのネタの見つけ方と書くときに意識していること
bicstone
3
120
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
340
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
260
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
2k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
学生・新卒・ジュニアから目指すSRE
hiroyaonoe
2
650
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
93k
Featured
See All Featured
Color Theory Basics | Prateek | Gurzu
gurzu
0
200
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
120
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
KATA
mclloyd
PRO
34
15k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
69
Everyday Curiosity
cassininazir
0
130
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
330
Transcript
"Manage-less" Infrastructure with Container and Serverless DevOpsDays Tokyo 2018 @sakajunquality
About Me - SRE at eureka, Inc. - Web系インフラエンジニア -
ネットワークとか低レイヤーなとこ ろも好きです @sakajunquality
Agenda - Prologue - About“Manageless”Infrastructure - Things to consider -
Cases - Conclusion
Prologue
本題の前に・・・
この発表タイトルを見て
GAEじゃだめなの?
RDSつかってればいいんでしょ?
サーバーレス=Lambdaでしょ?
コンテナ?Docker?
Kubernetesの話?
サービスメッシュ?
Cloud Native?
ベンダーロック?
という疑問を持たれたかもしれません
だいたい正解です
重要なのはあくまでも 適切な組み合わせ
- Container - Serverless
サービスの提供形態で クラウドを整理してみる
簡単に言うとIaaS/PaaS/SaaS
出典: https://codezine.jp/article/detail/8051
さらに最近だとCaaS/FaaS/**asS
PaaS全般をあわせて サーバーレスとして扱います
Lambdaだけがサーバーレスじゃない
メリット
コンテナのメリット ※ 実行筐体に関わらず - コンテナ自体はImmutable Infrastructure - コンテナプールは、Resource Utilization
サーバーレスのメリット ※ サーバーレスの種類にかかわらず - 実体としてのリソースを管理しなくていい - あるいは管理が楽
“Manage-less” infrastructure
サービスとしてどこまで触れるか?
サービスとしてどこまで触れるか? = どこまで管理しなければならないか
極力自分で管理しなければならないものを 減らし、本来重要なところに集中する
本来取り組むべきは・・・ - アプリケーションのビジネスロジック - クリティカルな部分のインフラ - サービス全体での可用性 - etc.
要は、楽したい
楽をしつつも可用性を向上させたい
例えば、サーバー1台立てると
例えば、サーバー(VM)1台立てると - OS/ミドルウェアのセキュリティ・バウフィックスの定期的なパッチ - プロビジョニング方式や再現性 - 負荷分散、冗長化・・・ - アプリケーションのディプロイ -
各種ログの収集 - 法令、業界や会社の規制
めんどくさい
ちょっとしたサーバーも、 ビジネスレベルで運用するなら 考慮することが多すぎる
サーバーを立てたら負け
とまでは言わないが、 その後の運用を覚悟しなければならない
こんなことないですか? - gli◦cやopen◦s◦のような脆弱性パッチ当てに追われる - 昔に立てたWord◦ressを定期的にメンテナンスしなければならない - どこで動いてるかもわからないディプロイボットを定期的に面倒を見なければならな い - カジュアルに立てたRe◦ashが、クリティカルに使われる
- 気づいたらログが欠損していて復旧に追われる - etc.
管理するべき対象や物事が多すぎる
もちろん すべてインフラ面で解決しなきゃならないわ けではない
不要なものは捨てるのが一番
それでも管理するものはなくならない クラウドをつかって楽をする
※こんな場合には当てはまらないかも - インフラエンジニアが何十人もいる - ネットワーク/OS/各種ミドルウェア等のレイヤーごとに専任がいる - Netflixバリに完成度の高いプラットフォームを自社で有している
What you need to consider in cloud
クラウドで考慮すべきこと - ワークロード - クリティカル度合い - ベンダーロック
ワークロードから考えてみる
ワークロード - どういうワークロードなのか - イベントドリブン - Httpトラフィック - Heavy? Light?
- リソース - CPU/Memory/Disk... - 実行するために何が必要なのか - ミドルウェア
クリティカル度合い
クリティカル度合い - ビジネス上の重要度 - サービスでの利用のされ方 - 技術的要件 - 許容レイテンシ
ベンダーロック
ベンダーロック - 組織としてのベンダーとの付き合い方 - どこまで許容するのか - サポート形態 - そもそもベンダーを変えることがあるのか -
開発フローを阻害しないか - ローカル開発
Cases
実際の事例をいくつか
※弊社のユースケースにおいての技術選 定であって、特定のクラウドを勧めてるわけ ではありません
Case1. FaaS Deploy/Event Notification Function
Notification function on FaaS LambdaやCloud Functions - ワークロード - SNSやPubSubなどのイベントをフックに発火
- クリティカル度合い - ミリ秒単位で争うわけではない - ベンダーロック - 各関数はベンダースペシフィックに書く必要がある - ベンダーごとの言語の縛り
Notification function on FaaS LambdaやCloud Functions - ワークロード - 常時プロセスを起動させておく必要はない
- クリティカル度合い - 自前サーバーでイベントを受けても対して速さは変わらない - ベンダーロック - 関数自体大した量じゃない - 頻繁にディプロイするわけでもない
Case2. CaaS Deploy bot on GKE Redash on GKE
Deploybot on Kubernetes - ワークロード - Slack RTMの通信を常時行う - クリティカル度合い
- 死ぬとディプロイやロールバックができない - ベンダーロック - 特になし
Deploybot on Kubernetes - ワークロード - プロセスを起動し続ける必要がある - クリティカル度合い -
最低限オーケストレーション はちゃんと行いたい - ベンダーロック - ベンダーとしての選択肢が豊富かつ 載せ替えも容易 - GKE/EKS/Azure/Oracle/自前etc… - コンテナなのでローカル環境も構築しやすい
Redash on Kubernetes - ワークロード - それなりにヘビーなトラフィック - プロセスは常時起動 (Web/Worker)
- クリティカル度合い - オーケストレーションはちゃんとしたい - ベンダーロック - 省略
あるPaaSのすべての機能を使いこなす必要はない 例) Kubernetes ユースケースによっては、コンテナのオーケストレーションをやってくれさえすれば良い
Case3. PaaS Data pipeline Data warehouse
Data Pipeline via PubSub and Dataflow https://cloud.google.com/dataflow/?hl=ja
Data Pipeline via PubSub and Dataflow - ワークロード - 複数のアプリケーションサーバーから送られるログを
BigQueryに入れる - クリティカル度合い - 欠損時はビジネス上の意思決定、アプリケーションのアルゴリズムともに影響受ける - ベンダーロック - 完全にGCPロックイン
Data Pipeline via PubSub and Dataflow - ワークロード - とにかくログが多い
- クリティカル度合い - 欠損が許容されない - ベンダーロック - fluentdやkafkaを自前で運用するよりはパイプラインとしてよっぽど安定する - (GCPで障害になることもあるが ) - DataflowのApacheBeamは一応オープンソース
BigQuery as DataWarehouse and Analytics Engine - ワークロード - PBクラスのデータを保持
- TB/PBオーダーでの解析 - クリティカル度合い - 省略(DataPipelineと同じ) - ベンダーロック - 自前運用が事実上不可 - 完全にGCPロックイン - 載せ替えれないこともないが膨大なデータの移動とクエリの書き換え
Case3. IaaS Elasticsearch
それでもIaaS (VM)を使う場合もある
Elasticsearch
- サービス上クリティカルな部分(検索)で使用している - PaaS(Elasticsearch Service/ElasticCloud)もあるが - 書き込み頻度が高く耐えられない - レイテンシーが許容できない -
IaaS(EC2)で運用 - OSレベル、JVMレベルの事柄との付き合い Elasticsearch
- 以前EC2で運用していたMySQLはRDS Auroraに載せ替え - メンテナンス性、可用性を考慮し ちなみに
QED?
これですべて解決するか?
考えることがむしろ増えていないか - 確かに増えている - クラウドに知識やオペレーションの習得 - セキュアなコンテナの作り方 - etc. -
クラウドの知識は - サポートやハンズオンでもどうにかなる - コンテナの知識は - それなりに汎用的に使えるので覚える
エントロピー - 最初は覚えることが多い - 最初はオペレーションもなれない - 技術選定したうえで徐々に下げていくしかない
コストは?
コストは? - 当然考慮すべき - IaaSよりもPaaSを使うほうがコスト高にの傾向 - 人的コストや可用性との天秤
Conclusion
Conclusion - 本来すべきことに重きを置き、楽できるところは楽する - 何でも自分で用意する必要はない - 重要なことはサービスに応じて適切な組み合わせを取る
Thank you