Oracle Cloud DevOps

Enrique Martin Casado Presales Director

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. | Agenda • Oracle & DevOpc • Tools – Developer Cloud Service – Wercker (CI/CD) • Container Native Cloud Service • Database in CI/CD

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Oracle & Open Source and Community for Container Native • Oracle’s participation in open source community Active Community Participation – Active Participation – Cloud Native Compute Foundation and Kubernetes – No forked code – straight from the source • Lead by example Innovate in Open Source – Oracle software on Store – Kubernetes engineering in CNCF • Innovate in open source OpenJDK 4 Containers Kubernetes – Container utilities like smith, railcar, crashcart Open Sourcing Docker Utilities • Sponsor & contribute to key conferences – DockerCon, Kubecon, CoreOS Fest smith crashcart railcar

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 3 Active Open Source Contribution of Container Based Solutions from Oracle Development

smith railcar crashcart

A simple command line utility Alternative Docker A simple command line for building runtime implemented utility that lets you side load microcontainers from rpm in Rust following the an image with linux binaries packages or oci images. Open Container Initiative into an existing container. OCI-Runtime Spec Facilitates easier debugging

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 4 Oracle in Docker Store

1 of 8 results for Oracle. Clear search

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 5 DevOps • DevOps is a culture, movement or Plan practice that emphasizes the Monitor Code collaboration and communication of both software developers and other information-technology (IT) professionals while automating the process of software delivery and infrastructure changes. It Operate Build aims at establishing a culture and environment where building, testing, and releasing software, can happen rapidly, frequently, and more reliably. Deploy Test – Wikipedia Release

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 6 Oracle Developer Cloud Service • Code/CI Management – Version Management – – Build Automation • Ant, Maven, Gradle, npm, Grunt, Bower, Gulp, SQLcl, Shell – Test Automation • Selenium, JUnit, Findbugs – Continuous Integration Engine – Deployment & Provisioning Automation • Team/Agile Management – Issues Tracking – Agile Process Management – Code Review – Wiki – Activity stream

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Spectrum of Users & Needs

Serverless f(x)

Control vs. Ease of Use & Onboarding Container Native Cloud Native PaaS Enterprise Java Visual/Low Code

User: DevOps / Site User: Platform Developer User: Operations User: Line of Business Reliability Engineering Limited control tightly controlled for no exposure to consistency controls Granular control Prescriptive uniform tooling intuitive / UI based Highly scriptable Limited introspection designed for seamlessness integrated into a suite Deep introspection Short/efficient onramp low/no complexity Open affixed to environment Portable

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 8 Oracle Developer Cloud Service – Webhooks Connectivity

Webhooks Cloud Services Code Review

On Premise Servers

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | Developer Cloud Service • Track Issues Plan • Agile Project Management Monitor Code • Wikis

Operate Build

Deploy Test

Release

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 10 Issue Tracking

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 11 Agile and Sprint Planning

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 12 Agile Reports for Progress Tracking

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 13 Developer Cloud Service • Git Repositories Plan • Coding in the Cloud Monitor Code • Code Review • IDE Integration Operate Build

Deploy Test

Release

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 14 Manage Code Repositories

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 15 Track Code Changes

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 16 Conduct Peer Code Review and Merge Requests

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 17 Developer Cloud Service • Support Popular Build Frameworks Plan • Orchestration and Dependencies Monitor Code • Build Reports and Notifications

Operate Build

Deploy Test

Release

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 18 Build Dashboard

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 19 Multiple Build Steps Orchestrations

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 20 Multiple Build Steps Orchestrations: Invoke SQL

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 21 Multiple Build Steps Orchestrations: Invoke SQL

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 22 Developer Cloud Service • JUnit Plan • Selenium Monitor Code • FindBugs • QA Deployments Operate Build

Deploy Test

Release

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 23 Test Results Dashboard

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 24 Developer Cloud Service • Create packages Plan • Direct deployment Monitor Code

Operate Build

Deploy Test

Release

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 25 Deployment Configuration

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 26 Services • Easily provision deployment Plan platforms Monitor Code • Java Cloud Service – Java EE in the Cloud • Application Container Cloud Operate Build – Java SE, NodeJS, PHP, Ruby*, Python* • Mobile Cloud Service

Deploy Test – Mobile Services • Release Container Cloud Service – Docker Containers

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 27 Polyglot Platform for Running any Workload

Mobile CS

Developer CS

Java CS (Java EE)

Application Container CS Container CS (Java SE & Node) (Docker Containers)

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 28 What is Wercker

Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 29 Focus Areas for Container Pipelines

Kubernetes Cloud Platform & Functions Containers

Container Pipelines is a Natively integrate with Work with microserivces and Container Pipelines is a Kubernetes-native Platform Kubernetes in the Cloud serverless architectures Docker-native Platform

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | 30 Container Pipelines Concepts for Building Containers and Services • Steps – Isolated scripts or compiled binaries for accomplishing specific automation tasks.

• Pipelines – Pipelines are a series of steps that are triggered on a Git push or the completion of another pipeline • Workflows – Workflows are a set of chained and branched pipelines form multi-stage, multi- branch complex CI/CD flows

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Container Pipelines (Wercker) & Docker Lifecycle Management easy to assemble and automated builds to registries and production-grade clusters

