oracle openworld 2019...statements in this presentation relating to oracle’s future plans,...

43
Oracle OpenWorld 2019 SAN FRANCISCO Copyright © 2019 Oracle and/or its affiliates.

Upload: others

Post on 12-Jul-2020

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Oracle OpenWorld 2019S A N F R A N C I S C O

Copyright © 2019 Oracle and/or its affiliates.

Page 2: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Copyright © 2019 Oracle and/or its affiliates.

Microservices Essentials: Kubernetes and Ecosystem, Data, and Transaction Patterns [DEV1730]

September 2019

Kuassi Mensah, Director of Product Management, Oracle (@kmensah)Paul Parkinson, Consultant Member Technical Staff (@paulparkinson)

Page 3: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, timing, and pricing of any features or functionality described for Oracle’s products may change and remains at the sole discretion of Oracle Corporation.

Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and are subject to material risks and uncertainties. A detailed discussion of these factors and other risks that affect our business is contained in Oracle’s Securities and Exchange Commission (SEC) filings, including our most recent reports on Form 10-K and Form 10-Q under the heading “Risk Factors.” These filings are available on the SEC’s website or on Oracle’s website at http://www.oracle.com/investor. All information in this presentation is current as of September 2019 and Oracle undertakes no duty to update any statement in light of new information or future events.

Safe Harbor

Copyright © 2019 Oracle and/or its affiliates.

Page 4: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

• Announce• Cloud Native Platform: Containers, Kubernetes, and MicroServices• Data Management: Pitfalls and Best Practices• Transaction Management: Pitfalls and Best Practices • Demo

Copyright © 2019 Oracle and/or its affiliates.

Agenda

Page 5: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

https://repo1.maven.org/maven2/com/oracle/ojdbc/

<groupId>com.oracle.ojdbc</groupId><artifactId>ojdbc8</artifactId><version>19.3.0.0</version>

Copyright © 2019 Oracle and/or its affiliates.

Oracle JDBC drivers 19.3 on Central Maven

https://t.co/MUmHZD6YSK

Page 6: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Confidential – Oracle Internal/Restricted/Highly Restricted

Cloud Native Platform: Containers, Kubernetes, and MicroServices

Page 7: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

The Cloud Native Computing Foundation

Page 8: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Kubernetes / Microservices

Ideal for microservices…

• Pods, a runnable unit of work (container images developed by different teams into a single deployable unit); usually holds 1 or 2 containers

• Load balancing, naming and discovery isolate one microservice from another

• Namespaces provide isolation and access control so that each microservice can control the degree to which other services interact with it.

• Platform services tells the rest of the Kubernetes environment what services your application provides.

• Api-registry: tracks of all available services and the resources they expose.

Page 9: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Oracle Kubernetes EngineRoadmap: Enterprise Container Platform

9

CI/CD

OKE Cluster

OCI Registry

Pod

Envoy

Pod

Envoy

Pod

Envoy

Marketplace

Service BrokersPod

Envoy

OCI Cloud Services

ATP/ADW

Events

Streaming

Monitoring

Logging

Notifications

Container Pipelines,Jenkins X,

API Gateway

Compliance/Governance/Auditing/Policy Mgt/Scanning/Signing

Istio Pilot Mixer Auth Telemetry Adapter

FluentD

Kibana/Grafana

Prometheus

Functions

Jaeger

Page 10: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

OCI Service Broker for Kubernetes

Oracle Cloud Infrastructure

Add Service Broker to your Kubernetes Cluster

Use kubectl to provision and bind to OCI services

>kubectl

ATP

Secret

>kubectl

SecretApp

Use kubectl to deploy apps that use the OCI services

ADWStreamObj Storage…

Page 11: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Standard Cloud EventsExample {

"cloudEventsVersion" : "0.1","eventType" : "com.example.someevent","source" : "/mycontext","eventID" : "A234-1234-1234","eventTime" : "2018-04-05T17:31:00Z","comExampleExtension1" : "value","comExampleExtension2" : {

"otherValue": 5},"contentType" : "text/xml","data" : "<much wow=\"xml\"/>"

}

