CI/CD Cloud Native Application DevOps Architecture

Abhinav korpal
Airtel Digital
Published in
3 min readJan 9, 2023

Introduction

In Airtel, we implemented many monolithic applications that turned to microservices to cloud-native orchestrated engines where every day 400–500 pods are getting created or destroyed in which we have stateful and stateless deployments. This is a huge system getting used in Airtel Billing, Airtel Payments, or Airtel Dunning Systems.

Background

The agenda/concept of this document has been directly involved/used in the deployment of containerization software products making container orchestration easier on the Airtel Private Cloud.

Who Should Read this Document

CI/CD DevOps Engineer using containerization software products running on private cloud, TechOps Engineer, or SRE Engineer who deploys or manages orchestrated engines.

Design

Cloud Native Principles

We follow Agile practices with CI/CD that aligns Development and Operations Team, to deliver business features from code check-in to production deployments.

Enable application development teams to deliver code movement frequently and by following typical ways of testing including unit tests, integration tests, QA Automation, and chaos engineering to identify system detect failure modes.

Deployment Patterns

We have divided Deployment Patterns into 2 parts — Upstream, Downstream.

Upstream — All build-specific procedures like repository clone, build artifacts, unit/integration test cases execution, docker image creation, and pushing docker images following Agile hierarchy comes under Upstream Pattern.

Downstream — Security Scanning (SAST/SCA), SonarQube Quality Gates, Unit/Integration Test Results, code vulnerabilities analysis.All these results generated under this Pattern are compared and stored for data/results storage purposes.

Upstream Pipelines

All application-related CI/CD Pipelines are placed under this. This is focused on fast integration and Deployment for Microservices which is specifically highlighted for the build and deploy process.

Whether it is lower-level environment deployments or Production Deployments, developer assignee Jira Feature Ticket should be mandatory approved by QA Team and Application Lead to proceed forward.

Also, gives huge flexibility to Development Team and QA Team as its major focus is only on the service gets deployed as early as possible and the dependent services on that gets available as soon as possible so they can continue with their own test work.

Downstream Pipelines

All DevOps Tools integrated into CI/CD Pipelines come under Downstream Principle. Many of these tools are running as shared libraries so that they can be commonly used for all applications.

These tools or stages under Downstream do not impact Upstream Pipelines as they are not dependent on each other. Its central concern is to check the readiness, and application security check of artifacts, docker images security scanning, and sonar code quality gates send those records in ELK while the upstream focus is only on build and deployment procedures.

Integrated QA Automation Pipelines

Although this worked back then, invoked automation framework experiments to run concurrently, run test cases, and inject faults.

Infrastructure Design

We have multiple clusters and nodes running in multiple regions of Airtel DC which receive traffic using Global Traffic Management. If one service crashes, another service can take charge immediately without affecting online services.

Logical Design Patterns

We are using:

  • Jenkins Master Slave Architecture.
  • Jenkins Groovy Shared Libraries for CI/CD Deployment.
  • RedHat OpenShift as Orchestration Platform.
  • One-Time Integrated Shared Library Pipelines for application security scanning analysis.
  • One-Time Integrated Shared Library Pipelines to record unit tests, integration test result sends those records in ELK.

The Team Building Great Things Together

We focused on expanding our use case footprint. This wouldn’t be possible without hard work and great contributions from the team to build impactful systems that help our business forward, bringing DevOps Engineering solutions.

Special Thanks to the members of various teams: Nathan Phipps and Anubhav Yadav

Author of this whole implementation and DevOps Practices/System Design For DevOps: Abhinav korpal

Special Thanks and credits should go to stunning colleagues for direct collaboration: Gaurav Walecha, Praveen, Anshika Mishra, Arzaw Tiwari

--

--