Classificatie: vertrouwelijk Automation of Software Engineering with OCI DevOps Build and Deployment Pipelines APAC OCI Days – 24-26 May 2022 Lucas Jellema, CTO & Architect AMIS | Conclusion
Classificatie: vertrouwelijk Lucas Jellema CTO for AMIS | Conclusion Cloud Solution Architect APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps lucas.jellema@amis.nl | technology.amis.nl | @lucasjellema | lucas-jellema 2
Classificatie: vertrouwelijk Discussion Topics APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 3 Deployment Build Source Code Artifact
Classificatie: vertrouwelijk Deployment • Objective: a running software product • in the designated target environment • Requirements • proven • no human involvement • secure • triggerable • tailored to environment • audit APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 4
Classificatie: vertrouwelijk OCI DevOps Deployment Pipelines • Automated Deployment to OCI services • Application to Compute Instance (VM) • Container Image and Kubernetes artifacts to OKE • Function Container Image to OCI Functions APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 5
Classificatie: vertrouwelijk OCI DevOps Deployment Pipelines • run as Resource Principal inside OCI • require permissions on target environments (through policies and dynamic group) • retrieve artifacts from container image registry and generic artifact registry • are simple to trigger • only requires permission on pipeline • can include OCI Function calls • for environment preparation, smoke test, .. • can include manual approval steps • can be triggered from Jenkins pipeline • support Blue/Green & Canary deployment strategies (for VM and OKE) • “OCI native” – logging, events, audit, CLI/Console • are free APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 6
Classificatie: vertrouwelijk OCI Deployment Pipeline for Compute Instance • Artifacts are retrieved from Artifact repository and copied to the VM • Deployment Configuration contains Shell commands that are executed on the target VM • at present: Oracle Linux, CentOS, AmalLinux OS • Parameters can be defined on the pipeline • parameter references can be used in the deployment configuration to set environment variables • IAM Policy is required – grant permission to dynamic group “to manage instance-agent-command-family” • Deployment pipeline needs to be included in the group APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 7 Dynamic Group Agent
Classificatie: vertrouwelijk OCI Deployment Demo • Existing Web application - packaged as zip-file my-server.zip artifact • binary executable (compiled from Go app) and static web resources • Existing Deployment Pipeline • my-server.zip: Download, Update an Upload (as new version of artifact) • Create new Compute Instance – Oracle Linux VM APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 8
Classificatie: vertrouwelijk Download my-server.zip from Artifact Registry APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 9
Classificatie: vertrouwelijk Update web application – create new artifact APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 10
Classificatie: vertrouwelijk Upload new Artifact to Artifact Registry APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 11
Classificatie: vertrouwelijk Create Compute Instance – Oracle Linux VM APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 12
Classificatie: vertrouwelijk Create Compute Instance – Oracle Linux VM APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 13
Classificatie: vertrouwelijk Create Compute Instance – Oracle Linux VM APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 14
Classificatie: vertrouwelijk Provisioning Compute Instance APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 15
Classificatie: vertrouwelijk Provisioning Compute Instance APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 16
Classificatie: vertrouwelijk Define DevOps Environment for new Compute Instance APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 17
Classificatie: vertrouwelijk Define DevOps Environment for new Compute Instance APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 18
Classificatie: vertrouwelijk Update Deployment Pipeline • Target the right Environment • Deploy the right [version of the] my-server.zip Artifact APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 19
Classificatie: vertrouwelijk Update Deployment Pipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 20
Classificatie: vertrouwelijk Update Deployment Pipeline - Parameter APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 21
Classificatie: vertrouwelijk Update Deployment Pipeline - Parameter APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 22
Classificatie: vertrouwelijk Deployment Specification APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 23
Classificatie: vertrouwelijk Deployment Specification APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 24
Classificatie: vertrouwelijk Run Deployment Pipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 25
Classificatie: vertrouwelijk When Deployment is Complete … APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 26
Classificatie: vertrouwelijk Requirements (not shown in demo) APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 27 Compute Instance Run Command and Management Agent plugins enabled on Compute Instance Cloud Agent Deployment Pipeline has IAM permissions for operations on VM Dynamic Group includes pipeline, Policy grant permissions to group subnet allows incoming network traffic from public internet to port 8095 Network Security List Ingress Rule is defined configure firewall on VM – open up port 8085
Classificatie: vertrouwelijk OCI DevOps Projects APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 28 generic artifact registry container image registry Environment DevOps Project
Classificatie: vertrouwelijk OCI DevOps Projects APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 29 DevOps Project generic artifact registry container image registry Environment build server VM
Classificatie: vertrouwelijk OCI DevOps Container Image Registry • Container [Image] Registry • Store for tagged Container Images • Docker Registry compliant • Public and private container images • Can be published to by Build Pipeline • Read from by Deployment Pipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 30
Classificatie: vertrouwelijk OCI DevOps [Generic] Artifact Registry • Registry for any type of file • Organized in Repositories • Files can be uploaded and downloaded through OCI Console • Can be published to by Build Pipeline • Read from by Deployment Pipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 31
Classificatie: vertrouwelijk OCI DevOps Code Repository • git style • accessible from any git client • can be a mirror from external repository • synched from GitHub, GitLab, BitBucket • only storage costs are charged • simple read only UI in OCI Console APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 32
Classificatie: vertrouwelijk Build • Objective: Produce deployable artifacts • after running linting, code QA, tests • Requirements • automated, repeatable, proven • triggerable from source code events • easy for software developer • integrated in OCI • source code, artifact & container registries, trigger deployment • logging, events, audit, IAM • cheap and plenty build server APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 33
Classificatie: vertrouwelijk Build Server • Currently only one VM image • Oracle Linux 7, 1 OCPU, 8 GB RAM • Pre-installed tools and language environments • Bash, Maven, Gradle, Helm, git • Docker, Fn CLI, OCI CLI • Java, Python, Ruby, Node, Go, PHP • Build server has access to internet for download and installing additional tools, container images, git repositories • Planned: custom build server images • Note: build server compute costs are charged - for the time the server is active APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 34 DevOps Project build server VM
Classificatie: vertrouwelijk Build Pipeline • Multiple stages – sequential or parallel • Four types of stage: • Managed Build – run script on build server • Deliver Artifact – publish files / container images • Trigger Deployment Pipeline • Wait • Triggered by • Event in source code repository • Humanual action • API call • Parameters can be associated with build pipeline • optionally set for each run to override default values • used in build specification script and in artifact reference • passed to triggered deployment pipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 35
Classificatie: vertrouwelijk Managed Build Stage • Retrieve sources from one or more repositories to the build server • Execute steps in build specification yaml file • part of source code repository • contains Linux Shell commands • Designated files produced by stage are available as output • to be published to artifact registry APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 36 build server VM output (zip-file, json- document, container image) build specification yaml file DevOps Project
Classificatie: vertrouwelijk Managed Build Stage (2) • Build Pipeline parameters are available when build server runs • values from Vault Secrets can be pulled in at build run time • Note: build server runs under resource principal authentication • inheriting IAM permissions from Dynamic Group • example: invoke function, run OCI CLI or Terraform with OCI provider APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 37 DevOps Project build server VM output (zip-file, json- document, container image) build specification yaml file Dynamic Group para meters para meters
Classificatie: vertrouwelijk Demo • Source code for my-server.go app in Code Repository is starting point • including build-specification.yaml • Build pipeline • parameter for artifact version • 1. managed build stage – associated with code repository [path] • compile, lint, code QA, test, build to executable, package to zip archive • 2. publish artifact stage – upload zip-file to artifact registry • 3. trigger deployment pipeline stage – start deployment to Compute Instance APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 38 DevOps Project generic artifact registry build server VM parameter parameter 1 2 3
Classificatie: vertrouwelijk Source Code Repository APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 39
Classificatie: vertrouwelijk Build Pipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 40
Classificatie: vertrouwelijk Managed Build Stage APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 41
Classificatie: vertrouwelijk Build Specification (1) APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 42
Classificatie: vertrouwelijk Build Specification (2) APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 43 Create Archive Build Executable Run Unit Tests Lint source code Format Go source code Install golangci-lint on build server Run go mod tidy Run go vet Define output from build stage
Classificatie: vertrouwelijk Publish Artifact Stage APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 44 parameter
Classificatie: vertrouwelijk Publish Artifact Stage APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 45 parameter parameter
Classificatie: vertrouwelijk Run Build Pipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 46 APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 46 DevOps Project generic artifact registry build server VM my-server.zip:4.10
Classificatie: vertrouwelijk Run Build Pipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 47
Classificatie: vertrouwelijk Run Build Pipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 48
Classificatie: vertrouwelijk Run Build Pipeline – Publish Artifact (with version derived from parameter) APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 49 generic artifact registry my-server.zip:4.10
Classificatie: vertrouwelijk Run Build Pipeline – Trigger Deployment Pipeline (pass build line parameters) APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 50 parameter parameter
Classificatie: vertrouwelijk Managed Build Stage • Can invoke OCI ADM (Application Dependency Management) – to analyze vulnerabilities in application (GA May 2022) • Can build container images – that “publish artifact” pulls from local container image registry on build server • Infrastructure as Code – on OCI resources • Can run OCI CLI commands • Can [install Terraform and] apply Terraform plans OCI provider • Can run any Linux shell job • Multiple manage build stages can be included in one build pipeline • build-specification files for generic actions can be reused across pipelines • for example: build-spec for exposing a service through OCI API Gateway APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 51
Classificatie: vertrouwelijk Finale • Automation is important • proven, repeatable, triggered, secure, fast/at any time, fewer skills required • OCI DevOps provides automation • of software build • of software deployment to OCI runtime platforms • Embedded in OCI • IAM, logging, events, code repository and artifact registry • console, CLI, REST API, Terraform • Young service – quickly growing • Free or Cheap APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 52 DevOps Project Environment build server VM
Classificatie: vertrouwelijk Thank you for your attention I hope this was useful APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps lucas.jellema@amis.nl | technology.amis.nl | @lucasjellema | lucas-jellema 53
Classificatie: vertrouwelijk

