SlideShare a Scribd company logo
Oracle Code Online: Building a Serverless State Service for the Cloud
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Building a Serverless
State Service for the Cloud
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Building Agile and Resilient Schema Transf. using Kafka and ESB's
Ed Burns
Oracle Developer Experience
November, 2017
@edburns
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Speaker Qualifications – Ed Burns
• 25 years software development experience
• Java EE Spec Lead for JSF and Servlet
• Frequent conference speaker and workshop leader
• State Service contributor
• Author of four IT books for McGraw-Hill
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
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, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.
4
E
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 5
Stateless == Useless
E
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
What can you do without state?
• result = (input) -> convert(input);
• Make it the callers problem:
– hotPotato = (input) -> convert(input);
doSomethingWith(hotPotato);
• Externalize the state
– Consistency
– Performance
6
H
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
State and Serverless
7
Somebody Else’s Problem
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
State and Serverless
8
Somebody Else’s Problem
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
• We’ve been trying to reduce
“boiler-plate” since we invented
boilers.
9
State and Serverless
The Relentless Drive To Allow Developers to Focus on “Business Logic”
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
• The very idea of separating
– Core language
– Runtime libraries
10
State and Serverless
The Relentless Drive To Allow Developers to Focus on “Business Logic”
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
• Dependency Injection
– Spring 1.0 2002
– JSF 1.0 2004
• @Inject 2009
• Containerization 2014
• Containerization and Cloud 2015
11
State and Serverless
The Logical Extension of Dependency Injection
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Convinced you need state?? OK – now where does it go?
12
E
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
What do you need from a store of state?
• Durability
• Reliability/HA
• Scalability
• Throughput
• In-Place Processing
• Querying/Aggregations
• Events
• Access with programming language of choice
13
H
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
What do you need from a store of state?
• On-demand provisioning/elasticity
• ”Serverless” operating paradigm
• Managed by vendor
• Pay as you go/utility
computing pricing
• Smooth on-ramp
– Local development
– Cloud development
14
H
…in the cloud?
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
What do you want from a store of state?
• Native language support
• What’s wrong with Map, Dictionary, Hash Container, Associative Array?
• It has everything; rows (entries), columns (inferred by fields)
• And its key-centric: I think I can scale this puppy…
• …but its stuck on the heap!
15
H
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Map: if you can dream it, you can do it…
• HashMap:
– Hashing semantics, in-process, not thread-safe
• Collections.synchronizedMap(map):
– Hashing semantics, in-process, thread-safe, coarse contention
• ConcurrentHashMap
– Hashing semantics, in-process, thread-safe granular contention
16
H
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Map: if you can dream it, you can do it…
• CloudMap:
– Hashing semantics, highly distributed, multi process & thread!
– Map-based API that we plan to produce as one of the State Service APIs
17
Introducing CloudMap
H
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Map: what you give us for free…
• Key-centric; get(k), put(k, v), remove(k) …
• HashMap: table[hash(key) % table.length] = new Entry(key, value)
• ConcurrentHashMap: lock(table[hash(key) % table.length]) && assign
• DistributedHashMap : hash(key) -> partition/bucket -> member
– Common approach: consistent hashing (hash(key) -> member)
18
LOCALREMOTE
H
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Serverless State Service
CloudMap == DistributedMap++
19
BARE METAL CLOUD COHERENCE
E
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Serverless State Service
CloudMap == DistributedMap++
20
BARE METAL CLOUD COHERENCE
E
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
One State Service – Many Languages
21
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 22
CloudMap
H
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
CloudMap == DistributedMap++
• Distributed persistence (patented)
– Shared storage is not required…and discouraged
– Supports snapshots and ‘archiving’ distributed state
23
H
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Vista Demo
Serverless
Function as a
Service for any
language, best of
class for Java
Microservices
A collection of
services, frameworks
and libraries for the
modern cloud
developer; based on
Cloud Native
Compute Foundation
fn
State
State
A scalable,
resilient state
store based
on common
data
structures
E
24
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Vista License Plate Demo
25
Java Functions
Scraper Detect Plates
Alert
Alert Manager
Detect Duplicates
Draw
Progress Publish
E
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Vista License Plate Demo
26
Helping Services and Code
Scraper Detect Plates
Alert
Alert Manager
Detect Duplicates
Draw
Progress Publish
E
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Vista License Plate Demo
27
State Service Interactions
Scraper Detect Plates
Alert
Alert Manager
Detect Duplicates
Draw
Progress Publish
E
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Serverless State Service
• Infinitely scalable
• Resilient
• Continuously available
• A ubiquitously understood programming model
• Data local processing
• Pay-as-you-go
Coming to a cloud near you…
28
H
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The preceding 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, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.
29
Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 30

