CI/CD: Continuous Integration and Continuous Delivery

πΉ About Me I am an Engineer with 2+ years of experience in Software,python automation,linux server and Networking at Tata Communications. Currently, I am transitioning my career into DevOps and Site Reliability Engineering (SRE) with hands-on knowledge of Docker, Ansible, Jenkins, Git, CI/CD pipelines, and AWS Cloud. Key contributions include automating data gathering using Python (Selenium), developing and maintaining web portals with Django and PHP, and managing Linux server environments (Red Hat Enterprise Linux 8.7). My networking expertise spans complex troubleshooting and configuration of routers and switches (Juniper, Cisco, Huawei), with hands-on experience in routing protocols (OSPF, BGP), VLANs, MPLS, VPN, and SD-WAN technologies. I am passionate about automation, cloud infrastructure, and reliability engineering, and I am actively seeking DevOps / Site Reliability Engineer opportunities where I can contribute, learn, and grow. π Skills: AWS | Docker | Ansible | Jenkins | Git | CI/CD | Linux | Python | Networking | Fortinet | π Certifications: CCNA Cisco Fortinet Firewall NSE4 AWS Cloud Practitioner Certification Devops skillsup from GFG
π Continuous integration (CI) and Continuous delivery (CD) are two software development practices that work together to improve the quality and speed of software delivery. CI involves automating the build, test, and deployment of code changes, while CD ensures that those changes can be deployed to production at any time.
CI/CD is a critical part of DevOps, a culture and set of practices that aims to improve the speed, agility, and quality of software development. By automating the build, test, and deployment process, CI/CD can help teams to:
β‘ Reduce the time it takes to release new features.
β‘ Improve the quality of software by catching bugs early.
β‘ Increase the reliability of software by deploying changes more frequently.
β‘ Reduce the cost of software development.
πͺ How CI/CD works
CI/CD works by automating the following steps:
1. Code is checked into a version control system (VCS).
2. A CI server is triggered to build the code.
3. The build is tested.
4. The build is deployed to a staging environment.
5. The deployment is tested.
6. If the deployment is successful, the code is deployed to production.

π What is CI/CD Pipelines?
CI/CD pipeline is a process of taking your code from development to production environment automatically and smoothly.
1. Source Stage
Riya is a developer who writes code using any IDEs like VSCode or Pycharm. After writing the complete code she pushes that code to shared repository(like Github,Gitlab). The Github stores everything like Code, test scripts, documentation and even build files.
2. Build Stage
Once the code is pushed,a CI tool like Github Actions or Jenkins is triggered automatically. The pipeline pulls the code, install all the dependencies, compiles the code and packages it.
3. Test Stage
After the build is ready, a series of automated tests are run:
Unit tests to check small pieces of code
Integration tests to check how components work together
Static code analysis by using Synk or SonarQube for security issues.
User Acceptance Tests (UAT) by using tools like Selenium to validate functionality.
If all tests pass, the pipeline continues.
If any tests fails, the pipeline will stop working and report the issue. The test reports are integrated into Github Actions or Jenkins.
4. Deployment Stage
If tests pass, the pipeline deploys the app:
First, it is deployed to a staging server for final checks.
After approval, it automatically goes to production server where users can use it.
For example:
The app is packaged into a Docker image and stored in Docker Hub
Then itβs deployed using Ansible, which sets up the server and runs the app
With this CI/CD pipeline:
Every time Riya pushes code, the app is automatically built, tested, and deployed.
Teams catch bugs early, reduce manual work, and release features faster with more confidence.
β Challenges of CI/CD
There are a number of challenges that can be associated with CI/CD, including:
π Complexity. CI/CD can be a complex process to implement, especially for large teams or organizations.
π Cost. CI/CD can be a costly process to implement, especially if teams need to purchase new tools or services.
π Resistance to change. Some teams may be resistant to change, and may find it difficult to adopt CI/CD practices.
π Conclusion
CI/CD is a powerful tool that can help software development teams to improve the quality, speed, and reliability of their software. However, it is important to be aware of the challenges involved in implementing CI/CD before starting. With careful planning and execution, CI/CD can help teams to achieve significant benefits.

