SlideShare a Scribd company logo
1 of 54
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

More Related Content

What's hot

THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.ioTHE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.ioDevOpsDays Tel Aviv
 
MLOps - The Assembly Line of ML
MLOps - The Assembly Line of MLMLOps - The Assembly Line of ML
MLOps - The Assembly Line of MLJordan Birdsell
 
Microsoft Azure Cloud Services
Microsoft Azure Cloud ServicesMicrosoft Azure Cloud Services
Microsoft Azure Cloud ServicesDavid J Rosenthal
 
GitOps Toolkit (Cloud Native Nordics Tech Talk)
GitOps Toolkit (Cloud Native Nordics Tech Talk)GitOps Toolkit (Cloud Native Nordics Tech Talk)
GitOps Toolkit (Cloud Native Nordics Tech Talk)Weaveworks
 
MuleSoft Surat Meetup#41 - Universal API Management, Anypoint Flex Gateway an...
MuleSoft Surat Meetup#41 - Universal API Management, Anypoint Flex Gateway an...MuleSoft Surat Meetup#41 - Universal API Management, Anypoint Flex Gateway an...
MuleSoft Surat Meetup#41 - Universal API Management, Anypoint Flex Gateway an...Jitendra Bafna
 
Nagios XI Best Practices
Nagios XI Best PracticesNagios XI Best Practices
Nagios XI Best PracticesNagios
 
Full lifecycle of a microservice
Full lifecycle of a microserviceFull lifecycle of a microservice
Full lifecycle of a microserviceLuigi Bennardis
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as CodeRobert Greiner
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack ArchitectureMirantis
 
SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14
SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14 SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14
SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14 MysoreMuleSoftMeetup
 
Terraform -- Infrastructure as Code
Terraform -- Infrastructure as CodeTerraform -- Infrastructure as Code
Terraform -- Infrastructure as CodeMartin Schütte
 
Encryption and Masking for Sensitive Apache Spark Analytics Addressing CCPA a...
Encryption and Masking for Sensitive Apache Spark Analytics Addressing CCPA a...Encryption and Masking for Sensitive Apache Spark Analytics Addressing CCPA a...
Encryption and Masking for Sensitive Apache Spark Analytics Addressing CCPA a...Databricks
 
Openshift Container Platform
Openshift Container PlatformOpenshift Container Platform
Openshift Container PlatformDLT Solutions
 
OpenTelemetry Introduction
OpenTelemetry Introduction OpenTelemetry Introduction
OpenTelemetry Introduction DimitrisFinas1
 
Easy Cloud Native Transformation with Nomad
Easy Cloud Native Transformation with NomadEasy Cloud Native Transformation with Nomad
Easy Cloud Native Transformation with NomadBram Vogelaar
 
Introduction to Kong API Gateway
Introduction to Kong API GatewayIntroduction to Kong API Gateway
Introduction to Kong API GatewayYohann Ciurlik
 
Azure kubernetes service (aks)
Azure kubernetes service (aks)Azure kubernetes service (aks)
Azure kubernetes service (aks)Akash Agrawal
 
12 factor app an introduction
12 factor app an introduction12 factor app an introduction
12 factor app an introductionKrishna-Kumar
 

What's hot (20)

THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.ioTHE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
THE STATE OF OPENTELEMETRY, DOTAN HOROVITS, Logz.io
 
MLOps - The Assembly Line of ML
MLOps - The Assembly Line of MLMLOps - The Assembly Line of ML
MLOps - The Assembly Line of ML
 
Microsoft Azure Cloud Services
Microsoft Azure Cloud ServicesMicrosoft Azure Cloud Services
Microsoft Azure Cloud Services
 
GitOps Toolkit (Cloud Native Nordics Tech Talk)
GitOps Toolkit (Cloud Native Nordics Tech Talk)GitOps Toolkit (Cloud Native Nordics Tech Talk)
GitOps Toolkit (Cloud Native Nordics Tech Talk)
 
MuleSoft Surat Meetup#41 - Universal API Management, Anypoint Flex Gateway an...
MuleSoft Surat Meetup#41 - Universal API Management, Anypoint Flex Gateway an...MuleSoft Surat Meetup#41 - Universal API Management, Anypoint Flex Gateway an...
MuleSoft Surat Meetup#41 - Universal API Management, Anypoint Flex Gateway an...
 
Azure Cloud PPT
Azure Cloud PPTAzure Cloud PPT
Azure Cloud PPT
 
Nagios XI Best Practices
Nagios XI Best PracticesNagios XI Best Practices
Nagios XI Best Practices
 
Full lifecycle of a microservice
Full lifecycle of a microserviceFull lifecycle of a microservice
Full lifecycle of a microservice
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
OpenStack Architecture
OpenStack ArchitectureOpenStack Architecture
OpenStack Architecture
 
SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14
SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14 SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14
SAP Integration with MuleSoft | MuleSoft Mysore Meetup #14
 
