50
Soaring through the Clouds Live Oracle Public Cloud PaaS demo By the ACE Director Cloud Team Oracle OpenWorld 2016 September 20th, San Francisco

Soaring Across the Cloud (Oracle OpenWorld 2016)

Embed Size (px)

Citation preview

Page 1: Soaring Across the Cloud (Oracle OpenWorld 2016)

Soaring through the CloudsLive Oracle Public Cloud PaaS demoBy the ACE Director Cloud Team

Oracle OpenWorld 2016September 20th, San Francisco

Page 2: Soaring Across the Cloud (Oracle OpenWorld 2016)

Challenge

• Do a live and integrated demo of as many Oracle Public PaaS cloud services as possible

ICSDoc CS

PCS JCS

OSN

Sites CS

DBaaS

SOA CS

ACC

MCS

IoT CS

Storage CS Compute

CS

Page 3: Soaring Across the Cloud (Oracle OpenWorld 2016)

The Team

• Distributed– Three countries, Five partners, Five Locations– The Cloud is omnipresent• except when there is a form of outage

Page 4: Soaring Across the Cloud (Oracle OpenWorld 2016)

Story Line to create a credible flow across the clouds

Oracle OpenWorld

2016

Evaluate Proposal

Analyze Twitter traffic & Voting Machines

Publish Approved Proposals on Web & App

Page 6: Soaring Across the Cloud (Oracle OpenWorld 2016)

audience

IoT CS

PCS

Doc CS

SOA CS

DBaaS

MCS

JET on Node.js on Application Container CS

ACC

OSN

Real “Things” (Pis, Arduino’s, …)

Collect and analyze audience input; forward findings to

REST service on ICS

Run human workflow based on suggested artist;

approve/reject, add image (on Doc CS) and

description; discuss on OSN; forward outcome to service

on ICS

Expose Rich, Responsive, Mobile enabled User Interface that contains

the proposed artist with some enrichment, based on REST APIs

(exposed from MCS)

Publish REST/JSON APIs that expose data on proposed artists including

the selected image (based on SOAP services on SOA CS)

Expose SOAP API [for ICS to invoke] to register a proposed artist and a supporting image; record

artist details persistently [with some enrichment retrieved from external services]; publish Tweet

about new proposal

ICS

Sites CS

Danilo

Lonneke

Wilfred

Mark

Lucas

Expose SOAP and REST services to facilitate

inetgration (from IoT CS to PCS, from PCS to SOA CS and from SOA CS to

Twitter)

Page 7: Soaring Across the Cloud (Oracle OpenWorld 2016)

All the cloud services involved – and how they are connected

Storage

Compute

DBaaS Storage

Compute

DBaaS

JCS

SOA CS

Storage

Compute

ACCICS

MCS

Doc CSPCS

Storage

Compute

IoT CS

OSN Sites CS

ACC

US2

EMEA2

Page 8: Soaring Across the Cloud (Oracle OpenWorld 2016)

Identity Domain US Data Center

courtesy ofJürgen Kress

Page 9: Soaring Across the Cloud (Oracle OpenWorld 2016)

8 part article series on OTN

URL: https://community.oracle.com/docs/DOC-999311

Page 10: Soaring Across the Cloud (Oracle OpenWorld 2016)

Outline

• End to End Demo– With mandatory audience participation

• Drill Down into More Implementation Detail

– IoT CS– PCS [Doc CS, Sites CS]– ICS– MCS– [JET on] ACCS

• Touch Down

Page 11: Soaring Across the Cloud (Oracle OpenWorld 2016)

JET Web App for Proposed ActsJET Web App : bit.ly/oow16clouds

Page 12: Soaring Across the Cloud (Oracle OpenWorld 2016)

And more details…JET Web App : bit.ly/oow16clouds

Page 13: Soaring Across the Cloud (Oracle OpenWorld 2016)

MCS

SOA CS

MCSACCS

Page 14: Soaring Across the Cloud (Oracle OpenWorld 2016)

Now you tweet your Artist Proposal for OOW 2016

Use the hashtag #acecloud to get noticed by IoT CS and add your favorite artist as the second hashtag

Note: use underscore for space

JET Web App : bit.ly/oow16clouds

Page 15: Soaring Across the Cloud (Oracle OpenWorld 2016)

Step One: IoT == Internet of Tweets

ICS

PCS

IoT CS

US2

EMEA2

Page 16: Soaring Across the Cloud (Oracle OpenWorld 2016)

Tracking data flow in IoT CS

Page 17: Soaring Across the Cloud (Oracle OpenWorld 2016)

Doc CSPCS

OSN Sites CS

Content and Process

Responsive Microsite Page Built with the

authorised Image stored in DCS

Business Process receives IoT message and sends to reviewer for ennrichment

and authorisation