More Related Content

What's hot (20)

PPTX
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB
 
PDF
HBaseCon2017 HBase/Phoenix @ Scale @ Salesforce
HBaseCon
 
PPTX
New Approaches to Integrating Oracle and Postgres Database Strategies
EDB
 
PDF
Avoid the Oracle SE2 Trap with EnterpriseDB & Palisade Compliance
EDB
 
PDF
Enterprise Data Science at Scale @ Princeton, NJ 14-Nov-2017
Timothy Spann
 
PDF
How Nielsen Utilized Databricks for Large-Scale Research and Development with...
Spark Summit
 
PPTX
Spark and Hadoop Technology
Avinash Gautam
 
PDF
Oracle SOA Cloud - Skanska Customer Journey
Simon Haslam
 
PPTX
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive session
Travis Wright
 
PDF
Simplifying AI integration on Apache Spark
Databricks
 
PPTX
How to Migrate from Oracle to EDB Postgres
Ashnikbiz
 
PPTX
Advanced Database Patterns for Kubernetes
EDB
 
PDF
Public Sector Virtual Town Hall
EDB
 
PDF
Introducing Fn Project
Ayumu Aizawa
 
PDF
No Time to Waste: Migrate from Oracle to EDB Postgres in Minutes
EDB
 
PDF
An Update on Scaling Data Science Applications with SparkR in 2018 with Heiko...
Databricks
 
PDF
EnterpriseDB Postgres Survey Results - 2013
EDB
 
PDF
How to Build On-demand Oracle Compatible Postgres Database in Minutes
EDB
 
PDF
Discover PostGIS: Add Spatial functions to PostgreSQL
EDB
 
EDB's Migration Portal - Migrate from Oracle to Postgres
EDB
 
HBaseCon2017 HBase/Phoenix @ Scale @ Salesforce
HBaseCon
 
New Approaches to Integrating Oracle and Postgres Database Strategies
EDB
 
Avoid the Oracle SE2 Trap with EnterpriseDB & Palisade Compliance
EDB
 
Enterprise Data Science at Scale @ Princeton, NJ 14-Nov-2017
Timothy Spann
 
How Nielsen Utilized Databricks for Large-Scale Research and Development with...
Spark Summit
 
Spark and Hadoop Technology
Avinash Gautam
 
Oracle SOA Cloud - Skanska Customer Journey
Simon Haslam
 
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive session
Travis Wright
 
Simplifying AI integration on Apache Spark
Databricks
 
How to Migrate from Oracle to EDB Postgres
Ashnikbiz
 
Advanced Database Patterns for Kubernetes
EDB
 
Public Sector Virtual Town Hall
EDB
 
Introducing Fn Project
Ayumu Aizawa
 
No Time to Waste: Migrate from Oracle to EDB Postgres in Minutes
EDB
 
An Update on Scaling Data Science Applications with SparkR in 2018 with Heiko...
Databricks
 
EnterpriseDB Postgres Survey Results - 2013
EDB
 
How to Build On-demand Oracle Compatible Postgres Database in Minutes
EDB
 
Discover PostGIS: Add Spatial functions to PostgreSQL
EDB
 

Similar to Oracle Code Online: Building a Serverless State Service for the Cloud (20)

PDF
Separation of Concerns through APIs: the Essence of #SmartDB
Toon Koppelaars
 
PDF
Bringing Java into the Open
Heather VanCura
 
PDF
Domain Specific Languages for Parallel Graph AnalytiX (PGX)
Eelco Visser
 
PDF
Modern Application Development for the Enterprise
Juarez Junior
 
PDF
Building Agile and Resilient Schema Transformations using Apache Kafka and ESB's
Ricardo Ferreira
 
PDF
Building a Serverless State Service for the Cloud
Edward Burns
 
PDF
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
Olivier DASINI
 
PPTX
Octo and the DevSecOps Evolution at Oracle by Ian Van Hoven
InfluxData
 
PPTX
Oracle Database Appliance, ODA, X7-2 portfolio.
Daryll Whyte
 
PPTX
Servlet 4.0 JavaOne 2017
Ed Burns
 
PDF
Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle Developers
 
PDF
18. Madhur Hemnani - Result Orientated Innovation with Oracle HR Analytics
Cedar Consulting
 
PDF
Why MySQL High Availability Matters
Matt Lord
 
PDF
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
PPTX
Serverless @ oracle meetup
Jonggyou Kim
 
PDF
Serverless Computing 친해지기,Hands on실습 (한국오라클 김종규 컨설턴트)
Oracle Korea
 
PDF
Streaming solutions for real time problems
Aparna Gaonkar
 
PDF
APAC Tour 2019 update
Heather VanCura
 
PDF
MySQL day Dublin - OCI & Application Development
Henry J. Kröger
 
PDF
JCP 20 Year Anniversary
Heather VanCura
 
Separation of Concerns through APIs: the Essence of #SmartDB
Toon Koppelaars
 
Bringing Java into the Open
Heather VanCura
 
Domain Specific Languages for Parallel Graph AnalytiX (PGX)
Eelco Visser
 
Modern Application Development for the Enterprise
Juarez Junior
 
Building Agile and Resilient Schema Transformations using Apache Kafka and ESB's
Ricardo Ferreira
 
Building a Serverless State Service for the Cloud
Edward Burns
 
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
Olivier DASINI
 
Octo and the DevSecOps Evolution at Oracle by Ian Van Hoven
InfluxData
 
Oracle Database Appliance, ODA, X7-2 portfolio.
Daryll Whyte
 
Servlet 4.0 JavaOne 2017
Ed Burns
 
Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle Developers
 
18. Madhur Hemnani - Result Orientated Innovation with Oracle HR Analytics
Cedar Consulting
 
Why MySQL High Availability Matters
Matt Lord
 
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Serverless @ oracle meetup
Jonggyou Kim
 
Serverless Computing 친해지기,Hands on실습 (한국오라클 김종규 컨설턴트)
Oracle Korea
 
Streaming solutions for real time problems
Aparna Gaonkar
 
APAC Tour 2019 update
Heather VanCura
 
MySQL day Dublin - OCI & Application Development
Henry J. Kröger
 
JCP 20 Year Anniversary
Heather VanCura
 
Ad

More from Ed Burns (11)

PDF
What We Learned from Porting PiggyMetrics from Spring Boot to MicroProfile
Ed Burns
 
PPTX
2020-02-10 Java on Azure Solution Briefing
Ed Burns
 
PPTX
What Visual Studio Code can do for Java Development
Ed Burns
 
PDF
Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...
Ed Burns
 
PDF
Enterprise Java on Azure: From Java EE to Spring, we have you covered
Ed Burns
 
PPTX
Programming Language Platform Growth: Table Stakes or Deal Makes?
Ed Burns
 
PPTX
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Ed Burns
 
PPTX
JavaOne-2017 Ignite Session: How to build a Theremin
Ed Burns
 
PDF
Chicago JUG / GOTO Meetup
Ed Burns
 
PPTX
HTTP/2 in the Java Platform -- Java Champions call February 2016
Ed Burns
 
PPTX
Oracle WebLogic Server 12.2.1 Do More with Less
Ed Burns
 
What We Learned from Porting PiggyMetrics from Spring Boot to MicroProfile
Ed Burns
 
2020-02-10 Java on Azure Solution Briefing
Ed Burns
 
What Visual Studio Code can do for Java Development
Ed Burns
 
Enterprise Java on Microsoft Azure: From Java EE to Spring, we’ve got you cov...
Ed Burns
 
Enterprise Java on Azure: From Java EE to Spring, we have you covered
Ed Burns
 
Programming Language Platform Growth: Table Stakes or Deal Makes?
Ed Burns
 
Seminole County Teach In 2017: Crooms Acadamy of Information Technology
Ed Burns
 
JavaOne-2017 Ignite Session: How to build a Theremin
Ed Burns
 
