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
Building a Bank with Kubernetes – Kubecon 2016
Search
Oliver Beattie
November 09, 2016
Technology
630
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Building a Bank with Kubernetes – Kubecon 2016
Oliver Beattie
November 09, 2016
Transcript
62 slides
Building a Bank with Kubernetes
Oliver Beattie @obeattie Head of Engineering, Monzo
None
None
None
None
None
None
None
None
Pre-application 9 months Application 6 months Mobilisation 4–8 months
Extensible Efficient Resilient Secure
Extensible Efficient Resilient Secure
Application Database
Application Database Cache
Application Database Cache Load balancer Cache Cache Application Application
Database Cache Load balancer Database Database Cache Cache Application Application
Application
Database Cache Load balancer Database Database Cache Cache Application Application
Application
Application Database Cache Load balancer Application Application Database Database Cache
Cache
None
None
None
Extensible Efficient Resilient Secure
None
app
app
core app
None
None
Extensible Efficient Resilient Secure
None
None
Load balancing Tracing Circuit breakers Retries Canarying Load shedding Error
tracking Metrics Service discovery Logging Timeouts Expirations Security policies Back-offs Retry budgets Dynamic routing
Minimise latency ⏱ Maximise success
linkerd Finagle
HOST A service. CONTAINER 10.224.15.2 service.cruft CONTAINER 10.224.15.1 LINKERD 10.102.32.198
10.224.15.3 HOST B service. CONTAINER 10.224.16.2 service.cruft CONTAINER 10.224.16.1 LINKERD 10.102.34.192 10.224.16.3 HOST C service. CONTAINER 10.224.17.2 service.cruft CONTAINER 10.224.17.1 LINKERD 10.102.36.187 10.224.17.3
HOST A service. CONTAINER 10.224.15.2 service.cruft CONTAINER 10.224.15.1 LINKERD 10.102.32.198
10.224.15.3 GET / HTTP/1.1 Host: service. HOST B service. CONTAINER 10.224.16.2 service.cruft CONTAINER 10.224.16.1 LINKERD 10.102.34.192 10.224.16.3 HOST C service. CONTAINER 10.224.17.2 service.cruft CONTAINER 10.224.17.1 LINKERD 10.102.36.187 10.224.17.3
HOST A service. CONTAINER 10.224.15.2 service.cruft CONTAINER 10.224.15.1 LINKERD 10.102.32.198
10.224.15.3 GET / HTTP/1.1 Host: service. HOST B service. CONTAINER 10.224.16.2 service.cruft CONTAINER 10.224.16.1 LINKERD 10.102.34.192 10.224.16.3 HOST C service. CONTAINER 10.224.17.2 service.cruft CONTAINER 10.224.17.1 LINKERD 10.102.36.187 10.224.17.3
HOST A service. CONTAINER 10.224.15.2 service.cruft CONTAINER 10.224.15.1 LINKERD 10.102.32.198
10.224.15.3 Host: service. → 10.224.17.3 GET / HTTP/1.1 Host: service. HOST B service. CONTAINER 10.224.16.2 service.cruft CONTAINER 10.224.16.1 LINKERD 10.102.34.192 10.224.16.3 HOST C service. CONTAINER 10.224.17.2 service.cruft CONTAINER 10.224.17.1 LINKERD 10.102.36.187 10.224.17.3 Host: service. → 10.224.17.2
HOST A service. CONTAINER 10.224.15.2 service.cruft CONTAINER 10.224.15.1 10.224.15.3 Host:
service. GET / HTTP/1.1 Host: service. HOST B service. CONTAINER 10.224.16.2 service.cruft CONTAINER 10.224.16.1 10.224.16.3 HOST n edge CONTAINER 10.224.18.2 service.cruft CONTAINER 10.224.18.1 LINKERD 10.102.36.110 10.224.18.3 HOST n edge CONTAINER 10.224.16.2 service.cruft CONTAINER 10.224.16.1 LINKERD 10.102.32.192 10.224.16.3 GET / HTTP/1.1 → service. ELB
AWS eu-west-1
AWS eu-west-1
None
Co-location uk-1 Co-location uk-2 AWS eu-west-1
Co-location uk-1 Co-location uk-2 AWS eu-west-1 ⚡
Co-location uk-1 Co-location uk-2 AWS eu-west-1 ⚡
Co-location uk-1 Co-location uk-2 AWS eu-west-1 BGP BGP BGP BGP
Co-location uk-1 Co-location uk-2 AWS eu-west-1 BGP BGP BGP BGP
⚡ ⚡
Co-location uk-1 Co-location uk-2 AWS eu-west-1 BGP BGP ⚡ ⚡
“Connectivity” Pod BGP IPSec BGP BGP StrongSwan (IPSec) GNU Zebra
(BGP) Hardware VPN device Services Services Services AWS Co-location Third parties
Extensible Efficient Resilient Secure
Device isolation Process isolation Data encryption Filesystem isolation Privilege isolation
Network isolation Resource isolation Principle of least privilege Log monitoring Secret management
Device isolation Process isolation Data encryption Filesystem isolation Privilege isolation
Network isolation Resource isolation Principle of least privilege Log monitoring Secret management
k8s-master Availability Zone A Availability Zone B Availability Zone C
admin user data k8s-worker dmz
k8s-master Availability Zone A Availability Zone B Availability Zone C
k8s-worker dmz
Calico + network policy
zone: super-secure
apiVersion: extensions/v1beta1 kind: NetworkPolicy metadata: name: super-secure-zone spec: podSelector: matchLabels:
zone: super-secure ingress: - from: - podSelector: matchLabels: zone: super-secure ports: - protocol: tcp
Extensible Efficient Resilient Secure
monzo.com/careers
Q&A .
@obeattie
More Decks by Oliver Beattie
See All by Oliver Beattie
Anatomy of a Production Kubernetes Outage – Kubecon EU 2018
obeattie
4
4.7k
DevOps Exchange London – Network Security at Monzo
obeattie
0
280
Building a Bank with Kubernetes – Kubernetes London Meetup, Autumn 2016
obeattie
10
47k
Other Decks in Technology
See All in Technology
ラクスル会社紹介資料|エンジニア向け / RAKSUL Introduction for Engineers
raksulrecruiting
0
110
Claude Codeで新規事業を伸ばせるか? Zennの試行錯誤の記録
wadayusuke
2
180
[NW-JAWS DAY]「うちのAWS、インターネット出られないんで」― AWS外の自社サービスをPrivateLinkでシュッと公開する方法
ykimi
2
400
「任されビリティ」で引き受けて「よしなりてぃ」に頼らず任せる / Accept tasks with "makasarebility" and hand them over without relying on "yoshinarily"
pauli
0
560
落とし穴にハマってわかった 開発生産性を測るときに気をつけたいこと
munakata
2
180
Agent Harnessはどう作る?事例から学ぶAI Agentの設計思想
sergicalsix
0
300
BALLAS Technology Deck
ballas_inc
0
620
内製アプリとClaudeスキルのセキュリティチェック、 Backlogの課題で回しています。
ayaka_egaaa
0
190
Frontier Teams — Amazon は AI で「開発のやり方」をどう変えたのか
kmotohas
0
260
Quick Automate | 目指せ Quick マスター 12
inariku
PRO
1
110
AWS基盤改善を支える 私たちの理念と行動指針
kentosuzuki
0
220
マネージャーをエスパーにしない マネジメントされる側から始める、働きやすい現場づくり
comi190327
0
420
Featured
See All Featured
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
800
Test your architecture with Archunit
thirion
2
2.5k
Claude Code のすすめ
schroneko
67
230k
Rails Girls Zürich Keynote
gr2m
96
14k
Technical Leadership for Architectural Decision Making
baasie
4
640
Documentation Writing (for coders)
carmenintech
77
5.6k
It's Worth the Effort
3n
188
29k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
610
Done Done
chrislema
187
17k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
610
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k