Doc Cloud used to store marketing images for display

in JET app and Sites Page

Social Network used to discuss the marketing image,

description and approval

Microsites: http://tinyurl.com/soaringclouds

Page 18: Soaring Across the Cloud (Oracle OpenWorld 2016)

SOA CSICS

PCS

REST(publishes a Tweet, called

from SOA CS)

SOAP(returns Y or N depending on whether a

proposal exists using SOA CS)

SOAP(calls to SOA CS to create

enriched proposal in DB; this service is to be called by PCS)

ICS is at the center of this world

IoT CS

REST(hand off artist finding in proprietary IoT CS

JSON format); forwarded to PCS

Page 19: Soaring Across the Cloud (Oracle OpenWorld 2016)

Storage

Compute

DBaaS

Storage

Compute

JCS

SOA CS Storage

Compute

ACC

ICS

DBaaS

Integration and Persistence

PCS

Page 20: Soaring Across the Cloud (Oracle OpenWorld 2016)

API activity in MCS

MCS

Storage

Compute

ACC

Page 21: Soaring Across the Cloud (Oracle OpenWorld 2016)

And exposed through the JET Web App

Page 22: Soaring Across the Cloud (Oracle OpenWorld 2016)

And published in the JET Web App

Page 23: Soaring Across the Cloud (Oracle OpenWorld 2016)

Drilling Down into the Implementation

• End to End Demo– With mandatory audience participation

• Drill Down into More Implementation Detail

– IoT CS– PCS [Doc CS, Sites CS]– ICS– MCS– [JET on] ACCS

• Touch Down

Page 24: Soaring Across the Cloud (Oracle OpenWorld 2016)

1

2

3

4

Twitter Collector

ICS

IoT CS

Page 25: Soaring Across the Cloud (Oracle OpenWorld 2016)

Connect the Device

Page 26: Soaring Across the Cloud (Oracle OpenWorld 2016)

Doc CSPCS

OSN Sites CS

Content and Process

Responsive Microsite Page Built with the

authorised Image stored in DCS

Business Process receives IoT message and sends to reviewer for ennrichment

and authorisation

Doc Cloud used to store marketing images for display

in JET app and Sites Page

Social Network used to discuss the marketing image,

description and approval

Microsites: http://tinyurl.com/soaringclouds

Page 27: Soaring Across the Cloud (Oracle OpenWorld 2016)

SOA CSICS

PCS

REST(publishes a Tweet, called

from SOA CS)

SOAP(returns Y or N depending on whether a

proposal exists using SOA CS)

SOAP(calls to SOA CS to create

enriched proposal in DB; this service is to be called by PCS)

ICS is at the center of this world

IoT CS

REST(hand off artist finding in proprietary IoT CS

JSON format); forwarded to PCS

Page 28: Soaring Across the Cloud (Oracle OpenWorld 2016)

Traces in ICS

Page 29: Soaring Across the Cloud (Oracle OpenWorld 2016)

Traces in ICS

Page 30: Soaring Across the Cloud (Oracle OpenWorld 2016)

Integration and Persistence

Storage

Compute

DBaaS

Storage

Compute

JCS

SOA CS Storage

Compute

ACC

ICS

PCSDBaaS

Page 31: Soaring Across the Cloud (Oracle OpenWorld 2016)

DBaaS

Activities in SOA CS

SOA CS

ACC

ICS

Page 32: Soaring Across the Cloud (Oracle OpenWorld 2016)

And in SOA CS

Page 33: Soaring Across the Cloud (Oracle OpenWorld 2016)

And in SOA CS

ACC

DBaaS

ICS

Page 34: Soaring Across the Cloud (Oracle OpenWorld 2016)

Architecture

MCS ActService

MCS

ACC

SOA CS

Page 35: Soaring Across the Cloud (Oracle OpenWorld 2016)

Mobile backend

Mobile back end

Act API

PlatformAPI

Act SOAP connector

/acts/acts/{id}

Proposed Acts Service

Page 36: Soaring Across the Cloud (Oracle OpenWorld 2016)

Oracle JET on ACC

MCS

Storage

Compute

ACC

JET Web App : bit.ly/oow16clouds

Slides: SoaringJetApp.slides

Page 37: Soaring Across the Cloud (Oracle OpenWorld 2016)

Touchdown

• Contrived case• Real, live demo of Oracle PaaS Services– Used for what they are good at– Integrated to work together

• By specifying clear interfaces and agreeing on each cloud’s role we could work together well– Across locations and timezones (!)

• Over the last 6 months the Oracle PaaS cloud has made great progress– Functionality, usability, stability

• We are glad to have made a contribution to the conference…

Microsites: http://tinyurl.com/soaringclouds

Page 38: Soaring Across the Cloud (Oracle OpenWorld 2016)

Backup Slides