Registry Deploy to Build Push to Registry Orchestration Scheduler Git

Test Push Deploy

OSS CLI Pipeline/Build Console Chatbot Integration Oracle, Pivotal, Workflow Automation with Slack (Walterbot) Amazon, Google …

32 Copyright © 2016, Oracle and/or its affiliates. All rights reserved. Demo

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Layers in the Oracle Cloud – The Big Picture

Node.js Java PHP

Any container App. Container CS

DIY Container CS

Compute Cloud Service

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Restricted Oracle Container Engine & Container Registry Architecture

CI/CD

Registry

Exposed Kubernetes VCN Service AD 1 AD 2 AD 3

PV K8S Cluster

Node Pool VM

Node Pool BM

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Oracle Container Native Microservices An open (CNCF and Istio based), cloud neutral, platform makes it easy to develop microservices applications • Pre-integrated, Curated Platform – Open Source, Cloud Native Computing Foundation with Istio • Developer Friendly – Opinionated but Open; API first platform • Enterprise Class – Built on Kubernetes with Service Mesh, Service Broker and API Registry; Ops Built In

Service Mesh

Service REST API API Registry Broker

Ops

Pre-Integrated, Curated Plaform Developer Friendly: Enterprise Class: CNCF + Istio Opinionated But Open Istio Service Mesh & Infrastructure

Copyright © 2015 Oracle and/or its affiliates. All rights reserved. | Microservices Stack • We start with a curated package of OSS laid on top of our managed K8S service: COMMON API AND SERVICES • Diagnostics and Operations (Zipkin/Jaeger, Vizceral) • Istio (Service mesh) • Open Service Broker API (Linux Foundation), which is the foundation of the K8s

service catalogJAVA MICRO SERVICES CI/CD

• API Catalog (Apiary) DIAGNOSTICS • Event ManagerMANAGED (Kafka KUBERNETES based) • Our value-add is to unify all of this, and flip the experience for the developer to be API-first: always reactive, unified between functions/services • Developers get observability and “distributed muck” for free

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 37 Architectural and Functional Overview

CLI – kubectlISTIO -oms DeveloperISTIO Console

• Publish and Consume and management High Productivity API Registry + • GenerateISTIO client libraries Service/API first • Mock services Catalog Order Foo ISTIO Service Service Service

Event Register Event • Registration of cloud services ManagerISTIOproviders and Service Broker ISTIOand user services APIs and Fn

consumers • Configuration of service access Diagnostics/Monitoring Prometheus ▪ Routing and Discover(LB, A/B etc.) ▪ ISTIO Resiliency (Circuit Breaker etc.) Developer Service Mesh/ISTIO ▪ Service monitoring and diagnostics

Cloud ▪ Inter Service Security and Policies ISTIO ▪ Cluster Management/HA High Control ▪ OrchestrationOKE Kubernetes Build on native K8s ▪ Deployment strategies

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 38 Service Mesh • Istio is the foundation of our offering; besides offering ingress control, it provides an application developer default service-to-service: – Load balancing – Encryption – Access Policy – Resiliency – Upgrades and sophisticated routing (e.g., 1% canaries, etc.) – Diagnostics and Tracing • We are fundamentally going to align with Istio, and enhance it in the open, not layer on top

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Confidential – Oracle Internal/Restricted/Highly Restricted 39 The Ideal Functions Platform

• Open Source—no vendor lock-in • Platform Independent—laptop, server, cloud • Approachable—easy for new users, low level controls for advanced users • Docker Based—leverage Docker ecosystem • Scheduler Independent—deploy to Kubernetes, Swarm, Mesos, etc.

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential - Restricted 40 Fn—An open source Functions Platform

www.fnproject.io

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | The Fn Project - Key Components

Java Fn Fn Server FDK Flow

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Container Native Serverless - Functions as Service a functions (triggered events) based platform

Local Function Develop CI/CD • Polyglot function platform with Java Optimizations

• Open Source Fn Flow • Container Native with Local Dev Experience Polyglot Function Engine fn fn fn fn • Cloud and Scheduler Neutral

Managed Kubernetes

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Why is Container Native with Oracle Different? • Open source, cloud neutral and community driven – Expressly non-proprietary, cloud neutral, differentiate on quality of service • High performance next generation IaaS – Oracle Cloud Infrastructure built from ground up for performance, security and HA • Optimized for Java workloads – Deep diagnostics and built in performance tuning • Best cloud for running Oracle Database workloads – Optimized for Oracle DB RAC and Exadata • Container Native Developer Experience – Seamless from local desktop to CI/CD to fully integrated SRE in the cloud

Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Oracle Database Architecture Requires memory, processes and database files

System Resources

GL OE AP

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 45 New Multitenant Architecture Memory and processes required at container level only

System Resources

GL OE AP

GL OE AP

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 46 Oracle Database Architecture More efficient utilization of system resources

System Resources

