sbg infrastructure tools

25
The DevOps MeetUp Seven Bridges Infrastructure Tools Ivan Vandot SevenBridges.com

Upload: ivan-vandot

Post on 08-Jan-2017

160 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: SBG Infrastructure Tools

The DevOps MeetUp

Seven Bridges InfrastructureTools

Ivan Vandot

SevenBridges.com

Page 2: SBG Infrastructure Tools

The way backWe had one production environment with multiple serversOne beta server with all components with versions matchingcurrent production as a hot�x environmentOne beta server clone for next release, we can call it “staging”One integrations server that never worked

Page 3: SBG Infrastructure Tools

The way backTen production componentsCon�gurations for all services were kept in Git repo in separatedirectories for di�erent environments and componentsCon�gurations were changed manually and merged from onerelease to another

Page 4: SBG Infrastructure Tools

The way backBunraku was on worker instances and Skynet system utilizedBunraku on static server infrastructureNobody knew how to manually con�gure and bring up newenvironment, whether it is a production, development or betaWe knew all build dependencies for all components, but not theruntime

Page 5: SBG Infrastructure Tools

Vayu -> Context -> Minion

Page 6: SBG Infrastructure Tools

ContextWritten in DjangoIt has almost complete APICreated with security in mind

Page 7: SBG Infrastructure Tools

ContextCan clone and merge con�gurations from one environment toanotherCon�gurations are versionedGlobals feature

Page 8: SBG Infrastructure Tools

Context

Page 9: SBG Infrastructure Tools

MinionFirst it was written in PythonMinion was created on the principles of SkynetLater rewritten in Go

Page 10: SBG Infrastructure Tools

MinionGo minion has CLI client called mnn also written in GoIt has JSON based con�guration �les with possibility ofcon�guration inheritance

Page 11: SBG Infrastructure Tools

Minion JSON configuration

{ "=": [ "_component", "_config", "_host" ], "check-url": "https://{{fqdn}}:{{port}}/status", "port": "8889", "start": [ { "#": "start the service", "=": "cmd", "args": [ "start" ], "dir": "/data/app/{{name}}", "env": [ "JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre", "LANG=en_US.UTF-8" ], "exec": "bin/{{name}}-server.sh"

Page 12: SBG Infrastructure Tools

MinionMinion provided us uniformity in managing our servicesRuler and goruler

Page 13: SBG Infrastructure Tools

VayuWritten in DjangoVayu service is keeping the data of all development environmentsand provides web-interface for creating and updating themMinion and Context emerged as a need for Vayu, not as servicesthat were planned

Page 14: SBG Infrastructure Tools

VayuMany things were left to be part of Amazon AMIVayu web interface has not changed much, neither thefunctionality

Page 15: SBG Infrastructure Tools

Vayu

Page 16: SBG Infrastructure Tools

Vayu StateVayu state was added to Vayu

Page 17: SBG Infrastructure Tools

Current State

Multiple production environments, eachwith its own staging environment, more

than 100 vayus

Page 18: SBG Infrastructure Tools

How can something ofinfrastructure move into

production and contribute tothe product

Page 19: SBG Infrastructure Tools

Bunraku muerto

Page 20: SBG Infrastructure Tools

Emerging from infrastructure -Minion

Page 21: SBG Infrastructure Tools

Minit - Minion Initialization

Page 22: SBG Infrastructure Tools

Clockwork

Houston we have a problem!

Page 23: SBG Infrastructure Tools

Clockwork

Page 24: SBG Infrastructure Tools

Houston

Page 25: SBG Infrastructure Tools

Q&A