Project Name

Network Maintenance - CI/CD Automation using Jenkins

Industry
Telecommunication
Technology
Ansible, Jenkins, Kubernetes, Gitlab, AWS/Xen

Overview

The client is one of the leading Broadband providers in the America region, and leverages the concept of Network Maintenance which plays a key role in helping cable operators identify any impairments in their cable plants. This technology is revolutionary in the industry and has proved to be a cost effective solution in terms of overall maintenance without compromising on the subscriber’s quality of experience.

network-maintenance-banner-sider

Challenges

Frame 74
  • In the context of the client, there were a lot of processes in the application deployment lifecycle which required manual efforts - right from packing and building the artifacts, to deploying them manually across the staging and production estates.
  • We thereby helped the client identify key areas of DevOps practices that include continuous deployment life cycle where there was a scope for automation, which would cut down tremendous manual efforts.
  • Following this discussion, the client wanted us to come up with a one stop solution for streamlining their entire software development/deployment lifecycle using automation.
  • They were typically looking for an automated approach for - packaging, integrating, containerizing their application along with a powerful container orchestration solution - that would help achieve better flexibility in terms of autoscaling, auto-healing in the event of failures, zero or very low downtimes - all this along with reasonable cost effectiveness.

Our Solution

We proposed the use of following open-source technologies:

  • Gitlab: as a tool to manage the source code - both for the development team and DevOps team.
  • Jenkins: To create and automate builds. The build pipeline essentially helped them achieve the following in an automated fashion.
    • Compile the source code.
    • Package the application using tools like Maven/Gradle and create artifacts.
    • Deploy these build artifacts (images) to the client’s private docker registry.
  • Docker: Running the application as an isolated container on any operating system specified by the client.
  • Ansible: Automate the application deployment process.

Continuous Integration (CI):

  • Source code Repository: Developers work on code and store it in a version control system, i.e Gitlab.
  • Build triggers: Whenever a developer commits code to the repository, Jenkins triggers the build process via a range of options like - Webhooks, SCM polling, scheduled builds, build post other builds, etc that the client chooses, thus providing more flexibility that caters to the actual use case of the client.
  • Build process: Jenkins fetches the latest code from the repository and compiles/builds it into an executable artifact. We also have an integrated plugin for Sonarqube that automates the code analysis.
  • Automated Tests: Jenkins runs automated tests (unit tests, integration tests, etc.) on the built artifact to ensure it meets quality standards.
  • Reporting: Test results and other metrics are generated and made available by QA teams for developers to review.

Continuous Deployment (CD):

  • Staging Environment: After the code passes all tests, it is deployed to a staging environment that closely resembles the production environment.
  • Additional Tests: In the staging environment, the QA team performs additional tests, such as sanity testing, unit testing, performance testing, user acceptance testing.
  • Manual Review: For a critical application, in some areas, a manual approval is required to ensure important changes are thoroughly reviewed before deployment to production.
  • Production Deployment: Once approved the code is deployed to the production environment.

Data Flow Diagram

network-maintenance-dfd

Conclusion

Thus we have leveraged a cutting edge DevOps tool like Jenkins to automate the builds for the client via a pipeline architecture and helped extensively cut down on manual efforts. This implementation of CI/CD automation also ensures a very less or Zero downtime deployment which is crucial for the client use case as the application requires high availability. This automation pipeline is usually a one time activity which continues to run the way it’s defined, until we make any customisations.

Streamline Your Business with Our
Data Streaming Solutions