11

Page 12: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Microservices Platform & Service MeshWhile Kubernetes takes care of a lot, there is still a lot left up to the developerThe need for:

• Strong and Clear API contract• Service Discovery• Resilient Networking• Tracing and Log Correlation Across Services• Traffic Flow Diagnostics• Secure Communication

Confidential – Oracle Internal/Restricted/Highly Restricted12

pod

containercontainer

pod

containercontainer

pod

containercontainer

Page 13: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Microservices Platform & Service Mesh

Confidential – Oracle Internal/Restricted/Highly Restricted13

Instead of a direct communication model... Sidecar is inserted for every pod/service

Page 14: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Kiali- Topology, health, workloads, uses opentracing/Jaeger for telemetry/tracing

14

Page 15: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Jaeger

- Tracing across full call path of activity- Trace from WebLogic to Helidon MP to Helidon SE (soon to Oracle DB and AQ as well)…

15

Page 16: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Jaeger

- Tracing across full call path of activity- Trace span showing tags for performance and baggage for saga id propagation…

16

Page 17: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Confidential – Oracle Internal/Restricted/Highly Restricted

Data Management: Pitfalls and Best Practices

Page 18: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Confidential – Oracle Internal/Restricted/Highly Restricted

18

• Areas where certain businessprocesses are implemented

• Logical boundaries within which terms have non-ambiguous meaning

• Design microservices against bounded contexts

• Best Practices: Split the monolithic database along the lines of the boundedcontexts

• However, databases might be shared across services

Domain Driven Design -- Bounded Contexts

Page 19: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Microservices Data Management Patterns

CQRSAccess through public APIs onlyAPI Composition (Queries)

Front end API Composer queries other services and performs an in-memory joinDatabase per service

PDBs, Shards, PDB ShardingShared database

Tables, Schemas, EditionsPolyglot Persistence

single modelmulti-model database

Confidential – Oracle Internal/Restricted/Highly Restricted

19

Page 20: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Provisioning of Autonomous Database Service Broker adds connection info for cloud services into cluster via Kubernetes SecretsMicroservice deployment is written to consume SecretThis allows service to be deployed in different environments without any code changes, and pick up the appropriate DB connection automaticallyIf using Helidon MP datasource reference can be auto-injected in service via microprofile-config.properties .

Eg, the following will inject @Named("atp1") DataSource:javax.sql.DataSource.atp1.dataSourceClassName= xxxxxjavax.sql.DataSource.atp1.dataSource.url = xxxxxjavax.sql.DataSource.atp1.dataSource.user = xxxxxjavax.sql.DataSource.atp1.dataSource.password = xxxxx

Deployment yaml:env:- name: javax.sql.DataSource.atp1.dataSource.uservalueFrom:secretKeyRef:name: paul-atp-demokey: user_name

- name: javax.sql.DataSource.atp1.dataSource.passwordvalueFrom:secretKeyRef:name: atp-user-credkey: password

- name: javax.sql.DataSource.atp1.dataSource.urlvalue: "jdbc:oracle:thin:@pauldb_HIGH?TNS_ADMIN=/db-

demo/creds”- name: WALLET_PWDvalueFrom:secretKeyRef:name: atp-user-credkey: walletPassword

volumeMounts:- name: credsmountPath: /db-demo/creds

volumes:request.- name: creds-rawsecret:

secretName : paul-atp-demo20

Page 21: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Multi Model Data: Two Technologies Approaches

Single-model database engines(One database per data model)

Multi-model database engines(Single database for all data models)

Relational Database

Key / ValueStore Graphs

Hierarchies(JSON/XML)

Free Text and Docs(PDF, DOC,…)

Relational data

Key / Value Store

Hierarchies (JSON/XML)

Graphs

Free Text and Docs(PDF, DOC,…)Spatial Data Spatial data

