Developer @Grofers • Loves to make cool things ranging from hardware to infra. • Blog: nancychauhan.in • Speaks her mind at @_nancychauhan(Twitter Handle)
Native mean? The Linux Foundation offers the following definition: “Cloud native computing uses an open-source software stack to deploy applications as microservices, packaging each part into its own container and dynamically orchestrating those containers to optimize resource utilization.”
of containerization, both build and deployment stages in CI/CD pipelines continue to be containerized. It has led to the rise and development of various CI and CD tools for the Cloud-Native landscape.
for managing containers • Better use of resources – Scaling up and down while demand – Serverless models mean you only pay for compute you need • Standardisation
While running CI/CD pipelines in Kubernetes, some of the challenges we are going to face are: 1. Images instead of binaries 2. Clusters: Many environments 3. Microservices instead of monoliths (Managing dependencies between all services is going to be challenging) 4. Ephemeral environments.
a solution to these challenges in the form of cloud-native CI/CD tools. Some of the tools listed in the cloud-native landscape are Spinnaker, Argo CD, Tekton, and Jenkins X. Let’s take a deep dive into Tekton now!
with composable, declarative, reproducible, and Cloud-Native tools to easily build the pipelines. Tekton adds a few CRDs and custom resources to your Kubernetes cluster which can be used to make CI/CD pipelines.
• Portability • Decoupled – Run pipeline with your own resources – Run a piece of pipeline ( task ) on their own • Tekton pipelines is implemented as K8s CRDs
for Jenkins/Gitlab ETC • Tekton needs PipelineRun and TaskRun to execute • Tekton Events is a separate project that runs pipelines on events • Events can be webhooks, Github code push etc. • Event listeners receive webhooks and match against trigger binding. • Trigger bindings populate a pipelinerun using trigger templates
is cloud-native, runs on an existing Kubernetes cluster. 2. Tekton provides an out-of-the-box solution for monitoring. 3. Easy to build pipeline using reusable tasks and steps.
out-of-the-box support for authentication. 2. Pipeline configuration is stored separately from code. To change the pipeline configuration, developers need to apply Kubernetes manifests manually.