Upload
duongbao
View
219
Download
3
Embed Size (px)
Citation preview
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
DevOps / Cloud Native Deliver Your Ideas NOW
Andreas Postl Principal Sales Consultant MiddlewarePaaS Ambassador
September 4th 2017
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Software Is Overtaking the World
Marc Andreessen, Netscape Founder , VC Andreessen Horowitz
US Venture Capitalist firms invest $ 20 B / yearin XaaS start-ups to disrupt business models
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Oracle Confidential – Internal/Restricted/Highly Restricted 3
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Better Segment SoftwareDifferent software has different needs
Find the Next Business
Run the Current Business
Run the Back Office
New IT
Old IT
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Different Types of Software Requires Different PracticesA payroll system should be treated very different from a customer-facing .com
Innovation Software - Find the Next Business
Differentiation Software - Run Current Business
Core Software - Keep the Lights On
Release Hourly
Fail Early
Agile
Business-centric
Top Line Growth
Bespoke Software
Product-based
Release Quarterly
Fail Late
Waterfall
IT-centric
Bottom Line Savings
Packaged Software
Project-based
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Copyright © 2015 Oracle and/or its affiliates. All rights reserved.
Change How To Procure Software
6
Co
mp
etit
ive
Dif
fere
nti
atio
n
Buy as SaaS Build
Innovation Software
Differentiation Software
Develo
per-led
Pro
curem
ent
Core Software
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Multi-Dimensional Evolution of Computing
7
Development Process Application Architecture Deployment and Packaging Application Infrastructure
Waterfall Monolithic Physical Server Datacenter
Agile N-Tier Virtual Servers Hosted
DevOps Microservices Containers Cloud
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Microservices• Minimal Function• Service Discovery• API-first
3 • Polyglot• Choreography• Loose Coupling
DevOps• Automated Provisioning• Automated Setup• Continuous Integration
1 • Continuous Delivery• Automated Testing• Agile• Culture Change
* as a Service• Consume Infrastructure and
Software as a Service• Fault Tolerant by Definition
2 • Auto-scaling• Infinite Elasticity
What is Cloud Native?A new style of architecture
Distributed Computing• Multi-master• Many Data Centers• Many Fault Domains
4 • Many Regions• Global Server Load Balancing• Replication
Co
mp
eten
cy
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Tenet #1 - DevOps
9
DevOps seeks to solve this
It's not my machines, it's your code!
It's not my code, it's your machines!
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Ongoing Operations is Now a Shared ResponsibilityIn perpetuity. No more “throwing it over the wall”
New GoalAdd new features and keep the system stable, fast and available
DevelopersPaid to add new features
that may break things
OperationsPaid to keep system
available, stable, and fast
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 11
New goal:Deliver new features and keep the system stable and fast. Get structured feedback data !!!
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Prerequisite #1 - DevOpsRequires changes throughout your entire organization
Culture Technology
Respect
Discuss
Avoid Blaming
“Done” Means Released
Infra as Code
Shared Version Control
One Step Build/Deploy
Don’t Fix Anything
• Dev respect for ops• Ops respect for dev
• Ops should be in dev discussions• Dev should be in ops discussions• Shared runbooks
• No fingerpointing!• Everyone should have some
culpability
• Dev’s responsibility shouldn’t ever end – production support required
• “Throwing it over the wall” is dead
• Don’t build envs by hand• Scripts checked in and
managed as src
• Single system• Ship trunk• Enable features through flags
• One button build/deploy• If verification fails, stop and
alert or take action
• If something breaks, re-deploy. Don’t fix
• Fix environment setup scripts
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Tenet #2: Consume Things as a ServiceRequires fundamental shift in how applications are built
13
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Your CodeHighly innovative, differentiated, etc
Configuration
Caching
Load Balancing Eventing
Logging
Monitoring
Database
NoSQLState
Messaging
3rd Party Cloud – On or Off Premise
Building Block
Building Block
Building Block
Building Block
Building Block
Building Block
Building Block
Building Block
Building Block
Building Block
Building Block
Building Block
Where you’re not differentiating, consume building blocks from 3rd party cloud vendor
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 14
Tenet #3: Enabling the Move from Monolithic Apps to MicroservicesModern Cloud Native, Agile, Polyglot, DevOps Driven Application Development
Traditional Monolithic Architecture
User Interface
Business Layer
Data Interface Microservice
Microservice Architecture
Microservice Microservice
Microservice UIMicroservice UI
Independent services with communication using REST APIs/HTTP
Single Deployment
EntitySingle Deployment
Entity
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Three Key Rules to Microservices
Don’t share a datasource across microservices
Can release each microservice independently
Can build a microservice independently
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Everyone Should Be Able to Build Anything At Any Time
• Manual one button build/deploy
• Scheduled builds - every day, every week, etc
• Builds triggered by code check ins
• If post-build validation fails, report it
Set it and forget it
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Stop Manually Fixing ProblemsIn no case should an administrator fix issues by hand. Should be 100% automated
Auto-scaling will automatically launch a new container on new hardware as load dictates
Hardware FailureExample: motherboard failed
Auto-scaling will automatically launch new containers as load dictates
Network FailureExample: switch failed
Health checking should fail and the container will be culled. Auto-scaling will automatically launch a new container as load dictates
System Software FailureExample: kernel panic
Application Software FailureExample: bad file permissions
Fix the source (your application, your container, your Dockerfile, etc) and re-deploy your entire application
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Owners Support in Production
Everything is Owned by a Small Team
Owners Implement
Owners Architect
Owners Care
Owners Can Fix Things
Ownership is Key to the Success of Cloud NativeIn traditional enterprises, any one individual has very low ownership of anything. It’s classic tragedy of the commons
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Do One Thing and Do It Well
Focus on Business Capabilities
Avoid Inter-dependencies
Start Managing Small, Vertical TeamsCan have hundreds of microservices for a larger application
Large
Medium
Small
11-15 PeopleExample: Order Microservice
4-10 PeopleExample: Inventory Microservice
1-3 PeopleExample: Order Status Microservice
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Remove All Hard-coded IPs, Host Names, etc
20
Use service discovery, DNS, etc instead. Everything should be dynamic
Copyright © 2016, Oracle and/or its affiliates. All rights reserved.
Teams Should Not Have 100% Freedom
21
Standardize where it makes sense. Be pragmatic
Custom Code
Communication Protocol
Data Format
Infrastructure
Datastore
Sou
rce
Co
ntr
ol
Co
nfi
gura
tio
n M
anag
emen
t
Dev
elo
pm
ent
Too
ling
Alerting
Monitoring
Standardize on One
Offer a Menu of 2-3 Options
Team Has Complete Choice
Programming Language
Messaging
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Why Containers?
22
• Quickly create ready-to-run packaged applications, low cost deployment and replay
• Automate testing, integration, packaging
• Reduce / eliminate platform compatibility issues (“It works in dev!”)
• Support next gen applications (microservices)
• Improve speed and frequency of releases, reliability of deployments
• Makes app lifecycle efficient, consistent and repeatable – configure once, run many times
• Eliminate environment inconsistencies between development, test, production
• Improve production application resiliency and scale out / in on demand
A container is packaged as an entire runtime environment:the service/app plus all dependencies, libraries, & configuration files needed to run it
Portable across environments & lightweight (share the OS)
Developers care because: IT cares because:
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Virtual Machines vs. Containers
Virtual Machines● Each virtual machine (VM)
includes the app, the necessary binaries and libraries and an entire guest operating system
Containers● Containers include the app & all of its dependencies,
but share the kernel with other containers. ● Run as an isolated process in userspace on the host OS● Not tied to any specific infrastructure – containers run
on any computer, infrastructure and cloud.
VMs
Containers
23
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Docker Architecture
24
• Client – Command line interface (CLI) for communicating with the host
• Daemon – server process that manages Docker objects
• Image – hierarchy of files build by docker
• Container- runnable instance of an image
• Registry – external storage for Images
Copyright © 2016, Oracle and/or its affiliates. All rights reserved. |
Oracle Cloud and Docker Containers
Container CSCompute CS Application Container CS
DIY Container Management
Oracle Managed Container Service
Docker-based Cloud Polyglot Platform
IaaS CaaS PaaS
Coming Soon!
25
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 26
Oracle Container Cloud ServiceManaging Containers Easily on Oracle Public Cloud
Cloud & Container Native
Enterprise Operations Ready
Built-In Collaboration
• Docker Compatible
• One-Click Application Stack Deployment
• Registry Integration
• Build CI/CD Pipelines
• Operations Dashboards
• Container Health Checks
• Service Scaling
• Orchestration & Scheduling Policies
• Resource Pools for Dev, Test, Prod
• Run, Deploy Oracle Certified Docker Images
• Quickstart, Best Practices Included
• Integration REST API
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Oracle Container Cloud Service Architecture
27
OCCS Manager Node
OCCS Worker Node OCCS Worker Node OCCS Worker Node
Image Registry (Public/Private)SSH Access / Console UI / REST API
OCCS Instance
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Container CS Provides Out of the Box Functionality
● Create Instances as Needed
● Define Resource Pools
● Add Private Registries
● Edit Create New Services
● Compose Application Stacks
● Deploy Stacks with 1 Click
● Automated Deployment
● Multi-Host, Easy Scale Out
● Built in Service Discovery
● Integrated Health Checks
● Unified Dashboard
● Monitoring and Auditing
Configuration
Management
Application
Deployment
Container
Orchestration
Operations
Management
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 29Copyright © 2016, Oracle and/or its affiliates. All rights reserved. | 29
Oracle acquires WerckerCI/CD for Docker Containers – oracle.com/wercker
Git
Build Push to Registry
PushTest
Deploy to Scheduler
Deploy
Registry
OSS CLI Pipeline/Build ConsoleWorkflow Automation
Oracle, On Premise, Amazon, Azure, Google …
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Plan
Code
Build
Test
Release
Deploy
Operate
Monitor
DevOps Cycle
Seen in the DevOps Sales Play –featuring:
• Oracle Developer Cloud Service
– Now Includes Docker Image Build Function
• Oracle Container Cloud Service
– Deploy, Operate, Monitor
Dev CSContainer CS
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Support for Docker Running on Oracle Linux (Doc ID 1921163.1)• Oracle support is limited to the version of Docker built by and downloaded from Oracle.
Support is not provided for the upstream binary packages downloaded from the upstream Docker site.
• Oracle support for Docker is limited to customers with either Basic or Premier Oracle Linux Support Subscriptions.
• Oracle only provides Docker server binary packages for Oracle Linux 6 and Oracle Linux 7 (x86_64). Oracle only provides support for Docker with the Unbreakable Enterprise Kernel Release 4 (UEK4), identified by a kernel version of "4.1" or newer.
• Oracle support is limited to severity 2 service requests and lower. Severity 1 service requests will not be accepted for Docker.
• Support is limited to assistance with the initial installation of Docker and subsequent configuration of Docker to enable downloading, creation and running of Dockerizedapplications.
42
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Support for Oracle Database Running on Docker (Doc ID 2216342.1)
• Oracle plans to certify the latest versions of Oracle Database to run in Docker containers which are built and supported with Oracle Linux and UEK4 as the host.
• Additionally, Oracle will support customers running Oracle Database (single instance) in Docker containers running on Oracle Linux 7 or Red Hat Enterprise Linux 7. Docker binaries are available in the Addons channel for Oracle Linux. Details on Installation can be found in Chapter 2 of the Oracle Linux Docker Users Guide.
• Oracle Database running in a Real Application Clusters (RAC) configuration in Docker containers is NOT supported.
UPDATE (August ‘17): Oracle RAC for Docker early adaptors announced
43
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Oracle Database Images from GitHub
https://github.com/oracle/docker-images/tree/master/OracleDatabase
44
• Oracle DB 12cR2 (12.2.0.1) EE /SE
• Oracle DB 12cR1 (12.1.0.2) EE / SE
• Oracle DB 11gR2 (11.2.0.2) XE
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Oracle Database Images from Docker Store
https://store.docker.com/search?q=oracle&source=verified&type=image
45