SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

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 PostgresEDB
 
HBaseCon2017 HBase/Phoenix @ Scale @ Salesforce
HBaseCon2017 HBase/Phoenix @ Scale @ SalesforceHBaseCon2017 HBase/Phoenix @ Scale @ Salesforce
HBaseCon2017 HBase/Phoenix @ Scale @ SalesforceHBaseCon
 
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 StrategiesEDB
 
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 ComplianceEDB
 
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-2017Timothy Spann
 
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 Summit
 
Spark and Hadoop Technology
Spark and Hadoop Technology Spark and Hadoop Technology
Spark and Hadoop Technology Avinash Gautam
 
Oracle SOA Cloud - Skanska Customer Journey
Oracle SOA Cloud - Skanska Customer JourneyOracle SOA Cloud - Skanska Customer Journey
Oracle SOA Cloud - Skanska Customer JourneySimon Haslam
 
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 sessionTravis Wright
 
Simplifying AI integration on Apache Spark
Simplifying AI integration on Apache SparkSimplifying AI integration on Apache Spark
Simplifying AI integration on Apache SparkDatabricks
 
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 PostgresAshnikbiz
 
Advanced Database Patterns for Kubernetes
Advanced Database Patterns for KubernetesAdvanced Database Patterns for Kubernetes
Advanced Database Patterns for KubernetesEDB
 
Public Sector Virtual Town Hall
Public Sector Virtual Town HallPublic Sector Virtual Town Hall
Public Sector Virtual Town HallEDB
 
Introducing Fn Project
Introducing Fn ProjectIntroducing Fn Project
Introducing Fn ProjectAyumu Aizawa
 
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 MinutesEDB
 
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
 
EnterpriseDB Postgres Survey Results - 2013
EnterpriseDB Postgres Survey Results - 2013EnterpriseDB Postgres Survey Results - 2013
EnterpriseDB Postgres Survey Results - 2013EDB
 
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 MinutesEDB
 
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 PostgreSQLEDB
 

Was ist angesagt? (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
 

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

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 #SmartDBToon Koppelaars
 
Bringing Java into the Open
Bringing Java into the Open Bringing Java into the Open
Bringing Java into the Open Heather VanCura
 
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)Eelco Visser
 
Modern Application Development for the Enterprise
Modern Application Development for the EnterpriseModern Application Development for the Enterprise
Modern Application Development for the EnterpriseJuarez Junior
 
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'sRicardo Ferreira
 
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 CloudEdward Burns
 
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 MySQLOlivier DASINI
 
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 HovenInfluxData
 
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.Daryll Whyte
 
Servlet 4.0 JavaOne 2017
Servlet 4.0 JavaOne 2017Servlet 4.0 JavaOne 2017
Servlet 4.0 JavaOne 2017Ed Burns
 
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, 2018Oracle Developers
 
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 AnalyticsCedar Consulting
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability MattersMatt Lord
 
Serverless @ oracle meetup
Serverless @ oracle meetupServerless @ oracle meetup
Serverless @ oracle meetupJonggyou Kim
 
Serverless Computing 친해지기,Hands on실습 (한국오라클 김종규 컨설턴트)
Serverless Computing 친해지기,Hands on실습 (한국오라클 김종규 컨설턴트)Serverless Computing 친해지기,Hands on실습 (한국오라클 김종규 컨설턴트)
Serverless Computing 친해지기,Hands on실습 (한국오라클 김종규 컨설턴트)Oracle Korea
 
Streaming solutions for real time problems
Streaming solutions for real time problems Streaming solutions for real time problems
Streaming solutions for real time problems Aparna Gaonkar
 
MySQL day Dublin - OCI & Application Development
MySQL day Dublin - OCI & Application DevelopmentMySQL day Dublin - OCI & Application Development
MySQL day Dublin - OCI & Application DevelopmentHenry J. Kröger
 

Ähnlich wie 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
 

Mehr von Ed Burns

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 MicroProfileEd Burns
 
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 BriefingEd Burns
 
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 DevelopmentEd Burns
 
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...Ed Burns
 
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 coveredEd Burns
 
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?Ed Burns
 
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 TechnologyEd Burns
 
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 ThereminEd Burns
 
Chicago JUG / GOTO Meetup
Chicago JUG / GOTO MeetupChicago JUG / GOTO Meetup
Chicago JUG / GOTO MeetupEd Burns
 
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 2016Ed 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 LessEd Burns
 

Mehr von 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
 

Kürzlich hochgeladen

why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 

Kürzlich hochgeladen (20)

why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 

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

Hinweis der Redaktion

  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.