CI/CD Pipeline and Devops Introduction
Table of Contents
OLD SDLC⌗
{Development Team}⌗
Developer 1 –> Developer 2 –> > Build & Integration Team -> Ensures Code Compiles -> Package Developer 3 –>
Operations Team⌗
Package is given with instructions to operations team
The Operations team deploys the app and then testers test.
#Cons
- Integrating different modules is error prone task as integration team communicates with developers to integrate each developers modules into a single unite.
- Defects are detected late.
- Any intermediate code merge can cause issues.
- If a developer brings up functional defect, it will stay there until the end of iteration which may take too long.
- Long Feedback cycle
- Long Iteration
Continuous Integration⌗
Continuous integration is a development practice that requires developers to integrate code into a shared repo several times a day.
Cardinal Principles of Continuous Integration⌗
- A single central repo where the code lives.
- Developers check-in/commit their code frequently.
- Build should be automated and fast.
- Build should compile the code as well as run automated.
- Fixing the failed build should be priority for developers.
- Build results should always be communicated to all developers.
Difference Between Old School Integration and CI⌗
Integration is painful and effort consuming.
Integration is automated and quick.
Fixing Issues at the end of interations
Issues show up early, because of frequent integration.
Merge issues can hold up teams
Broken builds are fixed with immediate priority by developers.
Long feedback cycle for functional defects
Shorter feedback- developer is notified immediately.
Long Interation
Shorter iterations. Faster time to market.
Pipeline⌗
CI (Continuous Integration) pipeline means where developers frequently merge code changes into a central repository, allowing early detection of issues.
CD refers to continuous deployment or continuous delivery, which automates the application’s release to its intended environment, ensuring that it is readily available to users.
OLD School Operations Pain Points⌗
- Correctness of Instructions.
- Difference of instruction across environments.
- Error prone nature of manual tasks.
- Deployments are sophisticated, high impact with downtime. {eg, if client wants to add a small feature, it will take too much time.}
Continuous Development⌗
What is DevOps?⌗
DevOps combines development (Dev) and operations (Ops) to increase the efficiency, speed, and security of software development and delivery compared to traditional processes.
Why we need DevOps?⌗
DevOps is needed because it helps organizations to deliver software faster, more reliably, and with greater quality by uniting development and operations teams.