Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
gcp_gke_infla_design.pdf
Search
TakutoYoshimura
February 14, 2019
Technology
310
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
gcp_gke_infla_design.pdf
TakutoYoshimura
February 14, 2019
More Decks by TakutoYoshimura
See All by TakutoYoshimura
Materia.pdf
takutoyoshimura
1
250
Other Decks in Technology
See All in Technology
AI感のないAWS構成図をAIエージェントに描かせたい!
sagochiko
2
480
Incremental HTTP
kazuho
3
1k
なぜAI任せのゲームは面白くならないのか?
hirohasuyoutube
0
320
AIエージェント時代のPlatform as a Product —— テックリードがPdMとして回す発見・導入・計測 / Platform as a Product in the AI Agent Era
toshi0607
1
530
認知負荷を吸収し、プロダクトをまたぐPR Preview基盤の設計事例
taiki45
2
550
BedrockとLambdaで作る リアルタイム進行型推理ゲーム
kawametho
0
110
なぜ「決定性」が 決定的に重要なのか? Durable Execution 基盤の数理的理解 #serverlessjp / ServerlessDays Tokyo 2026
ytaka23
4
1.4k
GitHub Agentic Workflows を触ってみる
htkym
2
880
1人アドミンな私はAWSアカウント申請をSlackで完結したい!
ysuzuki
0
100
雪かき部 #7 もう怖くない!SELECT文!
foursue
0
200
【データ横丁主催】AI Agentがコンテキストを使って仕事をした後、何が残るのか― 組織の経験を次の判断に引き継ぐ「Agent Memory」
shisyu_gaku
2
260
地方移住と都心キャリアの両立は「金・時間・人」のリソースをフル活用すれば実現できる!〜Snowflake女子会 vol.8
snowwmn0824
0
130
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.3k
The Curse of the Amulet
leimatthew05
3
15k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
470
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
For a Future-Friendly Web
brad_frost
183
10k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
270
Designing Experiences People Love
moore
143
24k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
290
Faster Mobile Websites
deanohume
310
32k
4 Signs Your Business is Dying
shpigford
187
23k
Transcript
Angular +Elixir 製SPA をGKE で動かす Takuto Yoshimura
[email protected]
自己紹介 本名 吉村 拓人 カラビナテクノロジー株式会社 社内のあだ名は つちろー 元はJava の金融系SIer 昨年より顧問エンジニアとしてElixir
でWeb システ ム開発はじめました
顧問エンジニアとは 月額定額で0 からのシステム開発をサポート Web サービス立ち上げのビジネスモデル構築など からお供いたします 数名の担当で複数のお客様のサービスを開発
数名とは ぶっちゃけ3名です ※2018 年実績 ・デザイン&フロントエンジニア ・バックエンドエンジニア(つちろー) ・バックエンド-> フロントエンジニア
基盤がしんどい そうだGCP にしよう
GCP に決めた理由 コンソールのUI が素敵
GKE に決めた理由 GAE プログラムの実行環境ホスティング 抽象度高 (ElixirRuntime がWebSocket に未対応) GKE コンテナオーケストレーションのホスティン
グ 抽象度中 GCE 仮想サーバーのホスティング 抽象度低
結論 今回はGKE で
システムの論理構成
ソフトウェア/ サービススタック
デプロイフロー
クライアントポッド構成
クライアント構成定義(1/2) apiVersion: extensions/v1beta1 kind: Deployment metadata: labels: app: client-app name:
client-app namespace: default spec: progressDeadlineSeconds: 600 replicas: 2 revisionHistoryLimit: 10 selector: matchLabels: app: client-app strategy: rollingUpdate: maxSurge: 1 maxUnavailable: 1 type: RollingUpdate ~~
クライアント構成定義(2/2) ~~ template: metadata: creationTimestamp: null labels: app: client-app spec:
containers: - image: us.gcr.io/sample-deploy-project/client-app:latest command: ["nginx", "-g", "daemon off;"] imagePullPolicy: Always name: client-sha256 resources: {} terminationMessagePath: /dev/termination-log terminationMessagePolicy: File dnsPolicy: ClusterFirst restartPolicy: Always schedulerName: default-scheduler securityContext: {} terminationGracePeriodSeconds: 30
サーバーポッド構成
サーバー構成定義(1/2) ~~ spec: containers: - image: us.gcr.io/hogehoge-project/app-ex:latest command: ["/bin/sh"] args:
["/opt/app_ex/app_start_prod.sh"] env: - name: "APP_EX_DB_USER" valueFrom: secretKeyRef: name: "app-ex-repo" key: "APP_EX_DB_USER" - name: "APP_EX_DB_PASS" valueFrom: secretKeyRef: name: "app-ex-repo" key: "APP_EX_DB_PASS" imagePullPolicy: Always name: vanking-server-sha256 ~~
わかりやすいまとめ
ご静聴ありがとうございました。