Page 39: Soaring Across the Cloud (Oracle OpenWorld 2016)

JET Web App : bit.ly/oow16clouds

Page 40: Soaring Across the Cloud (Oracle OpenWorld 2016)

Browser invokes twitter APIREST call to nodejs which calls MCS

/mobile/custom/artistapi/acts

JET Web App :bit.ly/oow16clouds

Page 41: Soaring Across the Cloud (Oracle OpenWorld 2016)

Responsive layout -small screen /mobile/custom/artistapi/acts/678

JET Web App :bit.ly/oow16clouds

Page 42: Soaring Across the Cloud (Oracle OpenWorld 2016)

REST API: /mobile/custom/artistapi/acts

[ { "id": 661, "name": "Bruce Springsteen",

"numberOfVotes": 48, "registrationDate": "2016-03-14T11:47:48.709198+00:00"

}, ... more acts ...]

JET Web App :bit.ly/oow16clouds

Page 43: Soaring Across the Cloud (Oracle OpenWorld 2016)

REST API: /mobile/custom/artistapi/acts/661

{ "id": 661, "name": "Bruce Springsteen", "numberOfVotes": 48, "description": "Down to earth rock...", "genres": "[\"roots rock\",\"singer-songwriter\"]", "biography": "Bruce Frederick .....", "imageURL": "http://i.telegraph.co.uk/...", "discography": [ {"title": "Born In The U.S.A.", "imageURL": "..."}, ... more albums ... ]}

JET Web App :bit.ly/oow16clouds

Page 44: Soaring Across the Cloud (Oracle OpenWorld 2016)

BROWSER

NodeJS server on Application

Container Cloud Service

REST API on Mobile Cloud

Service

Adds http request headers:● oracle-mobile-backend-

id● authorization

Having the browser invoke a REST API on same server that hosts html and js prevents Cross-Origin issues

JET Web App : bit.ly/oow16clouds

Page 45: Soaring Across the Cloud (Oracle OpenWorld 2016)

{ "runtime": { "majorVersion": "0.12" }, "command": "sh start.sh"}

manifest.json

#!/bin/shunset http_proxyunset https_proxynode ./index

{ "environment": { "MCS_BACKEND_ID": "55bc25a9-...", "MCS_URL": "...us2.oraclecloud.com:443", "MCS_USER": "MCSDEM0001...", "MCS_PWD": "dy6ou5..." }}

Configuring AppContainerCS nodejsdeployment.json

start.sh

JET Web App : bit.ly/oow16clouds

Page 46: Soaring Across the Cloud (Oracle OpenWorld 2016)

index.js (nodejs code)

var express = require('express');var app = express();var request = require('request');

app.use(express.static('public'));app.use('/bower_components', express.static('bower_components'));app.use('/mobile/*', function (req, res) { var url = process.env.MCS_URL + req.originalUrl; req.pipe(request({ url: url, headers: { 'oracle-mobile-backend-id': process.env.MCS_BACKEND_ID }, auth: { user: process.env.MCS_USER , pass: process.env.MCS_PWD } })).pipe(res);});

var PORT = process.env.PORT || 3000;app.listen(PORT, function () { console.log('Example app listening on port ' + PORT + '!'); console.log('MCS backend id is ' + process.env.MCS_BACKEND_ID);});

JET Web App : bit.ly/oow16clouds

Page 47: Soaring Across the Cloud (Oracle OpenWorld 2016)

Node.js backend

index.html

drill.html drill.js

acts.html

acts.js

main.js

index.js

/public

Page 48: Soaring Across the Cloud (Oracle OpenWorld 2016)

Node.js backend

index.html

drill.html drill.js

acts.html

acts.js

details.html details.js

chart.html

chart.js

main.js

index.js

/public

Page 49: Soaring Across the Cloud (Oracle OpenWorld 2016)

Node.js backend

index.html

drill.html drill.js

acts.html

acts.js

details.html details.js

chart.html

chart.js

main.js

index.js/public

/mobile/custom/artistapi/acts/<id>/mobile/custom/artistapi/acts

MCS

Page 50: Soaring Across the Cloud (Oracle OpenWorld 2016)

Deployment

var form = new FormData();form.append('name', name);form.append('runtime', 'node');form.append('subscription', 'Hourly');form.append('manifest', fs.createReadStream('manifest.json'));form.append('deployment', fs.createReadStream('deployment.json'));form.append('archive', fs.createReadStream('frontend.zip'));formData.submit({ method: method, protocol: 'https:', host: 'apaas.us2.oraclecloud.com', path: '/paas/service/apaas/api/v1.1/apps/myDomain', auth: 'admin:password', headers: { 'X-ID-TENANT-NAME': 'myDomain'}});

via REST

...or simply use cloud web interface

JET Web App : bit.ly/oow16clouds