From GitHub to Production
Automate everything
Who's that in front? O_o
Alexander Pinnecke // etventure.com
Frontend Software Engineer
Developer automation & operations
Loves music, plays drums
First day
Changed something
Wanna deploy
Where's the button?
No Button.
$ ssh fancy.server.fqdn
$ cd /into/fancy/dir
$ git pull
Project types
Doc Repos
Frontend Projects
Frontend Libs (npm)
Backend Projects
Requirements
git .repo:is(develop) push:after {
content: "Deployment running!";
ci-server: circle-ci;
kube-cluster: staging;
fanciness: visible;
}
Execute tests
Bump package.json version
Build CHANGELOG.md
Build Docker Container
Push Docker Container
Trigger Kubernetes
Rolling update
Push to slack
SSH
we have
GitHub
Circle.CI
Kubernetes
Google Cloud Platform
Docker
Slack
GitHub
Circle.CI
Kubernetes
Google Cloud Platform
Docker
Slack
Deployment Repo
Circle.yml files
Deploy scripts
Build scripts
Git Flow
brew install git-flow-avh
sudo apt-get install git-flow
image/svg+xml
Installing was hard.
Did not work by package manager
Installing via git wasn't working either
5h getting stuff fixed
kubernetes
Regarding this fancy rolling-update ...
We wanna see it in action!
And we wanna see some code!
What's next?
- Build Queue worker for kubeCtl rolling-update
- Add Monitoring for container and cluster
- Build Zazu Apps for Circle Status
- Build Zazu Apps for Kubernetes RC Status
- Build a status overview for all components
From GitHub to Production
Automate everything
http://apinnecke.github.io/deployment-talk/