Automation of Software Engineering with OCI DevOps Build and Deployment Pipelines (APAC OCI Days - May 2022)

  • 1.
    Classificatie: vertrouwelijk Automation of Software Engineering withOCI DevOps Build and Deployment Pipelines APAC OCI Days – 24-26 May 2022 Lucas Jellema, CTO & Architect AMIS | Conclusion
  • 2.
    Classificatie: vertrouwelijk Lucas Jellema CTOfor AMIS | Conclusion Cloud Solution Architect APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps lucas.jellema@amis.nl | technology.amis.nl | @lucasjellema | lucas-jellema 2
  • 3.
    Classificatie: vertrouwelijk Discussion Topics APACOCI Days 2022 - Automation of Software Engineering with OCI DevOps 3 Deployment Build Source Code Artifact
  • 4.
    Classificatie: vertrouwelijk Deployment • Objective:a running software product • in the designated target environment • Requirements • proven • no human involvement • secure • triggerable • tailored to environment • audit APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 4
  • 5.
    Classificatie: vertrouwelijk OCI DevOpsDeployment Pipelines • Automated Deployment to OCI services • Application to Compute Instance (VM) • Container Image and Kubernetes artifacts to OKE • Function Container Image to OCI Functions APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 5
  • 6.
    Classificatie: vertrouwelijk OCI DevOpsDeployment Pipelines • run as Resource Principal inside OCI • require permissions on target environments (through policies and dynamic group) • retrieve artifacts from container image registry and generic artifact registry • are simple to trigger • only requires permission on pipeline • can include OCI Function calls • for environment preparation, smoke test, .. • can include manual approval steps • can be triggered from Jenkins pipeline • support Blue/Green & Canary deployment strategies (for VM and OKE) • “OCI native” – logging, events, audit, CLI/Console • are free APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 6
  • 7.
    Classificatie: vertrouwelijk OCI DeploymentPipeline for Compute Instance • Artifacts are retrieved from Artifact repository and copied to the VM • Deployment Configuration contains Shell commands that are executed on the target VM • at present: Oracle Linux, CentOS, AmalLinux OS • Parameters can be defined on the pipeline • parameter references can be used in the deployment configuration to set environment variables • IAM Policy is required – grant permission to dynamic group “to manage instance-agent-command-family” • Deployment pipeline needs to be included in the group APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 7 Dynamic Group Agent
  • 8.
    Classificatie: vertrouwelijk OCI DeploymentDemo • Existing Web application - packaged as zip-file my-server.zip artifact • binary executable (compiled from Go app) and static web resources • Existing Deployment Pipeline • my-server.zip: Download, Update an Upload (as new version of artifact) • Create new Compute Instance – Oracle Linux VM APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 8
  • 9.
    Classificatie: vertrouwelijk Download my-server.zipfrom Artifact Registry APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 9
  • 10.
    Classificatie: vertrouwelijk Update webapplication – create new artifact APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 10
  • 11.
    Classificatie: vertrouwelijk Upload newArtifact to Artifact Registry APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 11
  • 12.
    Classificatie: vertrouwelijk Create ComputeInstance – Oracle Linux VM APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 12
  • 13.
    Classificatie: vertrouwelijk Create ComputeInstance – Oracle Linux VM APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 13
  • 14.
    Classificatie: vertrouwelijk Create ComputeInstance – Oracle Linux VM APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 14
  • 15.
    Classificatie: vertrouwelijk Provisioning ComputeInstance APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 15
  • 16.
    Classificatie: vertrouwelijk Provisioning ComputeInstance APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 16
  • 17.
    Classificatie: vertrouwelijk Define DevOpsEnvironment for new Compute Instance APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 17
  • 18.
    Classificatie: vertrouwelijk Define DevOpsEnvironment for new Compute Instance APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 18
  • 19.
    Classificatie: vertrouwelijk Update DeploymentPipeline • Target the right Environment • Deploy the right [version of the] my-server.zip Artifact APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 19
  • 20.
    Classificatie: vertrouwelijk Update DeploymentPipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 20
  • 21.
    Classificatie: vertrouwelijk Update DeploymentPipeline - Parameter APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 21
  • 22.
    Classificatie: vertrouwelijk Update DeploymentPipeline - Parameter APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 22
  • 23.
    Classificatie: vertrouwelijk Deployment Specification APACOCI Days 2022 - Automation of Software Engineering with OCI DevOps 23
  • 24.
    Classificatie: vertrouwelijk Deployment Specification APACOCI Days 2022 - Automation of Software Engineering with OCI DevOps 24
  • 25.
    Classificatie: vertrouwelijk Run DeploymentPipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 25
  • 26.
    Classificatie: vertrouwelijk When Deploymentis Complete … APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 26
  • 27.
    Classificatie: vertrouwelijk Requirements (notshown in demo) APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 27 Compute Instance Run Command and Management Agent plugins enabled on Compute Instance Cloud Agent Deployment Pipeline has IAM permissions for operations on VM Dynamic Group includes pipeline, Policy grant permissions to group subnet allows incoming network traffic from public internet to port 8095 Network Security List Ingress Rule is defined configure firewall on VM – open up port 8085
  • 28.
    Classificatie: vertrouwelijk OCI DevOpsProjects APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 28 generic artifact registry container image registry Environment DevOps Project
  • 29.
    Classificatie: vertrouwelijk OCI DevOpsProjects APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 29 DevOps Project generic artifact registry container image registry Environment build server VM
  • 30.
    Classificatie: vertrouwelijk OCI DevOpsContainer Image Registry • Container [Image] Registry • Store for tagged Container Images • Docker Registry compliant • Public and private container images • Can be published to by Build Pipeline • Read from by Deployment Pipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 30
  • 31.
    Classificatie: vertrouwelijk OCI DevOps[Generic] Artifact Registry • Registry for any type of file • Organized in Repositories • Files can be uploaded and downloaded through OCI Console • Can be published to by Build Pipeline • Read from by Deployment Pipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 31
  • 32.
    Classificatie: vertrouwelijk OCI DevOpsCode Repository • git style • accessible from any git client • can be a mirror from external repository • synched from GitHub, GitLab, BitBucket • only storage costs are charged • simple read only UI in OCI Console APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 32
  • 33.
    Classificatie: vertrouwelijk Build • Objective:Produce deployable artifacts • after running linting, code QA, tests • Requirements • automated, repeatable, proven • triggerable from source code events • easy for software developer • integrated in OCI • source code, artifact & container registries, trigger deployment • logging, events, audit, IAM • cheap and plenty build server APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 33
  • 34.
    Classificatie: vertrouwelijk Build Server •Currently only one VM image • Oracle Linux 7, 1 OCPU, 8 GB RAM • Pre-installed tools and language environments • Bash, Maven, Gradle, Helm, git • Docker, Fn CLI, OCI CLI • Java, Python, Ruby, Node, Go, PHP • Build server has access to internet for download and installing additional tools, container images, git repositories • Planned: custom build server images • Note: build server compute costs are charged - for the time the server is active APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 34 DevOps Project build server VM
  • 35.
    Classificatie: vertrouwelijk Build Pipeline •Multiple stages – sequential or parallel • Four types of stage: • Managed Build – run script on build server • Deliver Artifact – publish files / container images • Trigger Deployment Pipeline • Wait • Triggered by • Event in source code repository • Humanual action • API call • Parameters can be associated with build pipeline • optionally set for each run to override default values • used in build specification script and in artifact reference • passed to triggered deployment pipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 35
  • 36.
    Classificatie: vertrouwelijk Managed BuildStage • Retrieve sources from one or more repositories to the build server • Execute steps in build specification yaml file • part of source code repository • contains Linux Shell commands • Designated files produced by stage are available as output • to be published to artifact registry APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 36 build server VM output (zip-file, json- document, container image) build specification yaml file DevOps Project
  • 37.
    Classificatie: vertrouwelijk Managed BuildStage (2) • Build Pipeline parameters are available when build server runs • values from Vault Secrets can be pulled in at build run time • Note: build server runs under resource principal authentication • inheriting IAM permissions from Dynamic Group • example: invoke function, run OCI CLI or Terraform with OCI provider APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 37 DevOps Project build server VM output (zip-file, json- document, container image) build specification yaml file Dynamic Group para meters para meters
  • 38.
    Classificatie: vertrouwelijk Demo • Sourcecode for my-server.go app in Code Repository is starting point • including build-specification.yaml • Build pipeline • parameter for artifact version • 1. managed build stage – associated with code repository [path] • compile, lint, code QA, test, build to executable, package to zip archive • 2. publish artifact stage – upload zip-file to artifact registry • 3. trigger deployment pipeline stage – start deployment to Compute Instance APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 38 DevOps Project generic artifact registry build server VM parameter parameter 1 2 3
  • 39.
    Classificatie: vertrouwelijk Source CodeRepository APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 39
  • 40.
    Classificatie: vertrouwelijk Build Pipeline APACOCI Days 2022 - Automation of Software Engineering with OCI DevOps 40
  • 41.
    Classificatie: vertrouwelijk Managed BuildStage APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 41
  • 42.
    Classificatie: vertrouwelijk Build Specification(1) APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 42
  • 43.
    Classificatie: vertrouwelijk Build Specification(2) APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 43 Create Archive Build Executable Run Unit Tests Lint source code Format Go source code Install golangci-lint on build server Run go mod tidy Run go vet Define output from build stage
  • 44.
    Classificatie: vertrouwelijk Publish ArtifactStage APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 44 parameter
  • 45.
    Classificatie: vertrouwelijk Publish ArtifactStage APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 45 parameter parameter
  • 46.
    Classificatie: vertrouwelijk Run BuildPipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 46 APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 46 DevOps Project generic artifact registry build server VM my-server.zip:4.10
  • 47.
    Classificatie: vertrouwelijk Run BuildPipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 47
  • 48.
    Classificatie: vertrouwelijk Run BuildPipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 48
  • 49.
    Classificatie: vertrouwelijk Run BuildPipeline – Publish Artifact (with version derived from parameter) APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 49 generic artifact registry my-server.zip:4.10
  • 50.
    Classificatie: vertrouwelijk Run BuildPipeline – Trigger Deployment Pipeline (pass build line parameters) APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 50 parameter parameter
  • 51.
    Classificatie: vertrouwelijk Managed BuildStage • Can invoke OCI ADM (Application Dependency Management) – to analyze vulnerabilities in application (GA May 2022) • Can build container images – that “publish artifact” pulls from local container image registry on build server • Infrastructure as Code – on OCI resources • Can run OCI CLI commands • Can [install Terraform and] apply Terraform plans OCI provider • Can run any Linux shell job • Multiple manage build stages can be included in one build pipeline • build-specification files for generic actions can be reused across pipelines • for example: build-spec for exposing a service through OCI API Gateway APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 51
  • 52.
    Classificatie: vertrouwelijk Finale • Automationis important • proven, repeatable, triggered, secure, fast/at any time, fewer skills required • OCI DevOps provides automation • of software build • of software deployment to OCI runtime platforms • Embedded in OCI • IAM, logging, events, code repository and artifact registry • console, CLI, REST API, Terraform • Young service – quickly growing • Free or Cheap APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 52 DevOps Project Environment build server VM
  • 53.
    Classificatie: vertrouwelijk Thank you foryour attention I hope this was useful APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps lucas.jellema@amis.nl | technology.amis.nl | @lucasjellema | lucas-jellema 53
  • 54.

Editor's Notes

  • #2 Automation of Software Engineering with OCI DevOps Build and Deployment Pipelines Automation of software delivery has several advantages. Prevention of human error is certainly one. Consistent and complete execution of tried and tested build and deployment tasks as the only way to apply changes in the live environment. Once the pipelines have been set up, the engineers can focus on the software and applying the required changes to it. To bring that software all the way to production is a breeze. Oracle Cloud Infrastructure offers the DevOps service, introduced in the Summer of 2021. This service comes with git style code repositories, build servers and build pipelines, artifact repositories as well as deployment pipelines.  This session introduces OCI DevOps and demonstrates how software can be built and deployed on OKE Kubernetes, Compute Instance VMs and Oracle Functions. From simple source code an application is put in production without manual intervention in the build and deployment process.
  • #35 https://docs.oracle.com/en-us/iaas/Content/devops/using/runtime_details.htm