oracle application development in the cloud...title oracle application development in the cloud...
TRANSCRIPT
Copyright © 2014 Oracle and/or its affiliates. All rights reserved. |
Oracle CloudDevOps
Enrique Martin CasadoPresales Director
Copyright © 2016, 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 © 2015 Oracle and/or its affiliates. All rights reserved. |
Oracle & Open Source and Community for Container Native
• Oracle’s participation in open source community– Active Participation – Cloud Native Compute Foundation
and Kubernetes
– No forked code – straight from the source
• Lead by example– Oracle software on Docker Store
– Kubernetes engineering in CNCF
• Innovate in open source– Container utilities like smith, railcar, crashcart
• Sponsor & contribute to key conferences– DockerCon, Kubecon, CoreOS Fest
3
OpenJDK 4 Containers
Active Community Participation
Innovate in Open Source
Kubernetes
railcarsmith crashcart
Open Sourcing Docker Utilities
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Active Open Source Contribution of Container Based Solutions from Oracle Development
4
railcar
Alternative Docker
runtime implemented
in Rust following the
Open Container Initiative
OCI-Runtime Spec
smith
A simple command line utility
for building
microcontainers from rpm
packages or oci images.
crashcart
A simple command line
utility that lets you side load
an image with linux binaries
into an existing container.
Facilitates easier debugging
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Oracle in Docker Store
5
1 of 8 results for Oracle. Clear search
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Plan
Code
Build
Test
Release
Deploy
Operate
Monitor
DevOps
• DevOps is a culture, movement or practice that emphasizes the collaboration and communication of both software developers and other information-technology (IT) professionals while automating the process of software delivery and infrastructure changes. It aims at establishing a culture and environment where building, testing, and releasing software, can happen rapidly, frequently, and more reliably.
– Wikipedia
6
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
• Code/CI Management
– Version Management – Git
– 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
Oracle Developer Cloud Service
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Container Native
User: DevOps / SiteReliability
Engineering
Granular control
Highly scriptable
Deep introspection
Open
Portable
Cloud Native PaaS
User: Platform Developer
Limited control
Prescriptive
Limited introspection
Short/efficient onramp
affixed to environment
Enterprise Java
User: Operations
tightly controlled for consistency
uniform tooling
designed for seamlessness
Visual/Low Code
User: Line of Business
no exposure to controls
intuitive / UI based
integrated into a suite
low/no complexity
Spectrum of Users & Needs
8
Serverless
f(x)
Control vs. Ease of Use & Onboarding
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Developer Cloud Service – Webhooks Connectivity
CloudServices
On PremiseServers
Code Review
Webhooks
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Plan
Code
Build
Test
Release
Deploy
Operate
Monitor
Developer Cloud Service
• Track Issues
• Agile Project Management
• Wikis
10
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Issue Tracking
11
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Agile and Sprint Planning
12
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Agile Reports for Progress Tracking
13
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Plan
Code
Build
Test
Release
Deploy
Operate
Monitor
Developer Cloud Service
• Git Repositories
• Coding in the Cloud
• Code Review
• IDE Integration
14
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Manage Code Repositories
15
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Track Code Changes
16
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Conduct Peer Code Review and Merge Requests
17
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Plan
Code
Build
Test
Release
Deploy
Operate
Monitor
Developer Cloud Service
• Support Popular Build Frameworks
• Orchestration and Dependencies
• Build Reports and Notifications
18
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Build Dashboard
19
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Multiple Build Steps Orchestrations
20
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Multiple Build Steps Orchestrations: Invoke SQL
21
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Multiple Build Steps Orchestrations: Invoke SQL
22
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Plan
Code
Build
Test
Release
Deploy
Operate
Monitor
Developer Cloud Service
• JUnit
• Selenium
• FindBugs
• QA Deployments
23
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Test Results Dashboard
24
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Plan
Code
Build
Test
Release
Deploy
Operate
Monitor
Developer Cloud Service
• Create packages
• Direct deployment
25
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Deployment Configuration
26
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Plan
Code
Build
Test
Release
Deploy
Operate
Monitor
Oracle Cloud Services
• Easily provision deployment platforms
• Java Cloud Service
– Java EE in the Cloud
• Application Container Cloud
– Java SE, NodeJS, PHP, Ruby*, Python*
• Mobile Cloud Service– Mobile Services
• Container Cloud Service
– Docker Containers
27
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Polyglot Platform for Running any Workload
Developer CS
Mobile CS
Java CS(Java EE)
Application Container CS(Java SE & Node)Container CS
(Docker Containers)
28
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. 29
What is Wercker
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Focus Areas for Container Pipelines
30
Kubernetes
Container Pipelines is a
Kubernetes-native Platform
Cloud Platform
Natively integrate with
Kubernetes in the Cloud
Microservices & Functions
Work with microserivces and
serverless architectures
Containers
Container Pipelines is a
Docker-native Platform
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
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 © 2016, Oracle and/or its affiliates. All rights reserved.
Container Pipelines (Wercker) & Docker Lifecycle Managementeasy to assemble and automated builds to registries and production-grade clusters
32
Git
Build Push to Registry
PushTest
Deploy to
Orchestration Scheduler
Deploy
Registry
OSS CLI Pipeline/Build Console
Workflow Automation
Oracle, Pivotal,
Amazon, Google …
Chatbot Integration
with Slack (Walterbot)
Copyright © 2015 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
App. Container CS
JavaNode.js PHP
Any container
Container CSDIY
Oracle Confidential – Restricted
Compute Cloud Service
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Oracle Container Engine & Container Registry Architecture
CI/CD
Registry
AD 1 AD 3
Node Pool
K8S Cluster
Node Pool
BM
VM
VCN
PV
AD 2Exposed Kubernetes
Service
Copyright © 2015 Oracle and/or its affiliates. All rights reserved. |
Oracle Container Native MicroservicesAn 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 Broker
Enterprise Class:
Istio Service Mesh & Infrastructure
ServiceMesh
API Registry
Pre-Integrated, Curated Plaform
CNCF + Istio
Developer Friendly:
Opinionated But Open
APIREST
Ops
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Microservices Stack
Oracle Confidential – Internal/Restricted/Highly Restricted 37
COMMON API AND SERVICES
CI/
CD
MANAGED KUBERNETES
JAVA MICRO SERVICES
DIA
GN
OST
ICS
• We start with a curated package of OSS laid on top of our managed K8S service:
• Diagnostics and Operations (Zipkin/Jaeger, Vizceral)
• Istio (Service mesh)
• Open Service Broker API (Linux Foundation), which is the foundation of the K8s service catalog
• API Catalog (Apiary)
• Event Manager (Kafka 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. |
Architectural and Functional Overview
Confidential – Oracle Internal/Restricted/Highly Restricted 38
OKE
ISTIOService Mesh/ISTIO
ISTIO
ISTIOService Broker
Kubernetes
API Registry +
ISTIOCLI – kubectl -oms ISTIODeveloper Console
ISTIO
Dia
gno
stic
s/M
on
ito
rin
g
ISTIO
DeveloperCloud
Prometheus
• Publish and Consume APIs and management• Generate client libraries• Mock services
• Registration of cloud services and user services APIs and Fn
• Configuration of service access
▪ Routing and Discover(LB, A/B etc.)▪ Resiliency (Circuit Breaker etc.)▪ Service monitoring and diagnostics▪ Inter Service Security and Policies
▪ Cluster Management/HA▪ Orchestration▪ Deployment strategies
ISTIOEvent Manager
Register Eventproviders and consumers
CatalogService
OrderService
FooService
High ProductivityService/API first
High ControlBuild on native K8s
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
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
Confidential – Oracle Internal/Restricted/Highly Restricted 39
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
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.
Oracle Confidential - Restricted 40
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
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 FDK
Fn ServerFn
Flow
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Container Native Serverless - Functions as Servicea functions (triggered events) based platform
• Polyglot function platform with Java Optimizations
• Open Source
• Container Native with Local Dev Experience
• Cloud and Scheduler Neutral
Function
CI/CD
Local
Develop
Fn Flow
Polyglot Function Engine
fn fn fn fn
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 © 2015, Oracle and/or its affiliates. All rights reserved. |
Oracle Database ArchitectureRequires memory, processes and database files
45
System Resources
GL OE AP
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
APOEGL
New Multitenant ArchitectureMemory and processes required at container level only
46
System Resources
GL OE AP
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
GL OE AP
Oracle Database ArchitectureMore efficient utilization of system resources
47
System Resources
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
A Pluggable Database Is a Portable Database
48
Unplugging a PDB and plugging it in
GL OE AP
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 metadata
• An unplugged PDB carries with it lineage, opatch, encryption key info etc.
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Unplug / Plug – Orchestration Performed Using SQLYou already know how to use it!
alter pluggable database OE
unplug into '/u01/app/oracle/oradata/…/oe.xml'
create pluggable database My_PDB
using '/u01/app/oracle/oradata/…/oe.xml'
Plug
Unplug
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. | Public 50
Reduced CapEx & OpEx, Increased Agility, Easy to Adopt and Use
Advantages of Multitenant Architecture
GL OE
APSelf-contained PDB for each application• 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• More applications per serverComplementary to VMs
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Consolidation Performance Test HighlightsOracle Multitenant Achieves Higher Performance with Less Resource Requirements
Oracle Confidential – Internal/Restricted/Highly Restricted 51
0
50000
100000
150000
non-CDBs PDBs
Total Throughput252 PDBs vs. non-CDBs
tps
0
100
200
300
non-CDBs PDBs
Number of Supported Database(same Throughput per Database)
databases
0
500
1000
1500
2000
non-CDBs PDBs
Memory Footprint per Database(not including Buffer Cache)
MB
0
50
100
150
200
non-CDBs PDBs
Number of Cores Requiredto support 252 Databases
cores
0
100000
200000
300000
400000
non-CDBs PDBs
Storage IOPS Requiredto support 252 Databases
IOPS
80% higher aggregate
throughput
50% more databases
consolidated
8x reduction in memory footprint
64 fewer cores needed 3x reduction in storage IOPS
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Manage Many Databases as OneBackup databases as one; recover at pluggable database Level
Public 52
GL OE AP
Point-in-time recovery at pluggable database level
One Backup
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Manage Many Databases as One with MultitenantOne standby database covers all pluggable databases
53
Production Container Database
GL OE AP GL OE
Standby Container Database
AP
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Simplified Patching and UpgradesApply changes once, all pluggable databases updated
54
GL OE AP
In-place
12.1 12.1 12.112.X 12.X 12.X
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Expand cluster to support flexible consolidation model
Improved Agility With Changing Workloads
Services
Single SGA perCDB Instance
Node 1
CDB Instance 1
Node 2
CDB Instance 2
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Node 1
Expand cluster to support flexible consolidation model
Improved Agility With Changing Workloads
Node 3
CDB Instance 3CDB Instance 1
Node 2
CDB Instance 2
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Multitenant for ProvisioningFast cloning of PDBs
57
GL OE AP
GL-2GL-1 AP-1 AP-2 PO-1
PO
• PDBs can be cloned from remote CDBs
• PDBs can be cloned from within the same CDB
• Thinly provision snapshotclones in seconds
• PDBs can be cloned from non-CDBs
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Multitenant for Development and TestingFast, flexible copy and snapshot of pluggable databases
Development Container Database
58
Production Container Database
GL OE APGL
MasterGL
(Dev2)GL
(Dev1)
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
SILVER
BRONZE
GOLD
Unprecedented Agility with Portable PluggabilityPDB migrates through SLAs as it becomes more mission critical
59
RAC, Data Guard
RAC
Backups
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
0
5
10
15
20
25
Non CDB PDB Snapshot Clone
Time Taken to Provision New Database
Multitenant Provides Agility for New ProjectsFast Provisioning, Snapshot Clones
60
GL-2GL GL-3
OriginalPDB Clone
of PDBSnapshot
Clone of PDB
New
SeedPDB New PDB
From Seed
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Traditional File SystemFull copy duplicates all data blocks
my_file
my_file_copy
cp my_file my_file_copy
• File is collection of data blocks
• And headers
• Copy duplicates header & data blocks
– Effective & simple, but expensive!
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Copy-on-Write Basics
• 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
Much more efficient storage of substantially similar filesmy_file
my_file_copy
cp my_file my_file_copy
Copyright © 2015, Oracle and/or its affiliates. All rights reserved. |
Cloning and creating PDBsRich and rapid provisioning capability delivered with the ease of SQL
create pluggable database PDB2 from PDB1@CDB2
Provision a remote full clone
Provision a new PDB
create pluggable database PDB2 from PDB1
snapshot copy
Thinly provision a local snapshot clone
create pluggable database PDB3
admin user PDB_Admin identified by p
roles = (DBA)
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 © 2014 Oracle and/or its affiliates. All rights reserved. |
Oracle CloudDevOps
Enrique Martin CasadoPresales Director