DevOps Overview
The Oracle Cloud Infrastructure (OCI) DevOps service is an end-to-end, continuous integration and continuous delivery (CI/CD) platform for developers.
Using this service DevOps engineer can easily build, test, and deploy software and applications on Oracle Cloud. The DevOps build and deployment pipelines reduce change-driven errors and decreases the time customers spend on building and deploying releases. The service also provides private Git repositories to store your code and supports connections to external code repositories.
With the DevOps service you can do the following:
- Create private code repositories to store and manage source code.
- Connect to external repositories such as GitHub, GitLab, Bitbucket Cloud, Visual Builder Studio, Bitbucket Server, and GitLab Server.
- Build and test your latest changes in a build pipeline with a service-managed build runner.
- Set up a trigger to automatically run your build pipeline from a source code commit or pull request. Optionally run a deployment pipeline on the successful build run for a complete CI/CD automation.
- Orchestrate your software deployment across regions to OCI platforms such as Kubernetes Engine (OKE), Compute instances, and Functions.
- Avoid downtime during deployments through the blue-green and canary deployment strategies.
- Automate the complexity of updating applications. Automation reduces the chance of human error that might introduce a security vulnerability.
- Enhance security and reduce risk in delivery. As DevOps enables faster software delivery, security bugs can be resolved quickly by rolling out a fix.
Whether you're migrating workloads to OCI (from on-premises or other clouds) or developing new applications on OCI, you can use the DevOps service to simplify your software delivery lifecycle.
You can build, test, deliver, and deploy with DevOps by using the Oracle Cloud Console, REST API, and CLI. See Accessing DevOps.
To get started with the DevOps service, see Getting Started with DevOps.
DevOps Concepts
Review key terms to understand the DevOps service.
- DevOps project
- A logical grouping of DevOps resources needed to implement a CI/CD workflow. DevOps resources can be artifacts, build pipelines, deployment pipelines, external connections, triggers, and environments.
- environment
- A reference to the compute resources to which artifacts are deployed. An environment can be a reference to a Function application, a group of Compute instances, or a Kubernetes Engine (OKE) cluster.
- instance group
- A group of compute hosts. Each instance group can have compute hosts only from one region at a time.
- artifact
- A collection of binaries and deployment manifests that are delivered to the target deployment environment. DevOps artifacts can be a container image, an instance group deployment configuration, a Kubernetes manifest, or a generic artifact. Artifacts can be hosted on OCI repositories: Container Registry and Artifact Registry.
- deployment configuration artifact
- Defines the artifacts to be downloaded to the instance and the location where the artifacts have to be copied. The configuration file also specifies the sequence of commands for deployment.
- code repository
- Private Git repositories hosted by the DevOps service. You can store, manage, and develop source code with the DevOps code repositories.
- external connection
- Defines the authorization needed to connect to external repositories. DevOps supports connection to GitHub, GitLab, Bitbucket Cloud, Bitbucket Server, and GitLab Server repositories.
- stage
- A single step in the pipeline. The DevOps service includes predefined stages, which are used in a build or deployment pipeline.
- build pipeline
- Defines a set of stages for the build process: building, testing and compiling software artifacts, delivering artifacts to OCI repositories, and optionally triggering a deployment.
- build specification
- Contains build steps and instructions that are run by the service managed build runner.
- deployment pipeline
- A sequence of steps for deploying a set of artifacts to a target environment. A deployment pipeline contains stages that run sequentially or in parallel.
- rollback
- A way to manage issues identified with the deployment, including releasing a previous successfully deployed version of the software.
- trigger
- A DevOps resource to filter incoming events from a source code repository and
trigger an action to start a build run on a matching incoming commit.
Trigger also refers to the deployment pipeline stage to trigger the start of a deployment.
- deployment
- A single run of a deployment pipeline. A deployment contains the state of all the stages running in a deployment pipeline.
- work request
- A way to track an asynchronous running task for a DevOps project.
Accessing DevOps
You can access DevOps by using the Console (a browser-based interface), Oracle Cloud Infrastructure CLI, or REST APIs.
Instructions for all three access methods are provided throughout this documentation.
- To use the Oracle
Cloud Console, you must have an Oracle Cloud Infrastructure (OCI) account (user,
password, and tenancy). You must also use a supported browser. For information, see Security Credentials. Note
Avoid entering confidential information when assigning descriptions, tags, or friendly names to your cloud resources through the Console, API, or CLI. This applies when creating or editing project resources such as environments and pipelines. - To use the OCI CLI or REST APIs, you can set up your environment, or use
Oracle Cloud Infrastructure Cloud Shell.
- To use the CLI or REST APIs in Cloud Shell, sign in to the Console. See Using Cloud Shell and the CLI Command Reference.
- To install the OCI CLI in your environment, follow the steps in the Install CLI quickstart. See also an overview of the CLI.
- When using REST APIs, refer to REST API documentation and API Reference and Endpoints.
If you perform an action and get a message that you don't have permission or are unauthorized, confirm with your administrator the type of access that you were granted.
To get started with the DevOps service, see Getting Started with DevOps.
Authentication and Authorization
Each service in Oracle Cloud Infrastructure integrates with IAM for authentication and authorization, for all interfaces (the Console, SDK or CLI, and REST API).
An administrator in your organization needs to set up groups, compartments , and policies that control which users can access which services, and which resources, and the type of access they have. For example, policies control who can create users, groups, and compartments, or who can create and manage repositories and artifacts.
- If you're a new administrator, see Getting Started with Policies.
- For details about writing policies for DevOps, see DevOps IAM Policies.
- For details about writing policies for other services, see Policy Reference.
If you're a regular user (not an administrator) who needs to use the Oracle Cloud Infrastructure resources that your company owns, contact your administrator to set up a user ID for you. The administrator can confirm which compartment or compartments you must be using.
Regions and Availability Domains
DevOps is available in all Oracle Cloud Infrastructure commercial regions. See About Regions and Availability Domains for the list of available regions for Oracle Cloud Infrastructure, along with associated locations, region identifiers, region keys, and availability domains.
Resource Identifiers
DevOps resources, like most types of resources in Oracle Cloud Infrastructure, have a unique, Oracle-assigned identifier called an Oracle Cloud ID (OCID).
For information about the OCID format and other ways to identify your resources, see Resource Identifiers.
Limits
Know the DevOps service limits for your region.
A service limit is the quota or allowance set on a resource.
Resource | Limit Short Name | Annual Universal Credits | Pay-as-You-Go | Description |
---|---|---|---|---|
Projects | devops-project-count | 1000 | 1000 | Maximum number of projects available in DevOps. |
Pipelines | build-pipeline-count | 1000 | 1000 | Maximum number of build pipelines available in DevOps. |
Pipelines | stages-per-build-pipeline-count | 100 | 100 | Maximum number of stages per build pipeline available in DevOps. |
Pipelines | deployment-pipeline-count | 1000 | 1000 | Maximum number of pipelines available in DevOps. |
Pipelines | deployment-stages-per-pipeline-count | 100 | 100 | Maximum number of stages per deployment pipeline available in DevOps. |
Build Runs | concurrent-build-run-count | 30 | 30 | Maximum number of concurrent build runs available in DevOps. |
Build Runs | concurrent-build-runner-count | 30 | 30 | Maximum number of concurrent service provided build runners available in DevOps. |
Deployments | concurrent-deployment-count | 100 | 100 | Maximum number of concurrent deployments available in DevOps. |
Environments | devops-environment-count | 3000 | 3000 | Maximum number of environments available in DevOps. |
Artifacts | devops-artifact-count | 10000 | 10000 (Pay As You Go) 1000 (Trial) |
Maximum number of artifacts available in DevOps. |
Triggers | trigger-count | 100 | 100 | Maximum number of triggers allowed in DevOps. |
External Connections | external-connection-count | 100 | 100 | Maximum number of external connections allowed in DevOps. |
Code Repositories | code-repository-count | 1000 | 1000 | Maximum number of repositories allowed per region per tenancy. |
Code Repositories | code-repository-size-limit-mb | 1024 | 1024 | Maximum size of a repository in MB. |
Code Repositories | receive-pack-size-limit-mb | 1024 | 1024 | Maximum size of a pack file in MB. |
Pull Requests | pull-request-count-per-month | 2000 | 2000 | Maximum number of pull requests created in a month. |
To check the limits for DevOps:
To increase the service limits:
- In the Console, open the navigation menu, and click Governance & Administration. Under Governance, click Limits, Quotas, and Usage.
- Click the request a service limit increase link. Only administrators can make the request.
For more information, see Service Limits.