35
STUPS A Cloud Infrastructure for Autonomous Teams [email protected] / @try_except_ AWS Ireland Meet Up #9

STUPS by Zalando @ AWS User Group Ireland Meet Up September 2015

Embed Size (px)

Citation preview

STUPSA Cloud Infrastructure for Autonomous [email protected] / @try_except_AWS Ireland Meet Up #9

Henning Jacobs

● STUPS Hacker

● Twitter: @try_except_

[email protected]

15 countries3 fulfillment centers15+ million active customers2.2+ billion € revenue 2014130+ million visits per month8.000+ employees

ONE OF EUROPE’S LARGEST ONLINE FASHION RETAILERS

A BRIEF HISTORY OF ZALANDOTECHNOLOGY

RADICAL AGILITY

Autonomy

Compliance Innovation

AWS

STUPS

DOCKERDEPLOY

SSH ACCESS

AUDIT REPORTS

FULL AWS ACCESS

STUPS: A PLATFORM ON TOP OF AMAZON WEB SERVICES

Internet

*.abc.example.org *.xyz.example.org

Team ABC Team XYZ

ISOLATED AWS ACCOUNTS

EC2EC2

ELBELB

EC2

DEPLOYMENT

IMMUTABLE STACKS

ELB myapp-1

myapp.example.org

EC2+ Docker

EC2+ Docker

EC2+ Docker

IMMUTABLE STACKS

ELB myapp-1

EC2+ Docker

EC2+ Docker

EC2+ Docker

ELB myapp-2

EC2+ Docker

EC2+ Docker

myapp.example.org

AWS

DEPLOYMENT WITH SENZA

Senza CLI

Pier One

docker pull

docker push

Taupage

https://asciinema.org/a/25668

DEPLOYMENT

SENZA: DEFINITION YAML

SenzaInfo:

StackName: hello-world

Parameters:

- ImageVersion:

Description: "Docker image version of Hello World."

SenzaComponents:

- Configuration:

Type: Senza::StupsAutoConfiguration # auto-detect network setup

- AppServer: # will create a launch configuration and ASG with scaling triggers

Type: Senza::TaupageAutoScalingGroup

InstanceType: t2.micro

SecurityGroups: [app-hello-world]

ElasticLoadBalancer: AppLoadBalancer

TaupageConfig:

runtime: Docker

source: "stups/hello-world:{{Arguments.ImageVersion}}"

ports:

8080: 8080

SENZA: STACK DEPLOYMENT

$ senza create hello-world.yaml 1 0.2

Generating Cloud Formation template.. OK

Creating Cloud Formation stack hello-world-1.. OK

$ senza events hello-world.yaml 1Stack Name│Ver.│Resource Type │Resource ID │Status │Status Reason │Event Time

hello-world 1 CloudFormation::Stack hello-world-1 CREATE_IN_PROGRESS User Initiated 10m ago

...

hello-world 1 CloudFormation::Stack hello-world-1 CREATE_COMPLETE 6m ago

SENZA: MANAGE STACKS

LOGGING

SSH ACCESS

https://asciinema.org/a/25671

SSH ACCESS

SSH ACCESS: TIME-LIMITED ACCESS TO ANY TEAM SERVER

MONITORING

TODO: Screenshot

ZMON

ZMON APPLIANCE

*.foo.example.org *.bar.example.org

Team “Foo” Team “Bar”

EC2Instance

EC2InstanceEC2

InstanceEC2

Instance

ZMON Appliance

ZMON Appliance

KairosDB

EC2Instance

EC2Instance

ZMONController

ELB ELB

● Immutable AMI● YAML user data● Docker runtime● Application logging:

LogEntries, Scalyr, CloudWatch Logs

● KMS encrypted env vars

TAUPAGE AMI

● 800+ in Zalando Tech

● 90+ AWS Accounts

● 160+ Applications

SOME NUMBERS..

● Taupage AMI with Docker runtime

● Senza to manage Cloud Formation

● Pier One Docker Registry with S3

http://docs.stups.io/en/latest/user-guide/standalone-deployment.html

WHAT YOU MIGHT FIND VALUABLE..

Questions?STUPS Frontpagestups.ioGitHub Repositoriesgithub.com/zalando-stups

tech.zalando.com@try_except_

BACKUP

Docker Registry

build

approved

EC2 Instance

Docker Container

Ticket System

Application Registry

SCM

Docker ImageTicket

Commit

TRACEABILITY

Application Version

STUPS COMPONENTS