Continuous Development and CI/CD
- 2 minsPurpose
CI and CD stand for continuous integration and continuous delivery/continuous deployment. In very simple terms, CI is a modern software development practice in which incremental code changes are made frequently and reliably.
Defining and driving the integration of developer solutions into the CI pipelines across products and services. This ensures that the rapid pace of innovation remains compatible so that customers can upgrade with confidence.
Background
Creating value through software is all about speed, iteration, and Continuous Improvement. CI/CD refers to the combined practices of continuous integration and either continuous delivery or continuous deployment. CI/CD bridges the gaps between development and operation activities and teams by enforcing automation in building, testing, and deploying applications. Modern apps DevOps practices involve continuous development, continuous testing, continuous integration, continuous deployment, and continuous monitoring of software applications throughout their development life cycle. The CI/CD practice or CI/CD pipeline forms the backbone of the modern apps DevOps development lifecycle. The CI Pipeline helps in uncovering defects immediately in integrations.
Solution
Provide a seamless self-service CI pipeline provisioning experience. Container Registry (e.g. Harbor) is used as a repo to store Application docker images/helm charts. Concourse (Open Source) is used for CI pipeline implementation for better maintainability and flexibility.
CI-Pipeline-aaS Solution must cover:
- Build, test, and deploy with CI that works with any cloud.
- Connect to GitHub or any other Git provider and deploy continuously.
- Integration with Container Registry & Repositories
- Testing Services: with different testbeds/sandboxes.
- Pipeline as a Code
- Infrastructure as a Code
- RESTful services as a plugin to CI Jobs.
- Integration with Cloud technologies (AWS, Azure, GCP)
- App packaging and dependency management frameworks
- Docker images for Validation or Integration Test Suite
Continuous Integration (CI)
Continuous Integration (CI) is the practice of building and testing the application on each update. By working in small increments, errors are detected earlier and promptly resolved.
Continuous Delivery (CD)
Continuous delivery is an approach where teams release quality products frequently and predictably from the source code repository to production in an automated fashion. Frequency can be multiple times per day
Automating Continuous Integration and Continuous Delivery (CI/CD) in a development environment should be the ultimate goal for DevOps teams.
Kubernetes
Kubernetes is a powerful container management tool that automates the deployment and management of containers.
True SaaS Services
Comparisons with Other Solutions
There are several similar solutions available, but each solution has its limitations
- Jenkins
- Concourse
- Tekton
- Gitlab
- GitHub Actions
- CircleCi
- Travis
Web Resources:
DISCLAIMER: All views expressed on this site are my own and do not represent the opinions of any entity whatsoever with which I have been, am now, or will be affiliated. Any collateral used is referenced in the Web Resources or others sections on this page. The information provided on this website does not constitute investment advice, financial advice, or trading advice.