Terraform -- Infrastructure as Code
Terraform -- Infrastructure as CodeTerraform -- Infrastructure as Code
Terraform -- Infrastructure as Code
 
Encryption and Masking for Sensitive Apache Spark Analytics Addressing CCPA a...
Encryption and Masking for Sensitive Apache Spark Analytics Addressing CCPA a...Encryption and Masking for Sensitive Apache Spark Analytics Addressing CCPA a...
Encryption and Masking for Sensitive Apache Spark Analytics Addressing CCPA a...
 
Tour of Azure DevOps
Tour of Azure DevOpsTour of Azure DevOps
Tour of Azure DevOps
 
Openshift Container Platform
Openshift Container PlatformOpenshift Container Platform
Openshift Container Platform
 
OpenTelemetry Introduction
OpenTelemetry Introduction OpenTelemetry Introduction
OpenTelemetry Introduction
 
Easy Cloud Native Transformation with Nomad
Easy Cloud Native Transformation with NomadEasy Cloud Native Transformation with Nomad
Easy Cloud Native Transformation with Nomad
 
Introduction to Kong API Gateway
Introduction to Kong API GatewayIntroduction to Kong API Gateway
Introduction to Kong API Gateway
 
Azure kubernetes service (aks)
Azure kubernetes service (aks)Azure kubernetes service (aks)
Azure kubernetes service (aks)
 
12 factor app an introduction
12 factor app an introduction12 factor app an introduction
12 factor app an introduction
 

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

Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERIndrajit Poddar
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAmazon Web Services
 
A tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWSA tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWSAmazon Web Services
 
ACDKOCHI19 - CI / CD using AWS Developer Tools
ACDKOCHI19 - CI / CD using AWS Developer ToolsACDKOCHI19 - CI / CD using AWS Developer Tools
ACDKOCHI19 - CI / CD using AWS Developer ToolsAWS User Group Kochi
 
A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...
A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...
A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...Amazon Web Services
 
DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOps
DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOpsDevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOps
DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOpsDevOps_Fest
 
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsA Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsAmazon Web Services
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterAmazon Web Services
 
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...Amazon Web Services
 
"The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming" "The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming" James Watters
 
Interop 2017 - Managing Containers in Production
Interop 2017 - Managing Containers in ProductionInterop 2017 - Managing Containers in Production
Interop 2017 - Managing Containers in ProductionBrian Gracely
 
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...Amazon Web Services
 
Alibaba Cloud Conference 2016 - Docker Open Source
Alibaba Cloud Conference   2016 - Docker Open Source Alibaba Cloud Conference   2016 - Docker Open Source
Alibaba Cloud Conference 2016 - Docker Open Source John Willis
 
Containers and Microservices for Realists
Containers and Microservices for RealistsContainers and Microservices for Realists
Containers and Microservices for RealistsOracle Developers
 
Containers and microservices for realists
Containers and microservices for realistsContainers and microservices for realists
Containers and microservices for realistsKarthik Gaekwad
 
A Tale of Two Pizzas: Developer Tools at AWS - DevDay Los Angeles 2017
A Tale of Two Pizzas: Developer Tools at AWS - DevDay Los Angeles 2017A Tale of Two Pizzas: Developer Tools at AWS - DevDay Los Angeles 2017
A Tale of Two Pizzas: Developer Tools at AWS - DevDay Los Angeles 2017Amazon Web Services
 
AWS ECS Copilot DevOps Presentation
AWS ECS Copilot DevOps PresentationAWS ECS Copilot DevOps Presentation
AWS ECS Copilot DevOps PresentationVarun Manik
 

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

Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWERContinuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
Continuous Integration with Cloud Foundry Concourse and Docker on OpenPOWER
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck Talks
 
A tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWSA tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWS
 
ACDKOCHI19 - CI / CD using AWS Developer Tools
ACDKOCHI19 - CI / CD using AWS Developer ToolsACDKOCHI19 - CI / CD using AWS Developer Tools
ACDKOCHI19 - CI / CD using AWS Developer Tools
 
A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...
A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...
A Tale of Two Pizzas: Accelerating Software Delivery with Developer Tools - D...
 
Moby KubeCon 2017
Moby KubeCon 2017Moby KubeCon 2017
Moby KubeCon 2017
 
DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOps
DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOpsDevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOps
DevOps Fest 2020. Сергей Абаничев. Modern CI\CD pipeline with Azure DevOps
 
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsA Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver Faster
 
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
 
"The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming" "The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming"
 
DevOps on GCP Course Compared to AWS
DevOps on GCP Course Compared to AWSDevOps on GCP Course Compared to AWS
DevOps on GCP Course Compared to AWS
 
Interop 2017 - Managing Containers in Production
Interop 2017 - Managing Containers in ProductionInterop 2017 - Managing Containers in Production
Interop 2017 - Managing Containers in Production
 
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
ENT201 A Tale of Two Pizzas: Accelerating Software Delivery with AWS Develope...
 
