Slide 1

Slide 1 text

Introducing in-house PaaS ɹ 2016/07/25 SRE Tech Talks ɹ Manager, Site Reliability Engineering Nobutoshi Ogata @nobu666

Slide 2

Slide 2 text

Self Introduc.on • Nobutoshi Ogata • Manager, Site Reliability Engineering • @nobu666 • ❤ Whiskey, Cat, Heavy Metal • Entrusted dev.(10y) ➡ GREE infrastructure devision(3y) ➡ Some startup(1y) ➡ SmartNews(2015/05-)

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

SmartNews

Slide 5

Slide 5 text

18M+ downloads worldwide

Slide 6

Slide 6 text

TV CM On Air now

Slide 7

Slide 7 text

Now on sale

Slide 8

Slide 8 text

Agenda • Structure of an organiza0on • About SRE • In-hourse PaaS ~ spaas • Introduc0on • Architecture • Future

Slide 9

Slide 9 text

Structure of an organiza/on

Slide 10

Slide 10 text

About SRE in SmartNews • Team members: 2 • @nobu666 / @takus • Task • Cross-sec7onal construc7on of the system of SmartNews • Produc7vity improvement • Ensure security Available at: [Accessed 25/Jul/2016]

Slide 11

Slide 11 text

Examples of our works • Improve server provisioning flow • Improve deployment flow • Construct data pla8orm • How SmartNews Built a Lambda Architecture on AWS to Analyze Customer Behavior and Recommend Content • Construct in-house PaaS

Slide 12

Slide 12 text

in-house PaaS "spaas"

Slide 13

Slide 13 text

spaas • SmartNews PaaS • or Sakamoto PaaS ! • ECS thin wrapper w/Terraform • A self-hosted PaaS for deploying docker-based applica@on • Goals • Easy to deploy • Easy to operate

Slide 14

Slide 14 text

Architecture • Load Balancing + Service Discovery • ELB + Nginx • Consul + Consul Template • Log Management • Fluentd + S3 • Lambda + Kinesis Streams + ElasCcsearch (+ Kibana)

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

Container Scheduling • Cluster • spaas-service • developer's applica3on • spaas-admin • administrator's applica3on(oauth-proxy etc) • consul

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

spaas-cli

Slide 19

Slide 19 text

Setup $ spaas-cli images:init --repository foo Created xxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/foo You can push your image like this: $(aws --region us-east-1 ecr get-login) docker build -t foo . docker tag foo xxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/foo:0.0.1 docker push xxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/foo:0.0.1

Slide 20

Slide 20 text

Create & config ### create service $ spaas-cli create --service foo --image xxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/foo --tag 0.0.1 --port 8080 ### if you need public http access (https://foo.smartnews.com) $ spaas-cli config:set --service foo SERVICE_TAGS=web ### if you need internal http access (http://foo.smartnews.internal) $ spaas-cli config:set --service foo SERVICE_TAGS=web-internal

Slide 21

Slide 21 text

Deployment & rollback $ docker tag foo xxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/foo:0.0.2 $ docker push xxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/foo:0.0.2 $ spaas-cli deploy --service foo 0.0.2 $ spaas-cli rollback --service foo

Slide 22

Slide 22 text

Canary deployment # create canary service $ spaas-cli create --service foo-canary --image xxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/foo --tag 0.0.2 --port 8080 $ spaas-cli config:set --service foo-canary YOUR_ENV=foo # register canary service as production service $ spaas-cli config:set --service foo-canary SERVICE_NAME=foo SERVICE_TAGS=web # deploy to production service $ spaas-cli deploy --service foo 0.0.2 # deregister canary $ spaas-cli services:destroy --service foo-canary

Slide 23

Slide 23 text

Future

Slide 24

Slide 24 text

• Support deployment pipeline • Like a spinnaker • Support priority of Task Definition • For maintenance / container scheduling • Support Terminate Hook • For completely log preserva;on • Support dedicated host mode • Support CDN integra;on

Slide 25

Slide 25 text

Talk more? • Join our free lunch in Tokyo office ! • Ask me later "

Slide 26

Slide 26 text

We're hiring! Only two people on Site Reliability Engineering Team ! • εϚχϡʔͷSite Reliability Engineerื ूʂ • h1p:/ /about.smartnews.com/en/ careers/

Slide 27

Slide 27 text

No content