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
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
CIで使うClaude
iwatatomoya
0
230
Terraform共通モジュールをチーム横断で“変えられる”運用へ ― リリースと適用の分離
kekke_n
1
2.7k
LLM/Agent評価:トップ営業の発言を「正解」にする 〜暗黙的正解による評価を営業資産に変える〜
takkuhiro
1
200
Claude Code 珍プレー好プレー
shinyasaita
0
320
誤解だらけの開発生産性 / Myths and Misconceptions about Developer Productivity
i35_267
1
210
Claude Codeとハーネスについて考えてみる
oikon48
18
9.2k
LLMやAIエージェントをソフトウェアに組み込むプラクティス
shibuiwilliam
1
350
GuardrailからGovernanceへ~AIエージェント運用の次の課題~
sbspsy
2
270
Docker Desktop不要の時代が来る? WSL標準の「wslc」で Linuxコンテナを動かしてみた.
ueponx
0
930
CSに"SLO"は要らない、経営層に"99.9%"は伝わらない - SREを全社に"翻訳"する3原則
cscengineer
PRO
1
4.4k
Claude Code公式skillで 自分の仕事を少しずつ手放そう!(Claude Code開発ノウハウ大公開スペシャル by クラスメソッド)
kaym
0
130
環境凍結という Toil を倒す -セルフサービス型 Ephemeral テスト環境の 設計と実践
shirouz
1
2.2k
Featured
See All Featured
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
890
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
310
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
260
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
170
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
2
320
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
210
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Writing Fast Ruby
sferik
630
63k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
3.7k
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 ~~
わかりやすいまとめ
ご静聴ありがとうございました。