+ + + Multimedia, expressions, event stores, domain specific data, …

Who does the Integratio

n???

Who does the multit

ude of administratio

n

tasks???

Who is prepared to

use XA frequently???

Page 22: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

PDB Sharding for Microservices

• PDB Sharding in DB 19c

• Each PDB can be sharded across multiple CDBs

• Provides fault isolation and geo-distribution for

microservices

• Loss of an entire CDB makes only part of a PDB

unavailable

• Also allows each microservices to scale its PDB

individually

• More efficient use of resources compared to scaling a

monolithic application (CDB).

22

Scalability, fault isolation and geo-distribution Shard-1 Shard-1Shard-1

Shard-2 Shard-2

Shard-3

Reco

mm

Product

Catalog

Product

Catalog

Product

Catalog

Check

Out

Check

Out

Page 23: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Copyright © 2019 Oracle and/or its affiliates.

Asynchronous and Reactive Database Access for MicroServices

Page 24: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

UserJavaCode

Reactive Streams Extension Oracle

JDBC

3rd party Reactive Streams Library

Async call with non-blocking backpressure

operators (map, reduce, filters), concurrency modeling, monitoring, tracing

Implements Java SE reactive stream interface (Flow)

Full Reactive Streams

Sync JDBC calls

Database Access with Oracle JDBC

Copyright © 2019 Oracle and/or its affiliates.

Page 25: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Intelligent Schema Refactoring (DB Future)

• Tool to help split monolithic database along lines of sub-domains or bounded contexts– Capture information while workload is running– Generates a Graph of hotspots and data island

• Help developers optimally factor the schema of a monolithic application into separate datasets that can be stored in different PDBs

Confidential – Gartner SAS Day 7/18/2019

25

Page 26: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Confidential – Oracle Internal/Restricted/Highly Restricted

Transaction Management: Pitfalls and Best Practices

Page 27: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Confidential – Oracle Internal/Restricted/Highly Restricted

27

• Best Practices:perform local transactions within a bounded context

• However, transactions might cross service boundaries

Transactions Design

Page 28: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Communication across microservices

Confidential – Oracle Internal/Restricted/Highly Restricted

28

• Synchronous • REST or gRPC based

• Asynchronous • Events• Pub/Sub, Notification• Loose coupling• Immutability• State transfer• Event Sourcing

Page 29: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Event SourcingMicroservices interact by ”sourcing events” in/out from the Event store via the Event Broker• The Event store is the single source of truth (Kafka, vanilla Oracle DB, or AQ in future)

• Producers: log events in the Event store then publish a notification

• Consumers: notified when Events are published then “read” the Event store

Web Server Inventory ServiceOrders Service

Publish & Persist Event #1

Notified & ConsumeEvent #1

Event Broker & Event Store

Persist Statechange

Event #1

Page 30: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Command Query Responsibility Segregation - CQRS

• Commands: produce an aggregate view from events into a Table or Materialized View or In-Memory

• Queries: Retrieve Data from the aggregate view • Often combined with (and required for) Event Sourcing

Web ServerShipping Service

Orders ServiceCommand

Query

Materialized views or in-memory

Event broker & Event Store

Page 31: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Atomicity of Persisting Events and Database States

Several Techniques

1. Use db table as message queuemanually re-inventing AQ

2. Outbox tableTail db transaction log and publish each message/event inserted into the outbox to the message broker.

3. Oracle Advanced Queue (AQ)

Confidential – Oracle Internal/Restricted/Highly Restricted

31

Orders Service

Publish & Persist Event #1

Persist Statechange

Event #1

Page 32: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

The Outbox Approach

Event Store

µServiceInsert

UpdateDelete

Outbox

The system is complex

Mine the Tx log and publish an event

Insert pseudo eventinto OUTBOX table

Tables

Page 33: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

The AQ ApproachµService

InsertUpdateDelete

Consume & Publish Events

AQ

AQ is one type of event store.

Everything under a single local Tx.

