SlideShare uma empresa Scribd logo
1 de 30
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

Mais conteĂșdo relacionado

Mais procurados

HBaseCon2017 HBase/Phoenix @ Scale @ Salesforce
HBaseCon2017 HBase/Phoenix @ Scale @ SalesforceHBaseCon2017 HBase/Phoenix @ Scale @ Salesforce
HBaseCon2017 HBase/Phoenix @ Scale @ Salesforce
HBaseCon
 
An Update on Scaling Data Science Applications with SparkR in 2018 with Heiko...
An Update on Scaling Data Science Applications with SparkR in 2018 with Heiko...An Update on Scaling Data Science Applications with SparkR in 2018 with Heiko...
An Update on Scaling Data Science Applications with SparkR in 2018 with Heiko...
Databricks
 

Mais procurados (20)

EDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to PostgresEDB's Migration Portal - Migrate from Oracle to Postgres
EDB's Migration Portal - Migrate from Oracle to Postgres
 
HBaseCon2017 HBase/Phoenix @ Scale @ Salesforce
HBaseCon2017 HBase/Phoenix @ Scale @ SalesforceHBaseCon2017 HBase/Phoenix @ Scale @ Salesforce
HBaseCon2017 HBase/Phoenix @ Scale @ Salesforce
 
New Approaches to Integrating Oracle and Postgres Database Strategies
New Approaches to Integrating Oracle and Postgres Database StrategiesNew Approaches to Integrating Oracle and Postgres Database Strategies
New Approaches to Integrating Oracle and Postgres Database Strategies
 
Avoid the Oracle SE2 Trap with EnterpriseDB & Palisade Compliance
Avoid the Oracle SE2 Trap with EnterpriseDB & Palisade ComplianceAvoid the Oracle SE2 Trap with EnterpriseDB & Palisade Compliance
Avoid the Oracle SE2 Trap with EnterpriseDB & Palisade Compliance
 
Enterprise Data Science at Scale @ Princeton, NJ 14-Nov-2017
Enterprise Data Science at Scale @ Princeton, NJ 14-Nov-2017Enterprise Data Science at Scale @ Princeton, NJ 14-Nov-2017
Enterprise Data Science at Scale @ Princeton, NJ 14-Nov-2017
 
How Nielsen Utilized Databricks for Large-Scale Research and Development with...
How Nielsen Utilized Databricks for Large-Scale Research and Development with...How Nielsen Utilized Databricks for Large-Scale Research and Development with...
How Nielsen Utilized Databricks for Large-Scale Research and Development with...
 
Spark and Hadoop Technology
Spark and Hadoop Technology Spark and Hadoop Technology
Spark and Hadoop Technology
 
Oracle SOA Cloud - Skanska Customer Journey
Oracle SOA Cloud - Skanska Customer JourneyOracle SOA Cloud - Skanska Customer Journey
Oracle SOA Cloud - Skanska Customer Journey
 
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive session
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive sessionMicrosoft ignite 2018 SQL server 2019 big data clusters - deep dive session
Microsoft ignite 2018 SQL server 2019 big data clusters - deep dive session
 
Simplifying AI integration on Apache Spark
Simplifying AI integration on Apache SparkSimplifying AI integration on Apache Spark
Simplifying AI integration on Apache Spark
 
How to Migrate from Oracle to EDB Postgres
How to Migrate from Oracle to EDB PostgresHow to Migrate from Oracle to EDB Postgres
How to Migrate from Oracle to EDB Postgres
 
Advanced Database Patterns for Kubernetes
Advanced Database Patterns for KubernetesAdvanced Database Patterns for Kubernetes
Advanced Database Patterns for Kubernetes
 
Public Sector Virtual Town Hall
Public Sector Virtual Town HallPublic Sector Virtual Town Hall
Public Sector Virtual Town Hall
 
Introducing Fn Project
Introducing Fn ProjectIntroducing Fn Project
Introducing Fn Project
 
No Time to Waste: Migrate from Oracle to EDB Postgres in Minutes
No Time to Waste: Migrate from Oracle to EDB Postgres in MinutesNo Time to Waste: Migrate from Oracle to EDB Postgres in Minutes
No Time to Waste: Migrate from Oracle to EDB Postgres in Minutes
 
An Update on Scaling Data Science Applications with SparkR in 2018 with Heiko...
An Update on Scaling Data Science Applications with SparkR in 2018 with Heiko...An Update on Scaling Data Science Applications with SparkR in 2018 with Heiko...
An Update on Scaling Data Science Applications with SparkR in 2018 with Heiko...
 
EnterpriseDB Postgres Survey Results - 2013
EnterpriseDB Postgres Survey Results - 2013EnterpriseDB Postgres Survey Results - 2013
EnterpriseDB Postgres Survey Results - 2013
 
Salcedo BSI and ISO STS
Salcedo BSI and ISO STSSalcedo BSI and ISO STS
Salcedo BSI and ISO STS
 
How to Build On-demand Oracle Compatible Postgres Database in Minutes
How to Build On-demand Oracle Compatible Postgres Database in MinutesHow to Build On-demand Oracle Compatible Postgres Database in Minutes
How to Build On-demand Oracle Compatible Postgres Database in Minutes
 
