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. Image Description

#Cons

  1. Integrating different modules is error prone task as integration team communicates with developers to integrate each developers modules into a single unite.
  2. Defects are detected late.
  3. Any intermediate code merge can cause issues.
  4. If a developer brings up functional defect, it will stay there until the end of iteration which may take too long.
  5. Long Feedback cycle
  6. Long Iteration Image Description

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

  1. A single central repo where the code lives.
  2. Developers check-in/commit their code frequently.
  3. Build should be automated and fast.
  4. Build should compile the code as well as run automated.
  5. Fixing the failed build should be priority for developers.
  6. 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. Image Description


OLD School Operations Pain Points

  1. Correctness of Instructions.
  2. Difference of instruction across environments.
  3. Error prone nature of manual tasks.
  4. Deployments are sophisticated, high impact with downtime. {eg, if client wants to add a small feature, it will take too much time.}

Continuous Development

Image Description

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.