Skip to main content

Command Palette

Search for a command to run...

CI/CD: Continuous Integration and Continuous Delivery

Updated
β€’3 min read
CI/CD: Continuous Integration and Continuous Delivery
P

πŸ”Ή 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.

CI Workflow

πŸ™ 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.