It’s the most essential feature of any DevOps pipeline for building and releasing software to the customer in a highly ordered, efficient, and automated way using dozens of tools, processes, strategies, methodologies, and technologies. Without a CI/CD pipeline, a software development & delivery is virtually impossible in the 21st century.
STEPS IN TRADITIONAL CI/CD PIPELINE
- Code push to source code management.
- Static code analysis.
- Unit, integration, quality assurance, or other types of testing.
- Vulnerability & dependency management.
- Security & threat mitigation.
- Compliance and legal constraints management.
- Application libraries, dependencies, binaries, and dependencies linkage.
- Creation of artifacts and packaging those artifacts.
- Pushing artifacts to an artifact repository.
- Software is configured to be released.
- Software is versioned for a future release.
- Configurations of servers, environments, machines, virtual systems, and containers.
- Deployment of those packages to different environments.
- Observations and monitoring of those packages.
WHAT SHOULD A CI/CD TOOL OFFER
- Help in creating continuous integration builds
- Support of hundreds of technologies and tools
- Support of hundreds of programming languages and frameworks
- Help in creating automation tasks
- Work as an end to end software delivery pipeline
- CI/CD integrates full end to end DevOps phase
- Integrates code push, build, test, packaging, and deployment phases or tools
- Also works with other collaboration tools for updates such as Slack, Email
- Your git, build, test, environments are all integrated with CI/CD tools.
- In fullest it can automate thousands of tasks on thousands of tools but is mostly used for only automating CI/CD phase
PROCESS OR METHODOLOGIES WITHIN CI/CD
- Development Process
- Git Branching Strategy
- Source Code Analysis Process
- Unit, Integration & Acceptance Testing
- Quality Assurance Process
- Configuration Management
- Automated Deployment Strategy
- Container Registry Management
- Version Strategies
- Dependency Management
- Service Integration Process
- Security, Threat Mitigation
- Infrastructure Management
- Observability Strategies
- Monitoring Process
- Application Package Management
- Software Validation Strategy
- Non-Functional Testing Strategies
- Deployment Platform Management
- Other DevOps Tools & Technologies
FINAL THOUGHTS
Some tools and platforms deal with specific phases of DevOps, such as continuous integration or continuous delivery. Some handle development, others integration phase. Some tools such as automation, configuration, and release platforms deal with continuous delivery. Similarly, different types of continuous testing are also utilized during different phases and deployments to different environments.