About CI/CD
Determine which Continuous Integration and Continuous Deployment (CI/CD) architecture best fits your business needs.
CI/CD aims to build software components and bring them together to ensure that they function and interoperate efficiently with other building blocks. The CI/CD process ensures compliance with required standards, deployment to an environment with either automated or manual decisions, and is fully traceable.
The CI/CD process must be repeatable and consistent. You can visualize the CI/CD process as a manufacturing or delivery pipeline where code passes through the same series of stages every time you build it.
Review Architectures and Solutions that Meet Your Needs
Review these related solutions:
- Create a CI/CD pipeline for mobile apps
- Create a CI/CD pipeline for bots custom components
- Plan Modern App Deployment strategies with Oracle Cloud Infrastructure Devops
Review these related reference architectures:
- Set up a CI/CD pipeline for cloud deployments with Jenkins
- Deploy GitLab to enable CI/CD pipelines on OCI
- Build a CICD pipeline using Oracle Cloud Infrastructure DevOps service and OCI Functions
- Build a CI/CD pipeline for cloud deployments using GitHub Actions and Oracle Cloud Infrastructure DevOps service
- Deploy Jenkins in master/agent mode
- Build a continuous integration and deployment pipeline using Oracle DevOps service
- Build a Continuous Deployment Pipeline using Oracle Cloud Infrastructure DevOps service
- Deploy GitLab Runners on Oracle Container Engine for Kubernetes with cluster autoscaling
Considerations for a CI/CD Process
While the CI/CD process simplifies achieving your coding goals, it also comes with areas of complexity. When implementing a CI/CD architecture, consider these factors.
Technology Diversity
Identify the various technologies required in a single pipeline to deploy a solution. Both, technologies to be validated, and the potential tools needed from static code analysis to unit, integration, and component testing.
Unique Quality Requirements
Identify if different software builds have individual quality requirements. For example, software for internal use doesn't require to manage sensitive data and won't require the same level of security checks when compared to an internet-facing solution processing individuals medical data.
Technical Skill Requirements
Identify the range of technical skills needed in your team or organization to operate and maintain the pipelines.
Cost-Benefit Analysis
Estimate the cost of establishing the pipeline when compared to the value or requirements of the software you're building.
Product Strategy Requirements
Define the product and cloud strategies involved. For example, vendor-agnostic open source software when compared to prebuilt services (IaaS over PaaS or the reverse respectively).