GL OE AP

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 47 A Pluggable Database Is a Portable Database Unplugging a PDB and plugging it in PO AP • Simply unplug from the old CDB… • …and plug it into the new CDB • Moving between CDBs is a simple case of moving a PDB’s GL OE AP metadata • An unplugged PDB carries with it lineage, opatch, encryption key info etc.

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 48 Unplug / Plug – Orchestration Performed Using SQL You already know how to use it!

Unplug alter pluggable database OE unplug into '/u01/app/oracle/oradata/…/oe.xml'

Plug create pluggable database My_PDB using '/u01/app/oracle/oradata/…/oe.xml'

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Advantages of Multitenant Architecture Reduced CapEx & OpEx, Increased Agility, Easy to Adopt and Use AP Self-contained PDB for each application GL OE • Applications run unchanged • Rapid provisioning (via clones) • Portability (via pluggability) Common operations performed at CDB level • Manage many as one (upgrade, HA, backup) • Granular control when appropriate

Shared memory and background processes Complementary to VMs • More applications per server

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Public 50 Consolidation Performance Test Highlights Oracle Multitenant Achieves Higher Performance with Less Resource Requirements

Total Throughput Number of Supported Database 252 PDBs vs. non-CDBs (same Throughput per Database)

tps databases

80% higher 150000 300 50% more aggregate databases 100000 throughput 200 consolidated 50000 100

0 0 non-CDBs PDBs non-CDBs PDBs Memory Footprint per Database Number of Cores Required Storage IOPS Required (not including Buffer Cache) to support 252 Databases to support 252 Databases

MB cores IOPS 2000 200 400000 1500 150 300000 1000 100 200000 500 50 100000 0 0 0 non-CDBs PDBs non-CDBs PDBs non-CDBs PDBs 8x reduction in memory 64 fewer cores needed 3x reduction in storage IOPS footprint

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 51 Manage Many Databases as One Backup databases as one; recover at pluggable database Level

GL OE AP

One Backup

Point-in-time recovery at pluggable database level

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Public 52 Manage Many Databases as One with Multitenant One standby database covers all pluggable databases

GL OE AP GL OE AP

Production Container Database Standby Container Database

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 53 Simplified Patching and Upgrades Apply changes once, all pluggable databases updated

GL OE AP

12.112.X 12.112.X 12.112.X

In-place

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 54 Improved Agility With Changing Workloads Expand cluster to support flexible consolidation model

Services

CDB Instance 1 CDB Instance 2 Single SGA per CDB Instance

Node 1 Node 2

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Improved Agility With Changing Workloads Expand cluster to support flexible consolidation model

CDB Instance 1 CDB Instance 3 CDB Instance 2

Node 1 Node 3 Node 2

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Multitenant for Provisioning Fast cloning of PDBs GL-1 GL-2 AP-1 AP-2 PO-1 • PDBs can be cloned from within the same CDB

• PDBs can be cloned from remote CDBs

GL OE AP PO • PDBs can be cloned from non-CDBs

• Thinly provision snapshot clones in seconds

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 57 Multitenant for Development and Testing Fast, flexible copy and snapshot of pluggable databases

GL GL GL GL OE AP Master (Dev1) (Dev2)

Production Container Database Development Container Database

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 58 Unprecedented Agility with Portable Pluggability PDB migrates through SLAs as it becomes more mission critical

GOLD RAC, Data Guard

SILVER RAC

BRONZE Backups

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 59 Multitenant Provides Agility for New Projects Fast Provisioning, Snapshot Clones

Time Taken to Provision New Database Seed Original 25 PDB New PDB PDB Clone From Seed of PDB Snapshot 20 Clone of PDB 15

10

5

New GL GL-2 GL-3 0 Non CDB PDB Snapshot Clone

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | 60 Traditional File System Full copy duplicates all data blocks my_file • File is collection of data blocks my_file_copy • And headers • Copy duplicates header & data blocks – Effective & simple, but expensive!

cp my_file my_file_copy

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Copy-on-Write Basics Much more efficient storage of substantially similar files my_file • File is collection of data blocks • And headers • Copy file requires only copy of header – Much more efficient storage – Minimal IO to create copy • Only copy block when changed my_file_copy

cp my_file my_file_copy

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Cloning and creating PDBs Rich and rapid provisioning capability delivered with the ease of SQL Provision a new PDB create pluggable database PDB3 admin user PDB_Admin identified by p roles = (DBA) Provision a remote full clone create pluggable database PDB2 from PDB1@CDB2 Thinly provision a local snapshot clone create pluggable database PDB2 from PDB1 snapshot copy

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Why is Container Native with Oracle Different? • Open source, cloud neutral and community driven – Expressly non-proprietary, cloud neutral, differentiate on quality of service • High performance next generation IaaS – Oracle Cloud Infrastructure built from ground up for performance, security and HA • Optimized for Java workloads – Deep diagnostics and built in performance tuning • Best cloud for running Oracle Database workloads – Optimized for Oracle DB RAC and Exadata • Container Native Developer Experience – Seamless from local desktop to CI/CD to fully integrated SRE in the cloud

Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Oracle Cloud DevOps

Enrique Martin Casado Presales Director

Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |