I have an app and I need to put it somewhere. So what are my options ? A better question would be what are my requirements.
- Deploy when I commit code to the master branch.
- Notify me along the way so i know where my code is even when i’m away from my computer
- Zero management, total automation.
Tech for this experiment is:
- Github – for the code and management of branches
- Travis CI – for build and testing of the code + deployment
- Docker – to store the docker images to be deployed
- Kubenetes – to define a deployment architecture.
- Kops – Helper to deploy production grade environment.
- AWS – to host the architecture.
- Slack – for notifications from all of the above so we know what is happening when.
So in the infrastructure we want is the following (stolen from Kris Nova ) :
Our application can then be deployed on this infrastructure from Travis as and when we push code to Github.
DNS was a bit of a headache but after letting AWS Route 53 host my domain things became much easier. In addition to the default kops build of the K8s environment also added:
- External DNS