Alibaba Cloud Conference 2016 - Docker Open Source
Alibaba Cloud Conference   2016 - Docker Open Source Alibaba Cloud Conference   2016 - Docker Open Source
Alibaba Cloud Conference 2016 - Docker Open Source
 
ASP.NET vNext
ASP.NET vNextASP.NET vNext
ASP.NET vNext
 
Containers and Microservices for Realists
Containers and Microservices for RealistsContainers and Microservices for Realists
Containers and Microservices for Realists
 
Containers and microservices for realists
Containers and microservices for realistsContainers and microservices for realists
Containers and microservices for realists
 
A Tale of Two Pizzas: Developer Tools at AWS - DevDay Los Angeles 2017
A Tale of Two Pizzas: Developer Tools at AWS - DevDay Los Angeles 2017A Tale of Two Pizzas: Developer Tools at AWS - DevDay Los Angeles 2017
A Tale of Two Pizzas: Developer Tools at AWS - DevDay Los Angeles 2017
 
AWS ECS Copilot DevOps Presentation
AWS ECS Copilot DevOps PresentationAWS ECS Copilot DevOps Presentation
AWS ECS Copilot DevOps Presentation
 

More from Lucas Jellema

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Lucas Jellema
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Lucas Jellema
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lucas Jellema
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Lucas Jellema
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...Lucas Jellema
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...Lucas Jellema
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Lucas Jellema
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)Lucas Jellema
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Lucas Jellema
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Lucas Jellema
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Lucas Jellema
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...Lucas Jellema
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Lucas Jellema
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...Lucas Jellema
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Lucas Jellema
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Lucas Jellema
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Lucas Jellema
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Lucas Jellema
 
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...Lucas Jellema
 
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...Lucas Jellema
 

More from Lucas Jellema (20)

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
 
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...
Software Engineering as the Next Level Up from Programming (Oracle Groundbrea...
 
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
Triple C - Centralize, Cloudify and Consolidate Dozens of Oracle Databases (O...
 

Recently uploaded

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfIdiosysTechnologies1
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfLivetecs LLC
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 

Recently uploaded (20)

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdf
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
How to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdfHow to Track Employee Performance A Comprehensive Guide.pdf
How to Track Employee Performance A Comprehensive Guide.pdf
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 

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

  • 1. 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
  • 2. 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
  • 3. Classificatie: vertrouwelijk Discussion Topics APAC OCI 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 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. Classificatie: vertrouwelijk Download my-server.zip from Artifact Registry APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 9
  • 10. Classificatie: vertrouwelijk Update web application – create new artifact APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 10
  • 11. Classificatie: vertrouwelijk Upload new Artifact to Artifact Registry APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 11
  • 12. Classificatie: vertrouwelijk Create Compute Instance – Oracle Linux VM APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 12
  • 13. Classificatie: vertrouwelijk Create Compute Instance – Oracle Linux VM APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 13
  • 14. Classificatie: vertrouwelijk Create Compute Instance – Oracle Linux VM APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 14
  • 15. Classificatie: vertrouwelijk Provisioning Compute Instance APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 15
  • 16. Classificatie: vertrouwelijk Provisioning Compute Instance APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 16
  • 17. Classificatie: vertrouwelijk Define DevOps Environment for new Compute Instance APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 17
  • 18. Classificatie: vertrouwelijk Define DevOps Environment for new Compute Instance APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 18
  • 19. 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
  • 20. Classificatie: vertrouwelijk Update Deployment Pipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 20
  • 21. Classificatie: vertrouwelijk Update Deployment Pipeline - Parameter APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 21
  • 22. Classificatie: vertrouwelijk Update Deployment Pipeline - Parameter APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 22
  • 23. Classificatie: vertrouwelijk Deployment Specification APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 23
  • 24. Classificatie: vertrouwelijk Deployment Specification APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 24
  • 25. Classificatie: vertrouwelijk Run Deployment Pipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 25
  • 26. Classificatie: vertrouwelijk When Deployment is Complete … APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 26
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 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 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
  • 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 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
  • 37. 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
  • 38. 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
  • 39. Classificatie: vertrouwelijk Source Code Repository APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 39
  • 40. Classificatie: vertrouwelijk Build Pipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 40
  • 41. Classificatie: vertrouwelijk Managed Build Stage 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 Artifact Stage APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 44 parameter
  • 45. Classificatie: vertrouwelijk Publish Artifact Stage APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 45 parameter parameter
  • 46. 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
  • 47. Classificatie: vertrouwelijk Run Build Pipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 47
  • 48. Classificatie: vertrouwelijk Run Build Pipeline APAC OCI Days 2022 - Automation of Software Engineering with OCI DevOps 48
  • 49. 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
  • 50. 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
  • 51. 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
  • 52. 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
  • 53. 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

Editor's Notes

  1. 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.
  2. https://docs.oracle.com/en-us/iaas/Content/devops/using/runtime_details.htm