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.
Figure 1. DevOps Workflow
DevOps workflow

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.

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 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:

  1. In the Console, open the navigation menu, and click Governance & Administration. Under Governance, click Limits, Quotas, and Usage.
  2. Filter on the following values:
    • Service: DevOps
    • Scope: <your-region>
    • Resource:
      • Maximum Number of Concurrent Deployments
      • Maximum Number of Deployment Pipelines
      • Maximum Number of Stages Per Deployment Pipeline
      • Maximum Number of Deployment Artifacts
      • Maximum Number of Environments
      • Maximum Number of DevOps Projects
      • Maximum Number of Build Pipelines
      • Maximum Number of Stages per Build Pipeline
      • Maximum Number of Concurrent Build Runs
      • Maximum Number of Concurrent Service Provided Build Runners
      • Maximum Number of Triggers
      • Maximum Number of External Connections
      • Total Number of Repositories Allowed Per Region Per Tenancy
      • Total Size of a Repository in MB
      • Total Size of a Pack File in MB
    • Compartment: <your-tenancy-namespace > (root)

To increase the service limits:

  1. In the Console, open the navigation menu, and click Governance & Administration. Under Governance, click Limits, Quotas, and Usage.
  2. Click the request a service limit increase link. Only administrators can make the request.

For more information, see Service Limits.