CI/CD for Containerized Services using Helm and AWS EKS

Many of BlueChipTek’s customers are exploring Kubernetes and containers to modernize their application stacks. One question that comes up a lot is: “What should the pipeline look like to deploy applications when using containers?” To answer that question, we are proud to release our white paper on CI/CD for Containerized Services. In this blog post, Joe Keegan, BlueChipTek’s Lead Cloud Services Architect, will provide a quick overview the white paper. A link to the whitepaper can be found at the end of this post.

Reference Architecture and Technology Stack

In the white paper, we included a reference architecture for the Pipeline. This reference architecture includes four main components powered by the following technologies:

  • GitHub for a source code repository, chosen since a vast majority of our customers are leveraging GitHub.
  • AWS CI/CD tools (AWS CodeBuild and AWS CodePipeline), chosen since these services provide low cost CI/CD capabilities highly aligned with AWS services.
  • Helm Kubernetes Package Manager, chosen since Helm has been adopted by the CNCF as a top-level project and seems to be becoming the de facto package manager for Kubernetes.
  • AWS Elastic Container Service for Kubernetes (EKS), chosen as EKS provides AWS customers a managed Kubernetes experience handling many of the complicated aspects of running and managing a Kubernetes cluster.


While the reference architecture focuses on these technologies for the main components, it can be easily adapted to use other technology choices.

 

CI/CD Process

An equally important part of the white paper is to define and document the CI and CD processes themselves.

In the white paper, we use the following definitions for CI and CD:

  • Continuous Integration is the practice of automatically testing and validating code changes as they are committed to a shared repository.
  • Continuous Delivery is the practice of being able to push code changes into production in a fast, safe and sustainable way.

With these definitions in mind we define a CI processes, shown below, which is ran every time a commit is pushed to the GitHub repo.


The CD process, as shown below, is run for every release of the service. The CD process encompasses the CI process and includes extra steps to deploy and test the service.

Making It Happen

Designing and Building a robust CI/CD pipeline is a large undertaking. While we hope this white paper will help you tackle that endeavor, we would love to discuss your specific CI/CD needs and help build a pipeline that fits those needs.

Check out the CI/CD for Containerized Services whitepaper by reaching out to our team. You can also reach out to BlueChipTek's Cloud Services Team to schedule a free meeting to discuss how we can help make this a reality for you.