Chicago JUG / GOTO Meetup
Ed Burns
 
HTTP/2 in the Java Platform -- Java Champions call February 2016
Ed Burns
 
Oracle WebLogic Server 12.2.1 Do More with Less
Ed Burns
 
Ad

Recently uploaded (20)

PDF
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PDF
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
PDF
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
PDF
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
PPTX
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
PPTX
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
PPTX
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PDF
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
PPTX
Comprehensive Risk Assessment Module for Smarter Risk Management
EHA Soft Solutions
 
유니티에서 Burst Compiler+ThreadedJobs+SIMD 적용사례
Seongdae Kim
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
TheFutureIsDynamic-BoxLang witch Luis Majano.pdf
Ortus Solutions, Corp
 
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
Milwaukee Marketo User Group - Summer Road Trip: Mapping and Personalizing Yo...
bbedford2
 
Finding Your License Details in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
Empower Your Tech Vision- Why Businesses Prefer to Hire Remote Developers fro...
logixshapers59
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
Comprehensive Risk Assessment Module for Smarter Risk Management
EHA Soft Solutions
 

Oracle Code Online: Building a Serverless State Service for the Cloud

  • 2. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Building a Serverless State Service for the Cloud Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Building Agile and Resilient Schema Transf. using Kafka and ESB's Ed Burns Oracle Developer Experience November, 2017 @edburns
  • 3. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Speaker Qualifications – Ed Burns • 25 years software development experience • Java EE Spec Lead for JSF and Servlet • Frequent conference speaker and workshop leader • State Service contributor • Author of four IT books for McGraw-Hill
  • 4. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement 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, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 4 E
  • 5. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 5 Stateless == Useless E
  • 6. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | What can you do without state? • result = (input) -> convert(input); • Make it the callers problem: – hotPotato = (input) -> convert(input); doSomethingWith(hotPotato); • Externalize the state – Consistency – Performance 6 H
  • 7. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | State and Serverless 7 Somebody Else’s Problem
  • 8. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | State and Serverless 8 Somebody Else’s Problem
  • 9. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | • We’ve been trying to reduce “boiler-plate” since we invented boilers. 9 State and Serverless The Relentless Drive To Allow Developers to Focus on “Business Logic”
  • 10. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | • The very idea of separating – Core language – Runtime libraries 10 State and Serverless The Relentless Drive To Allow Developers to Focus on “Business Logic”
  • 11. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | • Dependency Injection – Spring 1.0 2002 – JSF 1.0 2004 • @Inject 2009 • Containerization 2014 • Containerization and Cloud 2015 11 State and Serverless The Logical Extension of Dependency Injection
  • 12. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Convinced you need state?? OK – now where does it go? 12 E
  • 13. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | What do you need from a store of state? • Durability • Reliability/HA • Scalability • Throughput • In-Place Processing • Querying/Aggregations • Events • Access with programming language of choice 13 H
  • 14. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | What do you need from a store of state? • On-demand provisioning/elasticity • ”Serverless” operating paradigm • Managed by vendor • Pay as you go/utility computing pricing • Smooth on-ramp – Local development – Cloud development 14 H …in the cloud?
  • 15. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | What do you want from a store of state? • Native language support • What’s wrong with Map, Dictionary, Hash Container, Associative Array? • It has everything; rows (entries), columns (inferred by fields) • And its key-centric: I think I can scale this puppy… • …but its stuck on the heap! 15 H
  • 16. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Map: if you can dream it, you can do it… • HashMap: – Hashing semantics, in-process, not thread-safe • Collections.synchronizedMap(map): – Hashing semantics, in-process, thread-safe, coarse contention • ConcurrentHashMap – Hashing semantics, in-process, thread-safe granular contention 16 H
  • 17. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Map: if you can dream it, you can do it… • CloudMap: – Hashing semantics, highly distributed, multi process & thread! – Map-based API that we plan to produce as one of the State Service APIs 17 Introducing CloudMap H
  • 18. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Map: what you give us for free… • Key-centric; get(k), put(k, v), remove(k) … • HashMap: table[hash(key) % table.length] = new Entry(key, value) • ConcurrentHashMap: lock(table[hash(key) % table.length]) && assign • DistributedHashMap : hash(key) -> partition/bucket -> member – Common approach: consistent hashing (hash(key) -> member) 18 LOCALREMOTE H
  • 19. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Serverless State Service CloudMap == DistributedMap++ 19 BARE METAL CLOUD COHERENCE E
  • 20. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Serverless State Service CloudMap == DistributedMap++ 20 BARE METAL CLOUD COHERENCE E
  • 21. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | One State Service – Many Languages 21
  • 22. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 22 CloudMap H
  • 23. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | CloudMap == DistributedMap++ • Distributed persistence (patented) – Shared storage is not required…and discouraged – Supports snapshots and ‘archiving’ distributed state 23 H
  • 24. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Vista Demo Serverless Function as a Service for any language, best of class for Java Microservices A collection of services, frameworks and libraries for the modern cloud developer; based on Cloud Native Compute Foundation fn State State A scalable, resilient state store based on common data structures E 24
  • 25. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Vista License Plate Demo 25 Java Functions Scraper Detect Plates Alert Alert Manager Detect Duplicates Draw Progress Publish E
  • 26. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Vista License Plate Demo 26 Helping Services and Code Scraper Detect Plates Alert Alert Manager Detect Duplicates Draw Progress Publish E
  • 27. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Vista License Plate Demo 27 State Service Interactions Scraper Detect Plates Alert Alert Manager Detect Duplicates Draw Progress Publish E
  • 28. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Serverless State Service • Infinitely scalable • Resilient • Continuously available • A ubiquitously understood programming model • Data local processing • Pay-as-you-go Coming to a cloud near you… 28 H
  • 29. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | Safe Harbor Statement The preceding 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, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 29
  • 30. Copyright © 2017, Oracle and/or its affiliates. All rights reserved. | 30

