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
Quipper on Containers
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kazuyuki Honda
September 21, 2016
Technology
1.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Quipper on Containers
2016/09/21 JAWS UG コンテナ支部 #6
Kazuyuki Honda
September 21, 2016
Transcript
65 slides
on Containers )
@hakobera DevOps Engineer
None
Mexico City London Tokyo Manila Jakarta Sales team only Sales
and dev team International Offices No one here (yet).
Products
Container != Docker
Docker is one of the container impls. Ubuntu LXD Microsoft®
Windows® Server Container Hyper-V® Container
When do you use container on your system?
Now!
Why do you use container?
Portability and Beyond Your Cloud Limits
Docker on Elastic Beanstalk • For short batch using worker
tier • Avoid darkness of .ebextension • Avoid Amazon Linux ◦ We want to use Ubuntu
Load Test on Elastic Container Service • Easy to setup
locust cluster ◦ Consists of 2 Tasks ▪ 1 master ▪ Multiple slave ◦ Manage instances using Spot Fleet ▪ Cheap but scalable
nginx-build on CircleCI • Easy to build custom nginx build
◦ Bundle custom modules such as ngx_mruby ◦ Patch for security issue ▪ Update only openssl but not nginx
Ansible playbook test on CircleCI • Run playbook to clean
environment • Run playboot test in parallel
Do you also use container for Web application?
Yes! But it’s not so easy
History of Quipper and Container
Quipper is Container Native Company
Quipper use container from beginning
Back to 2012 First Product First Container is ...
None
It’s too early
No source repository Only CTO only knows
From 2013 Second Container Choice is ...
None
Heroku is great!
Awesome features of Heroku • Deploy via git • Buildpack
• Multiple Dyno Size • One-off dyno • Review Apps
At April, 2015 We are acquired by Recruit Co. Ltd
What problem do we have to resolve? • Performance ◦
Latency from Japan and USA (400ms/req) ◦ Needed more powerful dyno • Security ◦ At least we need fixed outbound IP address • Cost
We want to keep awesome features • Deploy using git
from CircleCI • Buildpack • Multiple Dyno Size • One-off dyno • CLI compatibility
None
Your PaaS, Your Rules Open Source Application Platform
Similarity to Heroku • Deploy via git • Buildpack •
CLI sub command ◦ Ex: heroku conifg:set <-> deis config:set • Interactive console not yet supported ◦ Create own tool using Docker API
Similarity to Heroku is important Because we’re deploying one source
Source: http://docs.deis.io/en/latest/understanding_deis/architecture/
None
None
None
Components of PaaS for Web app • Router • Controller
• Slug Builder • Container Registry • Object Storage • Scheduler • Key Value Store • Database • Git Repository • Logger
Where is the best place to deploy each component?
Late 2015
Elastic Load Balancing Router Controller Builder Applications etcd AZ #1
AZ #2 Production Cluster 1st Gen. PosggreSQL On Amazon RDS Docker Registry On Amazon S3
Hard to Scale Out
April 2016
Elastic Load Balancing Router/Applications AZ #1 AZ #2 Controller /Builder
etcd Production Cluster 2nd Gen. PosggreSQL On Amazon RDS Docker Registry On Amazon S3
Noisy Neighbor AND Cost Increase
Fleet is too simple • Fleet is not resource aware
scheduler • Fleet deploy new container in instance which has the least containers • Sometimes make it unbalanced workload of clusters
Bad scheduling of fleet High High Normal Low Low Low
Instance 1 Instance 2 Instance 3
We hope resource aware scheduling High High Normal Low Low
Instance 1 Instance 2 Instance 3 Low
Aug 2016 〜
Elastic Load Balancing Router/Apps (Shared) AZ #1 AZ #2 Controller
/Builder High-Load Apps (Dedicated) etcd Production Cluster 3rd Gen PosggreSQL On Amazon RDS Docker Registry On Amazon S3
Tag based Deployment High HighI Normal Low Low Low high=false
high=true
Tag based Deployment • Tag = Fleet metadata • Set
fleet metadata by cloud-init #cloud-config Coreos: ... fleet: public-ip: $private_ipv4 metadata: dataPlane=true,high=true #cloud-config Coreos: ... fleet: public-ip: $private_ipv4 metadata: dataPlane=true,routerMesh=true,high=false For dedicated For shared
Elastic Load Balancing Router AZ #1 AZ #2 Controller /Builder
Applications etcd Staging Cluster PosggreSQL On Amazon RDS Docker Registry On Amazon S3
Other Awesome Features
Blue Green Deployment 1. Start new containers 2. Notify to
etcd 3. Update nginx.conf by confd 4. Reload router (nginx) 5. Update routing 6. Destroy old containers
Use nginx as reverse proxy for PaaS • Easy to
handle naked domain • Resolve slow client issue • Can support HTTP/2 • Flexible routing ◦ A/B test, 10% release, etc ...
Problem as of now
Fleet is too simple (again) • Fleet is not resource
aware scheduler • Fleet deploy new container in instance which has the least containers • Sometimes make it unbalanced workload of clusters
etcd stability • etcd sometimes get high CPU load
In the future ...
Deis Workflow (Deis v2) • https://github.com/deis/workflow • Based on Kubernates
End
We’re hiring! https://www.quipper.com/career/Japan/ https://www.wantedly.com/companies/quipper
More Decks by Kazuyuki Honda
See All by Kazuyuki Honda
How to Write Complex Data Pipeline in Ruby
hakobera
2
5.2k
はじめての BQ GAS
hakobera
10
3.8k
MQTT.IO
hakobera
9
1.8k
Logging Technique for HTML5 Single Page Application with Fluentd
hakobera
11
11k
Other Decks in Technology
See All in Technology
会社説明資料_最新版
demaecan
0
32k
SSFの現在地 ― CAEP/RISCからAI Identityへ
oidfj
0
440
Kiro CLI 入門 (ターミナルと CI で使う) | 目指せ Kiro マスター 03
inariku
PRO
2
150
Sonnetだけで業務はまわる?
kintotechdev
1
130
閉域網でのAPI公開の選択肢全部比較!
takano0131
2
240
81天的 AI Agent 軟體開發團隊治理實務分享
regionbbs
0
170
2026-11-11 Tamachi.sre#7 PaCにインフラリソースの命を救われました。 / PaC saves the infra resource life
masasuzu
1
180
Agent Harnessはどう作る?事例から学ぶAI Agentの設計思想
sergicalsix
0
320
おうち環境でも「なるべく止めたくない!」 ― おうち環境の機器冗長化の理想と現実
yuutosi
1
410
AI時代の組織作り:チーム開発から「個人×AI」への移行と、持続可能な「開発資本」の築き方
ham0215
3
840
ぼくのClaude Codeの使い方
falken
PRO
5
7.1k
AWS基盤改善を支える 私たちの理念と行動指針
kentosuzuki
0
230
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
3.2k
The Cost Of JavaScript in 2023
addyosmani
56
10k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
350
A Modern Web Designer's Workflow
chriscoyier
699
190k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.9k
GraphQLとの向き合い方2022年版
quramy
50
15k
So, you think you're a good person
axbom
PRO
2
2.3k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
330
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
660
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Designing for Timeless Needs
cassininazir
1
560
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
43k