AQ can communicate with other event stores using (exactly once) propagation

The system is simpleEvents can have rich data structures

Tables

Page 34: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Oracle Database AQ Support for Microservices• Queue operations and DML Data and message in the same local transaction• Sharded Queues furnish high scalability• Client initiated notification• Handles large message backlogs• Queue level access privileges (enqueue, dequeue) supports CQRS • High Availability and Disaster Recovery: Transparent Application Continuity• 16 year history

Page 35: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Business Transactions across Microservices

Distributed Transactions that span multiple microservices• E.g., Booking a trip include: flight, hotel, car, shows

• Microservice A calls B that calls C. • The workflow or business transaction commits only when C completes

• How do you undo A & B should C fail?• Traditional two-phase COMMIT TX is an anti-pattern with MicroServices• Each service commits individually (locally): how to ensure consistency?

Page 36: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

SAGA Pattern

Confidential – Oracle Internal/Restricted/Highly Restricted

36

Event Store

T1 T3T2

PersistEvent

“A saga is a sequence of local transactions.

Each local transaction updates the state (database) and publishes a message or event to trigger the next local transaction in the saga.

If a local transaction fails because it violates a business rule then the saga executes a series of compensating transactions that undo the changes that were made by the preceding local transactions.”

https://microservices.io/patterns/data/saga.html

Consume Event

PersistState

PersistEvent

PersistState

PersistState

Consume Event

PersistEvent

Start SAGA

EndSAGA

Page 37: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

SAGA Consistency

Two approaches for compensating failed member(s) of a distributed Tx• Choreography

• The services interact with each other to coordinate well known/defined activitye.g., the inventory service fails an order from the order service when the order cannot be

fulfilled • Orchestration

• An orchestrator is used to coordinate the activity; all messages are passed through it• The Business Process Management and Notation (BPMN) is an example of a mature

orchestration.

Compensation functions could be complex/error-prone; what about automating these?

Page 38: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

SAGA: Automating Compensation & Escrow• Automating Compensation

• Use ‘naturally existing operations: Add/subtract x• SQL UPDATE can be used to specify arithmetic functions

• +/- are inverse to each other and are commutative• Multiple sagas can update the same record in parallel• Compensation can be automated

• Constraints: Escrow Technology • The items in stock, balance of an account, … have to be >= 0• The credit limit is $x

Confidential – Oracle Internal/Restricted/Highly Restricted

38

Page 39: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Confidential – Oracle Internal/Restricted/Highly Restricted

Demo

Page 40: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Shopping Demo - Architectural Diagram

Oracle Confidential – Internal/Restricted/Highly Restricted

40

HTTP Web App

Add to

Cart

Order Java/Helidon MP

Shopping Cart.NET, ODP.Net

InventoryPython, cx_oracle

Event Broker & Store

91

2 3

4 87Frontend Place o

rder

Order s

tatu

s

Add to Inventory

n Events sequence

• Java/Helidon, JDBC

• .NET, ODP.Net

• Python, cx_oracle

• AQ Events bw Order, Inventory, and Supplier

• REST calls between the Frontend, Shopping cart, Order, and Supplier

SupplierJava/Helidon SE

510

6

Page 41: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Our Other Sessions Today

• DEV 4692: A Database Proxy for Transparent HA, Performance, Routing, and Security• 9/19 at 12:15PM Moscone South- Room 313

• CON6865: Exploring the Multicloud: Working with Azure and Oracle Autonomous Database• 9/19 at 1:15PM, Moscone South – Room 209

• HOL4650 : Build a Stateful Microservices with a Java library, Helidon, and Kubernetes• 9/19 at 1:30PM, Moscone West – Room 3019

Copyright © 2019 Oracle and/or its affiliates.

Page 42: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Thank You

Kuassi Mensah@kmensah

Page 43: Oracle OpenWorld 2019...Statements in this presentation relating to Oracle’s future plans, expectations, beliefs, intentions and prospects are “forward-looking statements” and

Q and A