Editor's Notes

  • #5: This is especially pertinent to our session as we are showing a bit of in-progress work and sharing the lessons we have learned along the way. The exact feature set and pricing is still being determined.
  • #6: ED Let’s start off with a provocative statement and then pull it back a bit. For all the hype about stateless architectures, all the buzz about REST, and the renewed popularity of pure functional languages and functional features of non-functional languages, the truth is that any useful application is going to have to deal with state. Let’s be fair, though. Stateful apps do have a host of problems: Side-effect class of bugs Harder to parallelize Harder to do real CQRS Easy to be lazy Analogy, it’s like that one closet or drawer at home where you just throw stuff and close it. And stateless architectures have many good properties Composability Distributability Not to say it is not a good stance but perhaps you can maintain some of these benefits, such as composability, with state?? It is better to add state judiciously to an otherwise stateless system than just get lazy and throw state all over the place.
  • #7: HR Use call by reference analogy instead of call by value
  • #13: ED/HR Let’s take a look at some options that are in use to provide externalized state.
  • #14: HR Don’t want to pay for what you don’t use.
  • #15: HR Don’t want to pay for what you don’t use.
  • #16: HR Mention that you have to use SQL, or ORM.
  • #17: HR
  • #18: HR
  • #19: HR Returning to your data structures class. When you get below the line: allows a client to deterministically know where an entry resides on a remote process without having any kind of consultation. Mention this does not even mention the absolutely necessary concern of replication
  • #20: We are building our state service on top of Oracle Bare Metal Cloud Service and a special version of Oracle Coherence. Coherence has years of customer used, battle hardened Site Reliabiity Engineering experience inside.
  • #21: Oracle Bare Metal Cloud Microsecond latency in an AD Guaranteed millisecond latency between availability domains. Talk about coherence backup strength notion: node, machine, rack, site safety. Even if you lose an AD, anything that was written to the store, will still be there. Example: half TB ram 30 TB NVME, so we want to take advantage of that.
  • #23: HR Docker run state service Switch to intellij Create a main class, do Session.create(localhost) Put some data, do a query, Mention that this docker image does not mount any volumes, so we are not saving anything we put in here. Provision CloudMap, mention this is K8s running on Oracle Public Cloud Modify local program to point to it. Show it’s empty Add some data. Share connection details, including Wercker (from today’s keynote) auth token with Ed. API Exploration, in Harvey’s IDE
  • #24: HR This is where we are taking advantage of NVME drives The underlying Coherence has been modified to write everything to these disks. This gives you rock solid phoenix system properties.