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/