Resources > Projects
Agile Deployments with Kubernetes
DELIVERABLES
A private cluster using Kubernetes to orchestrate Docker containers based on CI builds for project branches and internal infrastructure.
TECHNOLOGIES USED
-
Kubernetes
-
Traefik
Manually managing deployments to staging and development environments eats up developer and operations time, especially when it is repeated multiple times during a sprint. Automating as much of the operational workload as possible allows developers to iterate faster and get better feedback from stakeholders by demonstrating in-progress work quicker, without having to delay user acceptance testing until a batch of work is complete. By using Kubernetes to automate deployments of new features, we can expose new demos faster than ever and decide if a feature is coming together the way we expect.
TECHNICAL DEEP-DIVE
Cloud Computing: Where it Stands in 2018
READ NOW
The AndPlus Innovation Lab is where our passion projects take place. Here, we explore promising technologies, cultivate new skills, put novel theories to the test and more — all on our time (not yours).

OUR RESEARCH
When delivering an application, simply building the source code is only the first step in deploying it. The application must be packaged in a way that can be easily promoted to a live environment somewhere, such as AWS, Azure, or Google Cloud. However, we don't want to rack up charges for running test environments, and we don't want every team member to have access to the production environment. We also want to make it easy for in-progress work to be demonstrated to stakeholders without developers or operations members doing the same repetitive manual steps over and over again. Ideally, we want each feature of a web application to be instantly available on its own URL as soon as a developer pushes their changes.
DELIVERABLE
Containerization is the first step, but isn't enough on its own. We can package our applications as Docker images, but we still need to manage the deployment of those images to be run as container instances. This is where Kubernetes comes in. By declaring in configuration files how our services should be run, we can automate the deployment pipeline and ensure each branch of our webapp is published to our private cloud cluster. We use a reverse proxy called Traefik to dynamically configure routes for our apps based on the branch name (tied to a Jira ticket) and provision SSL certificates via LetsEncrypt so that clients have a secure sandbox to preview changes in.
HOW IT WAS DONE
- A private Kubernetes cluster was deployed on AndPlus's rack-mounted hardware using kubeadm to configure the cluster
- Network attached storage was provisioned to use for dynamically allocated volumes for persistent data
- Traefik was configured to monitor the Kubernetes cluster for newly-deployed services and automatically configure routes under andplusdev.com as well as provision certificates from LetsEncrypt
- A Bamboo pipeline was configured to automatically deploy services with modified configurations for each feature branch
GET IN TOUCH
LET’S BUILD SOMETHING AWESOME. TOGETHER.