SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
Stateful Serverless
The Future of Applications in the Cloud
Markus Eisele
Director of Developer Advocacy, Lightbend
JavaZone
@myfear
2
Industry Trends
New World: Multicore,
Cloud, Mobile, IoT,
Big Data, AI
1
Towards Real-time
Data-centric
Streaming applications
Towards a World
with Automated
Operations: Opsless
2 3
Reactive Systems
The rules of the game have changed
4
Towards Fast Data
Real-time, Data-centric, Event-driven
5
Reactive
Microservices
Big Data
Fast Data
Applications
Increasing requirements for scalability & resilience
Streaming data pipelines are being served by Microservices
Increasing requirements for streaming vs. batch
6
We predict that Serverless
Computing will grow to dominate
the future of Cloud Computing.
- Berkeley CS Department
“
Cloud computing simplified: a Berkeley view on serverless computing
1. Cost and resource efficient—scale down to zero
2. Pay as you go—scale up on demand
3. Automation—of scale, failure handling, and recovery
4. Great developer experience—supporting full dev cycle
5. Reduced time, complexity, and risk—when moving to the Cloud
7
SERVERLESSPROVIDES A UNIFIED SOLUTION FOR
CUTTING OPERATIONAL & DEVELOPMENT COSTS
SERVERLESS ≠FAAS
8FaaS = Function-as-a-Service
WHY SHOULD WE LET
FAASHAVE ALL THE
FUN?
9
1. Paved the way for Serverless
2. Scaling on-demand from 0 to 10000s request, in a cost-efficient manner
3. Simplifies delivery of scalable and available applications
4. Encourages good distributed systems design (events-first, loose coupling, etc.)
5. Great as integration layer between various (ephemeral and durable) data sources
6. Great for stateless & processing-centric workloads
7. Great as data backbone moving data from A to B, transforming it along the way
10
WHAT’S GOOD WITH
FAAS?
11
USE CASES FOR
FAAS
Use-cases where throughput is key rather than low latency
and requests can be completed in a short time window
1. Low traffic applications—enterprise IT services, and spiky workloads
2. Stateless web applications—serving static content form S3 (or similar)
3. Embarrassingly parallel processing tasks—invoked on demand & intermittently, examples
include: resizing images, object recognition, log analysis
4. Orchestration functions—integration/coordination of calls to third-party services
5. Composing chains of functions—stateless workflow management, connected via data
dependencies
6. Job scheduling—CRON jobs, triggers, etc.
12
WHAT’S BAD WITH
FAAS?
Hard to build general-purpose applications
1. Retains the limitations of the 3-tier architecture
2. Functions are stateless, ephemeral, and short-lived
3. No direct addressability
4. No co-location of state and processing
5. Limited options for managing and coordinating distributed state
6. Limited options for modelling various consistency guarantees
7. Limited options for managing durable state, that is scalable and available
What We Want
The Serverless Experience—
but for general-purpose applications, including modern Fast Data and Reactive systems
Stateful Functions—
complementing stateless functions, expanding the toolbox and supported use-cases
The cost efficiencies of FaaS—
allowing the user to dial in trade-offs (related to cost, SLOs, use-cases)
13
Support For Use Cases Like
Training and Serving of Machine Learning Models
• Any dynamic in-memory model that needs to build up and served with low latency
Real-time Distributed Stream Processing
• E.g. Real-time Prediction/Recommendation Serving, Anomaly Detection
User Sessions, Shopping Carts, Caching
• Managing in-memory, yet durable, session state across individual requests
Distributed Resilient Transactional Workflows
• Saga Pattern, Workflow Orchestration, Rollback/Compensating Actions
Shared Collaborative Workspaces
• Collaborative Document Editing, Blackboards, Chat Rooms, etc.
Leader Election
• …and other standard distributed systems patterns/protocols for coordination
14
Technical Requirements
• Stateful long-lived addressable virtual components—actors
• Wide range of options for distributed coordination & communication patterns
• Options for managing distributed state reliably at scale—ranging from strong to eventual
consistency (durable/ephemeral)
• Intelligent adaptive placement of stateful functions—physical co-location of state and
processing, sharding, and sticky routing
• Ways of managing end-to-end guarantees and correctness
• Predictable performance, latency, and throughput—in startup time,
communication/coordination, and storage of data
15
FaaS Abstracting Over Communication
16
Message In
Deployment
Message OutUser Function
FaaS With CRUD
17
Message In
Deployment
Message OutUser Function
Database
Not Serverless In An Ideal World
UNCONSTRAINED
DATABASE ACCESS
MAKES IT HARD TO
AUTOMATE
OPERATIONS
18
19
Constraints liberate,
liberties constrain.
- Runar Bjarnason
“
Cloud computing simplified: a Berkeley view on serverless computing
Stateful Serverless Abstracting Over State
20
Message In
Deployment
Message Out
User Function
Message In Message Out
We Need Better Models For Distributed State
A couple of battle-tested, yet constrained, models are:
21
EVENT
SOURCING &
CRDTs
Event Sourced Functions
22
Event
Log
EventCommand
Event
Command
HAPPY PATH
Event Sourced Functions
23
SAD PATH, RECOVER FROM FAILURE
Event
Log
Replay Events
ACID 2.0
ASSOCIATIVE
Batch-insensitive
(grouping doesn't matter)
a+(b+c)=(a+b)+c
24
COMMUTATIVE
Order-insensitive
(order doesn't matter)
a+b=b+a
IDEMPOTENT
Retransmission-insensitive
(duplication does not matter)
a+a=a
Conflict-Free Replicated Data Types
ACID 2.0
Strong Eventual Consistency
Replicated & Decentralized
Always Converge Correctly
Monotonic Merge Function
Highly Available & Scalable
25
Counters
Registers
Sets
Maps
Graphs
(that all compose)
CRDT DATA
TYPES
Convergent & Commutative Replicated Data Types - Shapiro et. al. 2011
Serverless CRDTs
26
Message In
Deployment
Message Out
User Function
States/Deltas In States/Deltas Out
27
SO WHAT ARE WE
DOING
ABOUT IT?
What is Akka?
Cloud Native, Reactive, Distributed Systems Runtime
• Implementation of the Actor Model—Concurrency and Distribution
• Decentralized, Self-Organizing, Peer-to-peer Service Mesh
• Autonomous, Self-healing, Event-driven Services
High Performance, High Throughput, and Low Latency
• Communication: Point-to-Point, Pub-Sub, and Streaming
• Protocols: HTTP, TCP, Aeron (UDP), Kafka, Reactive Streams, gRPC
Distributed State Management
• CRDTs, Event Sourcing, CQRS
• Multi-Datacenter Clustering and Log Replication
Find out more at: akka.io
28
Serving of Stateful Functions
29
Kubernetes Pod
Knative
Stateful Serving
Knative
Events
Distributed
Datastore
(Cassandra, DynamoDB,
Spanner,…)
GRPC
User Function
(JavaScript, Go, Java…)
Kubernetes PodUser Function
(JavaScript, Go, Java…)
Kubernetes PodUser Function
(JavaScript, Go, Java…)
Kubernetes Pod
Kubernetes Pod
Kubernetes Pod
Powered by Akka Cluster Sidecars
30
Kubernetes PodUser Function
(JavaScript, Go, Java…)
Kubernetes PodUser Function
(JavaScript, Go, Java…)
Kubernetes PodUser Function
(JavaScript, Go, Java…)
Knative
Stateful Serving
Akka Sidecar
Akka Sidecar
Akka Sidecar
Distributed
Datastore
(Cassandra, DynamoDB,
Spanner,…)
Akka Cluster
GRPC
In Summary
1. The promise of Serverless is revolutionary and could grow to dominate the
future of Cloud Computing
2. FaaS is a good first step, but with limited addressable use-cases
3. Serverless 2.0 needs a runtime & programming model
for general-purpose application development
4. We have started building it with Knative, Akka, and gRPC
5. We need your help
31
GET INVOLVED
bit.ly/stateful-serverless-intro
https://github.com/cloudstateio/cloudstate
32
Reactive Microservices
Architecture
Written for architects and developers that must quickly
gain a fundamental understanding of microservice-based
architectures, this free O’Reilly report explores the journey from
SOA to microservices, discusses approaches to dismantling your
monolith, and reviews the key tenets of a Reactive microservice:
• Isolate all the Things
• Act Autonomously
• Do One Thing, and Do It Well
• Own Your State, Exclusively
• Embrace Asynchronous Message-Passing
• Stay Mobile, but Addressable
• Collaborate as Systems to Solve Problems
http://bit.ly/ReactiveMicroservice
33
Developing
Reactive Microservices
The detailed example in this report is based on Lagom,
a new framework that helps you follow the requirements
for building distributed, reactive systems.
• Get an overview of the Reactive Programming model and
basic requirements for developing reactive microservices
• Learn how to create base services, expose endpoints, and
then connect them with a simple, web-based user interface
• Understand how to deal with persistence, state, and clients
• Use integration technologies to start a successful migration
away from legacy systems
http://bit.ly/DevelopReactiveMicroservice
34
Modern Java EE
Design Patterns
• Understand the challenges of starting a
greenfield development vs tearing apart an
existing brownfield application into services
• Examine your business domain to see if microservices would
be a good fit
• Explore best practices for automation, high availability, data
separation, and performance
• Align your development teams around business capabilities
and responsibilities
• Inspect design patterns such as aggregator, proxy, pipeline,
or shared resources to model service interactions
http://bit.ly/SustainableEnterprise
35
Thank You Page
Markus Eisele
@myfear
blog.eisele.net

Weitere ähnliche Inhalte

Was ist angesagt?

Workshop: Delivering chnages for applications and databases
Workshop: Delivering chnages for applications and databasesWorkshop: Delivering chnages for applications and databases
Workshop: Delivering chnages for applications and databasesEduardo Piairo
 
Overview of Eclipse technologies
Overview of Eclipse technologiesOverview of Eclipse technologies
Overview of Eclipse technologiesPT.JUG
 
Microservices in Action
Microservices in ActionMicroservices in Action
Microservices in ActionBhagwat Kumar
 
Data Center Modelling
Data Center ModellingData Center Modelling
Data Center ModellingElastra
 
Developer Week - Reacting to an event-driven world
Developer Week - Reacting to an event-driven worldDeveloper Week - Reacting to an event-driven world
Developer Week - Reacting to an event-driven worldGrace Jansen
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices ArchitectureMateus Prado
 
Useful Design Patterns for Enterprise Applications with Java
Useful Design Patterns for Enterprise Applications with JavaUseful Design Patterns for Enterprise Applications with Java
Useful Design Patterns for Enterprise Applications with JavaPT.JUG
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices ArchitectureIzzet Mustafaiev
 
Reactive applications tools of the trade huff po
Reactive applications   tools of the trade huff poReactive applications   tools of the trade huff po
Reactive applications tools of the trade huff poshinolajla
 
Achieving Cost and Resource Efficiency through Docker, OpenShift and Kubernetes
Achieving Cost and Resource Efficiency through Docker, OpenShift and KubernetesAchieving Cost and Resource Efficiency through Docker, OpenShift and Kubernetes
Achieving Cost and Resource Efficiency through Docker, OpenShift and KubernetesDean Delamont
 
Microservices
MicroservicesMicroservices
MicroservicesPT.JUG
 
Revolutionizing Enterprise Software Development through Continuous Delivery &...
Revolutionizing Enterprise Software Development through Continuous Delivery &...Revolutionizing Enterprise Software Development through Continuous Delivery &...
Revolutionizing Enterprise Software Development through Continuous Delivery &...People10 Technosoft Private Limited
 
JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"
JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"
JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"Daniel Bryant
 
DCSF 19 Modern Orchestrated IT for Enterprise CMS
DCSF 19  Modern Orchestrated IT for Enterprise CMSDCSF 19  Modern Orchestrated IT for Enterprise CMS
DCSF 19 Modern Orchestrated IT for Enterprise CMSDocker, Inc.
 
Strangling the Monolith With a Data-Driven Approach: A Case Study
Strangling the Monolith With a Data-Driven Approach: A Case StudyStrangling the Monolith With a Data-Driven Approach: A Case Study
Strangling the Monolith With a Data-Driven Approach: A Case StudyVMware Tanzu
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAppDynamics
 
The twelve factor app
The twelve factor appThe twelve factor app
The twelve factor appRavi Okade
 

Was ist angesagt? (19)

Workshop: Delivering chnages for applications and databases
Workshop: Delivering chnages for applications and databasesWorkshop: Delivering chnages for applications and databases
Workshop: Delivering chnages for applications and databases
 
Overview of Eclipse technologies
Overview of Eclipse technologiesOverview of Eclipse technologies
Overview of Eclipse technologies
 
Microservices in Action
Microservices in ActionMicroservices in Action
Microservices in Action
 
Data Center Modelling
Data Center ModellingData Center Modelling
Data Center Modelling
 
Developer Week - Reacting to an event-driven world
Developer Week - Reacting to an event-driven worldDeveloper Week - Reacting to an event-driven world
Developer Week - Reacting to an event-driven world
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Useful Design Patterns for Enterprise Applications with Java
Useful Design Patterns for Enterprise Applications with JavaUseful Design Patterns for Enterprise Applications with Java
Useful Design Patterns for Enterprise Applications with Java
 
MySQL
MySQLMySQL
MySQL
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Reactive applications tools of the trade huff po
Reactive applications   tools of the trade huff poReactive applications   tools of the trade huff po
Reactive applications tools of the trade huff po
 
12 factor app
12 factor app12 factor app
12 factor app
 
Achieving Cost and Resource Efficiency through Docker, OpenShift and Kubernetes
Achieving Cost and Resource Efficiency through Docker, OpenShift and KubernetesAchieving Cost and Resource Efficiency through Docker, OpenShift and Kubernetes
Achieving Cost and Resource Efficiency through Docker, OpenShift and Kubernetes
 
Microservices
MicroservicesMicroservices
Microservices
 
Revolutionizing Enterprise Software Development through Continuous Delivery &...
Revolutionizing Enterprise Software Development through Continuous Delivery &...Revolutionizing Enterprise Software Development through Continuous Delivery &...
Revolutionizing Enterprise Software Development through Continuous Delivery &...
 
JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"
JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"
JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"
 
DCSF 19 Modern Orchestrated IT for Enterprise CMS
DCSF 19  Modern Orchestrated IT for Enterprise CMSDCSF 19  Modern Orchestrated IT for Enterprise CMS
DCSF 19 Modern Orchestrated IT for Enterprise CMS
 
Strangling the Monolith With a Data-Driven Approach: A Case Study
Strangling the Monolith With a Data-Driven Approach: A Case StudyStrangling the Monolith With a Data-Driven Approach: A Case Study
Strangling the Monolith With a Data-Driven Approach: A Case Study
 
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit EuropeAutomation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
Automation: The Good, The Bad and The Ugly with DevOpsGuys - AppD Summit Europe
 
The twelve factor app
The twelve factor appThe twelve factor app
The twelve factor app
 

Ähnlich wie Stateful on Stateless - The Future of Applications in the Cloud

Scaling Databricks to Run Data and ML Workloads on Millions of VMs
Scaling Databricks to Run Data and ML Workloads on Millions of VMsScaling Databricks to Run Data and ML Workloads on Millions of VMs
Scaling Databricks to Run Data and ML Workloads on Millions of VMsMatei Zaharia
 
Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices confluent
 
Redis and Kafka - Simplifying Advanced Design Patterns within Microservices A...
Redis and Kafka - Simplifying Advanced Design Patterns within Microservices A...Redis and Kafka - Simplifying Advanced Design Patterns within Microservices A...
Redis and Kafka - Simplifying Advanced Design Patterns within Microservices A...HostedbyConfluent
 
Redis and Kafka - Advanced Microservices Design Patterns Simplified
Redis and Kafka - Advanced Microservices Design Patterns SimplifiedRedis and Kafka - Advanced Microservices Design Patterns Simplified
Redis and Kafka - Advanced Microservices Design Patterns SimplifiedAllen Terleto
 
Microservices Patterns with GoldenGate
Microservices Patterns with GoldenGateMicroservices Patterns with GoldenGate
Microservices Patterns with GoldenGateJeffrey T. Pollock
 
We are drowning in complexity—can we do better?
We are drowning in complexity—can we do better?We are drowning in complexity—can we do better?
We are drowning in complexity—can we do better?Jonas Bonér
 
Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained  Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained Markus Eisele
 
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...Prolifics
 
Lessons from Large-Scale Cloud Software at Databricks
Lessons from Large-Scale Cloud Software at DatabricksLessons from Large-Scale Cloud Software at Databricks
Lessons from Large-Scale Cloud Software at DatabricksMatei Zaharia
 
Best Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with MicroservicesBest Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with MicroservicesJim (张建军) Zhang
 
Opportunities and Challenges for Running Scientific Workflows on the Cloud
Opportunities and Challenges for Running Scientific Workflows on the Cloud Opportunities and Challenges for Running Scientific Workflows on the Cloud
Opportunities and Challenges for Running Scientific Workflows on the Cloud lyingcom
 
Reactive programming: Brincando com eficiência, composição e assíncronia
Reactive programming: Brincando com eficiência, composição e assíncroniaReactive programming: Brincando com eficiência, composição e assíncronia
Reactive programming: Brincando com eficiência, composição e assíncroniaFelipe Mamud
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science PlatformDecision Science Community
 
IBM --Enterprise messaging in the cloud
IBM --Enterprise messaging in the cloudIBM --Enterprise messaging in the cloud
IBM --Enterprise messaging in the cloudAbhishek Sood
 
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...Lightbend
 
Guide to NoSQL with MySQL
Guide to NoSQL with MySQLGuide to NoSQL with MySQL
Guide to NoSQL with MySQLSamuel Rohaut
 
Reimagine Application Modernization with Serverless Architecture
Reimagine Application Modernization with Serverless ArchitectureReimagine Application Modernization with Serverless Architecture
Reimagine Application Modernization with Serverless ArchitectureOpteamix LLC
 
'How to build efficient backend based on microservice architecture' by Anton ...
'How to build efficient backend based on microservice architecture' by Anton ...'How to build efficient backend based on microservice architecture' by Anton ...
'How to build efficient backend based on microservice architecture' by Anton ...OdessaJS Conf
 
Accelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateAccelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateMichael Elder
 
Pragmatic Approach to Microservices and Cell-based Architecture
Pragmatic Approach to Microservices and Cell-based Architecture Pragmatic Approach to Microservices and Cell-based Architecture
Pragmatic Approach to Microservices and Cell-based Architecture Andrew Blades
 

Ähnlich wie Stateful on Stateless - The Future of Applications in the Cloud (20)

Scaling Databricks to Run Data and ML Workloads on Millions of VMs
Scaling Databricks to Run Data and ML Workloads on Millions of VMsScaling Databricks to Run Data and ML Workloads on Millions of VMs
Scaling Databricks to Run Data and ML Workloads on Millions of VMs
 
Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices Application Modernisation through Event-Driven Microservices
Application Modernisation through Event-Driven Microservices
 
Redis and Kafka - Simplifying Advanced Design Patterns within Microservices A...
Redis and Kafka - Simplifying Advanced Design Patterns within Microservices A...Redis and Kafka - Simplifying Advanced Design Patterns within Microservices A...
Redis and Kafka - Simplifying Advanced Design Patterns within Microservices A...
 
Redis and Kafka - Advanced Microservices Design Patterns Simplified
Redis and Kafka - Advanced Microservices Design Patterns SimplifiedRedis and Kafka - Advanced Microservices Design Patterns Simplified
Redis and Kafka - Advanced Microservices Design Patterns Simplified
 
Microservices Patterns with GoldenGate
Microservices Patterns with GoldenGateMicroservices Patterns with GoldenGate
Microservices Patterns with GoldenGate
 
We are drowning in complexity—can we do better?
We are drowning in complexity—can we do better?We are drowning in complexity—can we do better?
We are drowning in complexity—can we do better?
 
Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained  Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained
 
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
Architecting and Tuning IIB/eXtreme Scale for Maximum Performance and Reliabi...
 
Lessons from Large-Scale Cloud Software at Databricks
Lessons from Large-Scale Cloud Software at DatabricksLessons from Large-Scale Cloud Software at Databricks
Lessons from Large-Scale Cloud Software at Databricks
 
Best Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with MicroservicesBest Practices Building Cloud Scale Apps with Microservices
Best Practices Building Cloud Scale Apps with Microservices
 
Opportunities and Challenges for Running Scientific Workflows on the Cloud
Opportunities and Challenges for Running Scientific Workflows on the Cloud Opportunities and Challenges for Running Scientific Workflows on the Cloud
Opportunities and Challenges for Running Scientific Workflows on the Cloud
 
Reactive programming: Brincando com eficiência, composição e assíncronia
Reactive programming: Brincando com eficiência, composição e assíncroniaReactive programming: Brincando com eficiência, composição e assíncronia
Reactive programming: Brincando com eficiência, composição e assíncronia
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
IBM --Enterprise messaging in the cloud
IBM --Enterprise messaging in the cloudIBM --Enterprise messaging in the cloud
IBM --Enterprise messaging in the cloud
 
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
Modernizing Applications with Microservices and DC/OS (Lightbend/Mesosphere c...
 
Guide to NoSQL with MySQL
Guide to NoSQL with MySQLGuide to NoSQL with MySQL
Guide to NoSQL with MySQL
 
Reimagine Application Modernization with Serverless Architecture
Reimagine Application Modernization with Serverless ArchitectureReimagine Application Modernization with Serverless Architecture
Reimagine Application Modernization with Serverless Architecture
 
'How to build efficient backend based on microservice architecture' by Anton ...
'How to build efficient backend based on microservice architecture' by Anton ...'How to build efficient backend based on microservice architecture' by Anton ...
'How to build efficient backend based on microservice architecture' by Anton ...
 
Accelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateAccelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud Private
 
Pragmatic Approach to Microservices and Cell-based Architecture
Pragmatic Approach to Microservices and Cell-based Architecture Pragmatic Approach to Microservices and Cell-based Architecture
Pragmatic Approach to Microservices and Cell-based Architecture
 

Mehr von Markus Eisele

Sustainable Software Architecture - Open Tour DACH '22
Sustainable Software Architecture - Open Tour DACH '22Sustainable Software Architecture - Open Tour DACH '22
Sustainable Software Architecture - Open Tour DACH '22Markus Eisele
 
Let's be real. Quarkus in the wild.
Let's be real. Quarkus in the wild.Let's be real. Quarkus in the wild.
Let's be real. Quarkus in the wild.Markus Eisele
 
What happens when unicorns drink coffee
What happens when unicorns drink coffeeWhat happens when unicorns drink coffee
What happens when unicorns drink coffeeMarkus Eisele
 
Migrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systemsMigrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systemsMarkus Eisele
 
Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19Markus Eisele
 
Cloud wars - A LavaOne discussion in seven slides
Cloud wars - A LavaOne discussion in seven slidesCloud wars - A LavaOne discussion in seven slides
Cloud wars - A LavaOne discussion in seven slidesMarkus Eisele
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolithMarkus Eisele
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolithMarkus Eisele
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithMarkus Eisele
 
Architecting for failure - Why are distributed systems hard?
Architecting for failure - Why are distributed systems hard?Architecting for failure - Why are distributed systems hard?
Architecting for failure - Why are distributed systems hard?Markus Eisele
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolith Stay productive while slicing up the monolith
Stay productive while slicing up the monolith Markus Eisele
 
Nine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take youNine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take youMarkus Eisele
 
How lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsHow lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsMarkus Eisele
 
CQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersCQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersMarkus Eisele
 
Taking the friction out of microservice frameworks with Lagom
Taking the friction out of microservice frameworks with LagomTaking the friction out of microservice frameworks with Lagom
Taking the friction out of microservice frameworks with LagomMarkus Eisele
 
10 Golden Social Media Rules for Developer Relations Manager
10 Golden Social Media Rules for Developer Relations Manager10 Golden Social Media Rules for Developer Relations Manager
10 Golden Social Media Rules for Developer Relations ManagerMarkus Eisele
 
Hyperscale Computing, Enterprise Agility with Mesosphere
Hyperscale Computing, Enterprise Agility with MesosphereHyperscale Computing, Enterprise Agility with Mesosphere
Hyperscale Computing, Enterprise Agility with MesosphereMarkus Eisele
 
Modernizing Applications with Microservices
Modernizing Applications with MicroservicesModernizing Applications with Microservices
Modernizing Applications with MicroservicesMarkus Eisele
 
Microservice Come in Systems
Microservice Come in SystemsMicroservice Come in Systems
Microservice Come in SystemsMarkus Eisele
 
Java EE microservices architecture - evolving the monolith
Java EE microservices architecture - evolving the monolithJava EE microservices architecture - evolving the monolith
Java EE microservices architecture - evolving the monolithMarkus Eisele
 

Mehr von Markus Eisele (20)

Sustainable Software Architecture - Open Tour DACH '22
Sustainable Software Architecture - Open Tour DACH '22Sustainable Software Architecture - Open Tour DACH '22
Sustainable Software Architecture - Open Tour DACH '22
 
Let's be real. Quarkus in the wild.
Let's be real. Quarkus in the wild.Let's be real. Quarkus in the wild.
Let's be real. Quarkus in the wild.
 
What happens when unicorns drink coffee
What happens when unicorns drink coffeeWhat happens when unicorns drink coffee
What happens when unicorns drink coffee
 
Migrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systemsMigrating from Java EE to cloud-native Reactive systems
Migrating from Java EE to cloud-native Reactive systems
 
Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19Streaming to a new Jakarta EE / JOTB19
Streaming to a new Jakarta EE / JOTB19
 
Cloud wars - A LavaOne discussion in seven slides
Cloud wars - A LavaOne discussion in seven slidesCloud wars - A LavaOne discussion in seven slides
Cloud wars - A LavaOne discussion in seven slides
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolith
 
Architecting for failure - Why are distributed systems hard?
Architecting for failure - Why are distributed systems hard?Architecting for failure - Why are distributed systems hard?
Architecting for failure - Why are distributed systems hard?
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolith Stay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Nine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take youNine Neins - where Java EE will never take you
Nine Neins - where Java EE will never take you
 
How lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsHow lagom helps to build real world microservice systems
How lagom helps to build real world microservice systems
 
CQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersCQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java Developers
 
Taking the friction out of microservice frameworks with Lagom
Taking the friction out of microservice frameworks with LagomTaking the friction out of microservice frameworks with Lagom
Taking the friction out of microservice frameworks with Lagom
 
10 Golden Social Media Rules for Developer Relations Manager
10 Golden Social Media Rules for Developer Relations Manager10 Golden Social Media Rules for Developer Relations Manager
10 Golden Social Media Rules for Developer Relations Manager
 
Hyperscale Computing, Enterprise Agility with Mesosphere
Hyperscale Computing, Enterprise Agility with MesosphereHyperscale Computing, Enterprise Agility with Mesosphere
Hyperscale Computing, Enterprise Agility with Mesosphere
 
Modernizing Applications with Microservices
Modernizing Applications with MicroservicesModernizing Applications with Microservices
Modernizing Applications with Microservices
 
Microservice Come in Systems
Microservice Come in SystemsMicroservice Come in Systems
Microservice Come in Systems
 
Java EE microservices architecture - evolving the monolith
Java EE microservices architecture - evolving the monolithJava EE microservices architecture - evolving the monolith
Java EE microservices architecture - evolving the monolith
 

Kürzlich hochgeladen

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 

Kürzlich hochgeladen (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 

Stateful on Stateless - The Future of Applications in the Cloud

  • 1. Stateful Serverless The Future of Applications in the Cloud Markus Eisele Director of Developer Advocacy, Lightbend JavaZone
  • 3. Industry Trends New World: Multicore, Cloud, Mobile, IoT, Big Data, AI 1 Towards Real-time Data-centric Streaming applications Towards a World with Automated Operations: Opsless 2 3
  • 4. Reactive Systems The rules of the game have changed 4
  • 5. Towards Fast Data Real-time, Data-centric, Event-driven 5 Reactive Microservices Big Data Fast Data Applications Increasing requirements for scalability & resilience Streaming data pipelines are being served by Microservices Increasing requirements for streaming vs. batch
  • 6. 6 We predict that Serverless Computing will grow to dominate the future of Cloud Computing. - Berkeley CS Department “ Cloud computing simplified: a Berkeley view on serverless computing
  • 7. 1. Cost and resource efficient—scale down to zero 2. Pay as you go—scale up on demand 3. Automation—of scale, failure handling, and recovery 4. Great developer experience—supporting full dev cycle 5. Reduced time, complexity, and risk—when moving to the Cloud 7 SERVERLESSPROVIDES A UNIFIED SOLUTION FOR CUTTING OPERATIONAL & DEVELOPMENT COSTS
  • 8. SERVERLESS ≠FAAS 8FaaS = Function-as-a-Service
  • 9. WHY SHOULD WE LET FAASHAVE ALL THE FUN? 9
  • 10. 1. Paved the way for Serverless 2. Scaling on-demand from 0 to 10000s request, in a cost-efficient manner 3. Simplifies delivery of scalable and available applications 4. Encourages good distributed systems design (events-first, loose coupling, etc.) 5. Great as integration layer between various (ephemeral and durable) data sources 6. Great for stateless & processing-centric workloads 7. Great as data backbone moving data from A to B, transforming it along the way 10 WHAT’S GOOD WITH FAAS?
  • 11. 11 USE CASES FOR FAAS Use-cases where throughput is key rather than low latency and requests can be completed in a short time window 1. Low traffic applications—enterprise IT services, and spiky workloads 2. Stateless web applications—serving static content form S3 (or similar) 3. Embarrassingly parallel processing tasks—invoked on demand & intermittently, examples include: resizing images, object recognition, log analysis 4. Orchestration functions—integration/coordination of calls to third-party services 5. Composing chains of functions—stateless workflow management, connected via data dependencies 6. Job scheduling—CRON jobs, triggers, etc.
  • 12. 12 WHAT’S BAD WITH FAAS? Hard to build general-purpose applications 1. Retains the limitations of the 3-tier architecture 2. Functions are stateless, ephemeral, and short-lived 3. No direct addressability 4. No co-location of state and processing 5. Limited options for managing and coordinating distributed state 6. Limited options for modelling various consistency guarantees 7. Limited options for managing durable state, that is scalable and available
  • 13. What We Want The Serverless Experience— but for general-purpose applications, including modern Fast Data and Reactive systems Stateful Functions— complementing stateless functions, expanding the toolbox and supported use-cases The cost efficiencies of FaaS— allowing the user to dial in trade-offs (related to cost, SLOs, use-cases) 13
  • 14. Support For Use Cases Like Training and Serving of Machine Learning Models • Any dynamic in-memory model that needs to build up and served with low latency Real-time Distributed Stream Processing • E.g. Real-time Prediction/Recommendation Serving, Anomaly Detection User Sessions, Shopping Carts, Caching • Managing in-memory, yet durable, session state across individual requests Distributed Resilient Transactional Workflows • Saga Pattern, Workflow Orchestration, Rollback/Compensating Actions Shared Collaborative Workspaces • Collaborative Document Editing, Blackboards, Chat Rooms, etc. Leader Election • …and other standard distributed systems patterns/protocols for coordination 14
  • 15. Technical Requirements • Stateful long-lived addressable virtual components—actors • Wide range of options for distributed coordination & communication patterns • Options for managing distributed state reliably at scale—ranging from strong to eventual consistency (durable/ephemeral) • Intelligent adaptive placement of stateful functions—physical co-location of state and processing, sharding, and sticky routing • Ways of managing end-to-end guarantees and correctness • Predictable performance, latency, and throughput—in startup time, communication/coordination, and storage of data 15
  • 16. FaaS Abstracting Over Communication 16 Message In Deployment Message OutUser Function
  • 17. FaaS With CRUD 17 Message In Deployment Message OutUser Function Database Not Serverless In An Ideal World
  • 18. UNCONSTRAINED DATABASE ACCESS MAKES IT HARD TO AUTOMATE OPERATIONS 18
  • 19. 19 Constraints liberate, liberties constrain. - Runar Bjarnason “ Cloud computing simplified: a Berkeley view on serverless computing
  • 20. Stateful Serverless Abstracting Over State 20 Message In Deployment Message Out User Function Message In Message Out
  • 21. We Need Better Models For Distributed State A couple of battle-tested, yet constrained, models are: 21 EVENT SOURCING & CRDTs
  • 23. Event Sourced Functions 23 SAD PATH, RECOVER FROM FAILURE Event Log Replay Events
  • 24. ACID 2.0 ASSOCIATIVE Batch-insensitive (grouping doesn't matter) a+(b+c)=(a+b)+c 24 COMMUTATIVE Order-insensitive (order doesn't matter) a+b=b+a IDEMPOTENT Retransmission-insensitive (duplication does not matter) a+a=a
  • 25. Conflict-Free Replicated Data Types ACID 2.0 Strong Eventual Consistency Replicated & Decentralized Always Converge Correctly Monotonic Merge Function Highly Available & Scalable 25 Counters Registers Sets Maps Graphs (that all compose) CRDT DATA TYPES Convergent & Commutative Replicated Data Types - Shapiro et. al. 2011
  • 26. Serverless CRDTs 26 Message In Deployment Message Out User Function States/Deltas In States/Deltas Out
  • 27. 27 SO WHAT ARE WE DOING ABOUT IT?
  • 28. What is Akka? Cloud Native, Reactive, Distributed Systems Runtime • Implementation of the Actor Model—Concurrency and Distribution • Decentralized, Self-Organizing, Peer-to-peer Service Mesh • Autonomous, Self-healing, Event-driven Services High Performance, High Throughput, and Low Latency • Communication: Point-to-Point, Pub-Sub, and Streaming • Protocols: HTTP, TCP, Aeron (UDP), Kafka, Reactive Streams, gRPC Distributed State Management • CRDTs, Event Sourcing, CQRS • Multi-Datacenter Clustering and Log Replication Find out more at: akka.io 28
  • 29. Serving of Stateful Functions 29 Kubernetes Pod Knative Stateful Serving Knative Events Distributed Datastore (Cassandra, DynamoDB, Spanner,…) GRPC User Function (JavaScript, Go, Java…) Kubernetes PodUser Function (JavaScript, Go, Java…) Kubernetes PodUser Function (JavaScript, Go, Java…)
  • 30. Kubernetes Pod Kubernetes Pod Kubernetes Pod Powered by Akka Cluster Sidecars 30 Kubernetes PodUser Function (JavaScript, Go, Java…) Kubernetes PodUser Function (JavaScript, Go, Java…) Kubernetes PodUser Function (JavaScript, Go, Java…) Knative Stateful Serving Akka Sidecar Akka Sidecar Akka Sidecar Distributed Datastore (Cassandra, DynamoDB, Spanner,…) Akka Cluster GRPC
  • 31. In Summary 1. The promise of Serverless is revolutionary and could grow to dominate the future of Cloud Computing 2. FaaS is a good first step, but with limited addressable use-cases 3. Serverless 2.0 needs a runtime & programming model for general-purpose application development 4. We have started building it with Knative, Akka, and gRPC 5. We need your help 31
  • 33. Reactive Microservices Architecture Written for architects and developers that must quickly gain a fundamental understanding of microservice-based architectures, this free O’Reilly report explores the journey from SOA to microservices, discusses approaches to dismantling your monolith, and reviews the key tenets of a Reactive microservice: • Isolate all the Things • Act Autonomously • Do One Thing, and Do It Well • Own Your State, Exclusively • Embrace Asynchronous Message-Passing • Stay Mobile, but Addressable • Collaborate as Systems to Solve Problems http://bit.ly/ReactiveMicroservice 33
  • 34. Developing Reactive Microservices The detailed example in this report is based on Lagom, a new framework that helps you follow the requirements for building distributed, reactive systems. • Get an overview of the Reactive Programming model and basic requirements for developing reactive microservices • Learn how to create base services, expose endpoints, and then connect them with a simple, web-based user interface • Understand how to deal with persistence, state, and clients • Use integration technologies to start a successful migration away from legacy systems http://bit.ly/DevelopReactiveMicroservice 34
  • 35. Modern Java EE Design Patterns • Understand the challenges of starting a greenfield development vs tearing apart an existing brownfield application into services • Examine your business domain to see if microservices would be a good fit • Explore best practices for automation, high availability, data separation, and performance • Align your development teams around business capabilities and responsibilities • Inspect design patterns such as aggregator, proxy, pipeline, or shared resources to model service interactions http://bit.ly/SustainableEnterprise 35
  • 36. Thank You Page Markus Eisele @myfear blog.eisele.net