Discover PostGIS: Add Spatial functions to PostgreSQL
Discover PostGIS: Add Spatial functions to PostgreSQLDiscover PostGIS: Add Spatial functions to PostgreSQL
Discover PostGIS: Add Spatial functions to PostgreSQL
 

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

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

Separation of Concerns through APIs: the Essence of #SmartDB
Separation of Concerns through APIs: the Essence of #SmartDBSeparation of Concerns through APIs: the Essence of #SmartDB
Separation of Concerns through APIs: the Essence of #SmartDB
 
Bringing Java into the Open
Bringing Java into the Open Bringing Java into the Open
Bringing Java into the Open
 
Domain Specific Languages for Parallel Graph AnalytiX (PGX)
Domain Specific Languages for Parallel Graph AnalytiX (PGX)Domain Specific Languages for Parallel Graph AnalytiX (PGX)
Domain Specific Languages for Parallel Graph AnalytiX (PGX)
 
Modern Application Development for the Enterprise
Modern Application Development for the EnterpriseModern Application Development for the Enterprise
Modern Application Development for the Enterprise
 
Building Agile and Resilient Schema Transformations using Apache Kafka and ESB's
Building Agile and Resilient Schema Transformations using Apache Kafka and ESB'sBuilding Agile and Resilient Schema Transformations using Apache Kafka and ESB's
Building Agile and Resilient Schema Transformations using Apache Kafka and ESB's
 
Building a Serverless State Service for the Cloud
Building a Serverless State Service for the CloudBuilding a Serverless State Service for the Cloud
Building a Serverless State Service for the Cloud
 
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQLMySQL InnoDB Cluster - A complete High Availability solution for MySQL
MySQL InnoDB Cluster - A complete High Availability solution for MySQL
 
Octo and the DevSecOps Evolution at Oracle by Ian Van Hoven
Octo and the DevSecOps Evolution at Oracle by Ian Van HovenOcto and the DevSecOps Evolution at Oracle by Ian Van Hoven
Octo and the DevSecOps Evolution at Oracle by Ian Van Hoven
 
Oracle Database Appliance, ODA, X7-2 portfolio.
Oracle Database Appliance, ODA, X7-2 portfolio.Oracle Database Appliance, ODA, X7-2 portfolio.
Oracle Database Appliance, ODA, X7-2 portfolio.
 
Servlet 4.0 JavaOne 2017
Servlet 4.0 JavaOne 2017Servlet 4.0 JavaOne 2017
Servlet 4.0 JavaOne 2017
 
Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle - Continuous Delivery NYC meetup, June 07, 2018Oracle - Continuous Delivery NYC meetup, June 07, 2018
Oracle - Continuous Delivery NYC meetup, June 07, 2018
 
18. Madhur Hemnani - Result Orientated Innovation with Oracle HR Analytics
18. Madhur Hemnani - Result Orientated Innovation with Oracle HR Analytics18. Madhur Hemnani - Result Orientated Innovation with Oracle HR Analytics
18. Madhur Hemnani - Result Orientated Innovation with Oracle HR Analytics
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability Matters
 
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
 
Serverless @ oracle meetup
Serverless @ oracle meetupServerless @ oracle meetup
Serverless @ oracle meetup
 
Serverless Computing ìčœí•Žì§€êž°,Hands on싀슔 (한ꔭ였띌큎 êč€ìą…ê·œ 컚섀턎튞)
Serverless Computing ìčœí•Žì§€êž°,Hands on싀슔 (한ꔭ였띌큎 êč€ìą…ê·œ 컚섀턎튞)Serverless Computing ìčœí•Žì§€êž°,Hands on싀슔 (한ꔭ였띌큎 êč€ìą…ê·œ 컚섀턎튞)
Serverless Computing ìčœí•Žì§€êž°,Hands on싀슔 (한ꔭ였띌큎 êč€ìą…ê·œ 컚섀턎튞)
 
Streaming solutions for real time problems
Streaming solutions for real time problems Streaming solutions for real time problems
Streaming solutions for real time problems
 
APAC Tour 2019 update
APAC Tour 2019 updateAPAC Tour 2019 update
APAC Tour 2019 update
 
MySQL day Dublin - OCI & Application Development
MySQL day Dublin - OCI & Application DevelopmentMySQL day Dublin - OCI & Application Development
MySQL day Dublin - OCI & Application Development
 
JCP 20 Year Anniversary
JCP 20 Year AnniversaryJCP 20 Year Anniversary
JCP 20 Year Anniversary
 

Mais de Ed Burns

Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with Less
Ed Burns
 

Mais de Ed Burns (11)

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

Último

Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Bert Jan Schrijver
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 

Último (20)

WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 

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

  • 1.
  • 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

Notas do Editor

  1. 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.
  2. 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.
  3. HR Use call by reference analogy instead of call by value
  4. ED/HR Let’s take a look at some options that are in use to provide externalized state.
  5. HR Don’t want to pay for what you don’t use.
  6. HR Don’t want to pay for what you don’t use.
  7. HR Mention that you have to use SQL, or ORM.
  8. HR
  9. HR
  10. 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
  11. 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.
  12. 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.
  13. 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
  14. 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.