DEV Community

loading...
Cover image for CI/CD: continually delivering better codes

CI/CD: continually delivering better codes

Hafiz Jaafar
A Java developer. Previous stints in computer vision and robotics. Then I threw away my humanity like Dio Brando did and joined financial services. Used to code in C++, Python, and C#.
・1 min read

At the time of writing this post, I am still not done reading this special edition of 'Entwickler Magazin', featuring my favorite topic: CI/CD (continuous integration / continuous deployment).

These are the points from that magazine that I noted for myself.

DevOps models:

  1. One-team model: the Ops team is a subset, a part of Dev team
  2. Collaboration model: DevOps is achieved in the collaboration betwen Dev team and Ops Team.
  3. IAAS-model: infrastructure as a service.

CI/CD:

  1. Tools:

    • Jenkins
    • Harness
    • GitLab
    • GitHub
    • Atlassian Bamboo
  2. CI tools: are to enable code components run together.

  3. CD tools: are for automated tests and deployment.

Requirements for CD in an enterprise:

Abstract: CI != CD

  1. Continuous integration: automated tests and analysis.
  2. Continuous delivery: delivery pipelines
    • scripted
    • versioned
    • reproducable
  3. Feature toggles
  4. Zero downtime
  5. Blue Green Deployment:
    • 2 complete Production environments
  6. Canary Development
  7. Secrets management, e.g. Vault:
    • query via API - no clear/plain text leaves the vault.
  8. Security and compliance - especially for containerized microservices:
    • container security
    • interservice communication

// To be continued.

Discussion (0)