SlideShare uma empresa Scribd logo
1 de 57
Baixar para ler offline
Serverless Domain-Driven
Design
At last some productivity
Asher Sterkin
asher.sterkin@gmail.com
Serverless Meetup
April 25, 2017, Tel-Aviv
About Myself
● Close to 40 years of experience in the software technology field
● VP Technology, Chief Technology Advisor Group, NDS (2010 - 2012)
● Distinguished Engineer, Office of CTO, Cisco Engineering (2012 - 2016)
● Today CTO at IRKI
● Focusing on software product line strategy
○ Lean Startup
○ Wardley Maps
○ (Strategic) Domain-Driven Design
○ Cynefin
○ Promise Theory
○ Serverless Architecture
○ ...
Metallic Sage Green Luster,
Opaque Metallic Matte
Galvanized SF Pink Blush,
Opaque Galvanized
Semi-Matte
Metallic Dark Raspberry
Iris,
Opaque Metallic Matte
Light Olive Luster,
Opaque Metallic Matte
Serverless ←→ DDD
● DDD & Microservices
● Serverless → DDD
○ Strategic DDD
○ Tactical DDD
○ Serverless AI → DDD
● Serverless ← DDD
● Serverless DDD → Productivity
Video, Slides
Key Messages
Domain Model
Ubiquitous Language
Bounded Context
Permeable Context Boundaries Result in BBoM
Symptoms of Rotting Design
● Rigidity - hard to change
● Fragility - easy to break
● Immobility - hard to reuse
● Viscosity - hard to do the right thing
● Opacity - disorganized expression
● ...
10
4+1 View of Software Architecture
Conceptual Physical
Process View Deployment View
Logical View
Use-Case View
Implementation View
End-user
Functionality
Programmers
Software management
Performance
Scalability
Throughput
System integrators
System topology
Delivery, installation
communication
System engineering
Analysts/Designers
Structure
P. Krutchen, “Architectural Blueprints - The “4+1” View Model of Software Architecture
11
4+1 View of Software Architecture
Conceptual Physical
Process View Deployment View
Logical View
Use-Case View
Implementation View
End-user
Functionality
Programmers
Software management
Performance
Scalability
Throughput
System integrators
System topology
Delivery, installation
communication
System engineering
Analysts/Designers
Structure
Bounded Context → Microservice
Serverless → Strategic
DDD
Strategic Domain-Driven Design
Vernon Vaughn, “Implementing Domain-Driven Design”
Strategic Domain-Driven Design
Strategic Domain-Driven Design
Fashion Accessories
Strategic Domain-Driven Design
Fashion Accessories
Strategic Domain-Driven Design
Fashion Accessories
Disorder
Disorder
Disorder
Pull Up/Push Down
Pull up useful
abstractions
Push down support and
generic stuff; control
through OSS contributions
Fashion Accessories
There is no ideal
core domain model
sitting and waiting to
be discovered.
It’s more like
attractor gradually
emerging out of
multiple “safe-to-fail”
experimentations
Strategic Domain-Driven Design
● Compute
● Network
● Storage
● Intelligence
Serverless
● 2D Shape
● 3D Shape
● ...
Geometry
● Color
● ...
Graphics
Microservice = CF Stack?
ERP, CRM,
SCM, PLM,
ECM, CAD, ...
Taxes
Shipment
Web Site
Inventory
....
Fashion Accessories
Strategic Domain-Driven Design
● Compute
● Network
● Storage
● Intelligence
Serverless BC
● 2D Shape
● 3D Shape
● ...
Geometry
● Color
● ...
Graphics
Microservice = CF Stack?
ERP, CRM,
SCM, PLM,
ECM, ...
Taxes
Shipment
Web Site
Inventory
....
Fashion Accessories
Strategic Domain-Driven Design
● Compute
● Network
● Storage
● Intelligence
Serverless BC
● 2D Shape
● 3D Shape
● ...
Geometry
● Color
● ...
Graphics
Microservice = CF Stack?
ERP, CRM,
SCM, PLM,
ECM, ...
Taxes
Shipment
Web Site
Inventory
....
Fashion Accessories
Strategic Domain-Driven Design
● 2D Shape
● 3D Shape
● ...
Geometry
● Color
● ...
Graphics
● Compute
● Network
● Storage
● Intelligence
Serverless BC
Microservice = CF Stack?
ERP, CRM,
SCM, PLM,
ECM, ...
Taxes
Shipment
Web Site
Inventory
....
Fashion Accessories
...
Context Map is the Key
● 2D Shape
● 3D Shape
● ...
Geometry
● Color
● ...
Graphics
● Compute
● Network
● Storage
● Intelligence
Serverless BC
Microservice = CF Stack?
ERP, CRM,
SCM, PLM,
ECM, ...
Taxes
Shipment
Web Site
Inventory
....
Fashion Accessories
...
ACL
ACL
ACL
Emerging Core
Domain so Far
Types
Components Products
Inventory
Items Customers
Manufacturers
Vendors
Catalog
Items
Shapes
Colors
Pictures
Amazon is Eating Software ...
valuechain
evolutionG C P U
eTailer
Service
AIaaS
FaaS
PaaS
IaaS
SCM
...
Web Scale
Operation
New
Service
Amazon is Eating Software ...
valuechain
evolutionG C P U
Video
Service
AIaaS
FaaS
PaaS
IaaS
Recommendations
...
Cloud
Native
Ability to build a Web Scale Application is
not a differentiator anymore!
Serverless Strategic DDD
Prefer utility AIaaS
Prefer product
or utility SaaS
Major effort
Pull up useful
abstractions
Proper timing for API
Push down support and
generic stuff; control
through OSS contributions
Serverless → Tactical
DDD
Bounded Context
Tactical DDD Patterns
Domain Model
Ubiquitous Language Nouns, Adjectives, Imperative Verbs, Interrogative Verbs, Perfect Tense Verbs
Entities, Values, Commands, Queries, Events, Aggregates, Repository,
Computational Services, Factories, ACL, Saga (Process Manager)
Serverless Cloud
Environment
Repository
Strong Transaction
Consistency + Invariant
DDD Aggregate and Repository
<<Aggregate Root>>
Entity
Entity Value
Value
Eventual
Transaction
Consistency
Storage
Command/
Query
Request
Processor
Command or Query
Requests
Domain Events
(AWS) Serverless DDD Patterns
● Repository
○ CRUD
○ CQRS
○ CQRS/ES
○ CQRS/ES IoT Scale
● Computation Service
○ Function
○ Batch
○ Map/Reduce
● Saga (Process Manager)
Default Serverless DDD Repository (CRUD)
DynamoDB Streams
Command/Query
Handler
Domain Event
Handler
Strong vs. Eventual Consistency
Bead Shape
Bead Color
Bead
Product Type
Component Type
Serverless DDD Repository (CQRS)
DynamoDB Streams
Command Handler Query View Builder
Query Handler
● Ad-hoc vs. precomputed
● Inter- vs. Intra Aggregate
Query View Store
SOT Store
● Command vs. Query
Storage optimization
● Query interface
complexity
Bead Color/Shape Compatibility
Serverless DDD Repository (CQRS/ES)
DynamoDB Streams
Command Handler Projection Builders
Query Handler
● Ad-hoc vs. precomputed
● Inter- vs. Intra Aggregate
Query View Store
Event Store
Snapshot Store
● Immutability
● Auditing
Product Spec
Product/Component Inventory
Event Store Patterns
● State Change Events (git style)
● Measurement/Observation (telemetry)
● Transaction/Account/Entry (accounting)
● Meaningful Domain Events
Snapshot Store Patterns
● Most Recent State
● State Change History
● Multiple Worlds
Serverless DDD Repository (CQRS/ES IoT Scale)
Edge
Command/Event
Handler
Cloud
Command/Event
Handler
Thing Event Stream
Thing Event Handlers
Thing Snapshot View
Thing Projection Builder
Thing Event Store
Serverless DDD Computation Services
Command/Query/Event
Handler
Computation Service
Bead Color/Shape Permutations
Bead Color
Bead Shape
Bead Component
Most popular products
Most popular colors per country
Minimal inventory level per product
...
Serverless DDD Saga (Process Manager)
Product Picture Album Building
Raw Pictures Catalog Pictures
Product Catalog
Background Cleanup Color/Light Adjustments Resolution Transcoding
Serverless AI → DDD
ignore AI
Irrelevance
adopt AI
Wasted time
and resources
Serverless DDD AI Patterns
● Pereferrial Adapters: audio, video, picture, text
● Application Services: dynamic state machines
● Command/Query Request Processors: classification, matching
● Event Handlers: anomaly detection
● Computation Services: analysis, generation, transformation, optimization
● Batch Processing: feedback and learning
Serverless AI ← DDD
Pereferrial Adapters Application Services
Dynamic State
Machines
Application-level Stimulo
Domain Services
Command/Query Requests EventsRaw A/V/T
Inputs
Dynamic
Classifications
Anomaly
Detection
Event Processors
Feedback and
Training
Pinterest/Instagram/Facebook/Twitter Feedback Processing
Best Earrings Match
Best Necklace Match
Historical
Data
Serverless → DDD
What is Missing?
Serverless → DDD Wish List
● Support for Actor Model
● Support for Reactive Programming
● JavaScript, JSON and YAML are (cloud) machine-level languages - need something at higher
level
● Simple modeling tool (lightweight UML)
● Fully fledged IDE supporting above
● Support for Semantic Maps (kind of AI service)
Serverless ← DDD
Serverless
Creating this
mess from
Lambda
Functions
would not
make it better
DDD for Serverless
Use DDD Strategic and Tactical
patterns as Serverless Architecture
organizing principles to prevent
ending with just a distributed version
of BBoM.
One who increases flesh, increases worms; one who
increases possessions, increases worry; one who
increases wives, increases witchcraft; one who increases
maidservants, increases promiscuity; one who increases
man-servants, increases thievery;
Pirkey Avot Chapter 2/7
‫כשפים‬ ‫מרבה‬ ‫נשים‬ ‫מרבה‬ .‫דאגה‬ ‫מרבה‬ ‫נכסים‬ ‫מרבה‬ .‫רימה‬ ‫מרבה‬ ‫בשר‬ ‫.מרבה‬
‫גזל‬ ‫מרבה‬ ‫עבדים‬ ‫מרבה‬ .‫זימה‬ ‫מרבה‬ ‫שפחות‬ ‫מרבה‬
Kohelet Chapter 1/18
18For in much wisdom is much vexation, and he who increases knowledge,
increases pain.
:‫ְאוֹב‬‫כ‬ַ‫מ‬ ‫ִיף‬‫ס‬‫יוֹ‬ ‫ַת‬‫ע‬ַ‫דּ‬ ‫ִיף‬‫ס‬‫ְיוֹ‬‫ו‬ ‫ַס‬‫ע‬ָ‫כּ‬ ‫ב‬ ָ‫ר‬ ‫ָה‬‫מ‬ְ‫כ‬ָ‫ח‬ ‫ֹב‬ ‫ְר‬‫בּ‬ ‫ִי‬‫כּ‬‫יח‬
Too Many Moving Parts
...
DDD for Serverless
Treat ‘em all as Aggregate
Repositories within the
corresponding Bounded Context of
Generic Infrastructure Sub-Domain
At Last Some Productivity
How to Measure Productivity?
● Lines of Code - well known anti-pattern
● Story Points - less well known anti-pattern (velocity is not productivity)
● Features - “feature train” (producing many features nobody needs)
● Value - too much depends on Product Owner; not under direct control
● Domain Insights - only domain experts could bring it → a lot of experimentation
“Software Development is a
Learning Process. Running code is
byproduct.”
A.Brandolini
“Consensus is poisonous
for innovation”
D. Snowden
The last slide

Mais conteúdo relacionado

Mais procurados

CQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architectureCQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architectureThomas Jaskula
 
How to Implement Domain Driven Design in Real Life SDLC
How to Implement Domain Driven Design  in Real Life SDLCHow to Implement Domain Driven Design  in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLCAbdul Karim
 
Domain Driven Design: Zero to Hero
Domain Driven Design: Zero to HeroDomain Driven Design: Zero to Hero
Domain Driven Design: Zero to HeroFabrício Rissetto
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven DesignAndriy Buday
 
Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Alan Christensen
 
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesDomain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesRadosław Maziarka
 
Domain driven design: a gentle introduction
Domain driven design:  a gentle introductionDomain driven design:  a gentle introduction
Domain driven design: a gentle introductionAsher Sterkin
 
DDD - 1 - A gentle introduction to Domain Driven Design.pdf
DDD - 1 - A gentle introduction to Domain Driven Design.pdfDDD - 1 - A gentle introduction to Domain Driven Design.pdf
DDD - 1 - A gentle introduction to Domain Driven Design.pdfEleonora Ciceri
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesAraf Karsh Hamid
 
Domain Driven Design(DDD) Presentation
Domain Driven Design(DDD) PresentationDomain Driven Design(DDD) Presentation
Domain Driven Design(DDD) PresentationOğuzhan Soykan
 
Using patterns and pattern languages to make better architectural decisions
Using patterns and pattern languages to make better architectural decisions Using patterns and pattern languages to make better architectural decisions
Using patterns and pattern languages to make better architectural decisions Chris Richardson
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignRyan Riley
 
Clean architecture
Clean architectureClean architecture
Clean architectureandbed
 
Shaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsShaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsAsher Sterkin
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven DesignNader Albert
 

Mais procurados (20)

CQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architectureCQRS recipes or how to cook your architecture
CQRS recipes or how to cook your architecture
 
How to Implement Domain Driven Design in Real Life SDLC
How to Implement Domain Driven Design  in Real Life SDLCHow to Implement Domain Driven Design  in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLC
 
Domain Driven Design: Zero to Hero
Domain Driven Design: Zero to HeroDomain Driven Design: Zero to Hero
Domain Driven Design: Zero to Hero
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Domain Driven Design Demonstrated
Domain Driven Design Demonstrated Domain Driven Design Demonstrated
Domain Driven Design Demonstrated
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and MicroservicesDomain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and Microservices
 
Domain driven design: a gentle introduction
Domain driven design:  a gentle introductionDomain driven design:  a gentle introduction
Domain driven design: a gentle introduction
 
DDD - 1 - A gentle introduction to Domain Driven Design.pdf
DDD - 1 - A gentle introduction to Domain Driven Design.pdfDDD - 1 - A gentle introduction to Domain Driven Design.pdf
DDD - 1 - A gentle introduction to Domain Driven Design.pdf
 
Domain Driven Design
Domain Driven Design Domain Driven Design
Domain Driven Design
 
Introduction to DDD
Introduction to DDDIntroduction to DDD
Introduction to DDD
 
Microservices Architecture & Testing Strategies
Microservices Architecture & Testing StrategiesMicroservices Architecture & Testing Strategies
Microservices Architecture & Testing Strategies
 
Domain Driven Design(DDD) Presentation
Domain Driven Design(DDD) PresentationDomain Driven Design(DDD) Presentation
Domain Driven Design(DDD) Presentation
 
CQRS in 4 steps
CQRS in 4 stepsCQRS in 4 steps
CQRS in 4 steps
 
Domain driven design
Domain driven designDomain driven design
Domain driven design
 
Using patterns and pattern languages to make better architectural decisions
Using patterns and pattern languages to make better architectural decisions Using patterns and pattern languages to make better architectural decisions
Using patterns and pattern languages to make better architectural decisions
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Clean architecture
Clean architectureClean architecture
Clean architecture
 
Shaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsShaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patterns
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 

Destaque

Data strategy in a Big Data world
Data strategy in a Big Data worldData strategy in a Big Data world
Data strategy in a Big Data worldCraig Milroy
 
Predictive Analytics World for Industry 4.0 Munich
Predictive Analytics World for Industry 4.0 MunichPredictive Analytics World for Industry 4.0 Munich
Predictive Analytics World for Industry 4.0 MunichRising Media Ltd.
 
CNCF and Fujitsu
CNCF and FujitsuCNCF and Fujitsu
CNCF and FujitsuLF Events
 
Predictive Analytics World for Business Deutschland 2017
Predictive Analytics World for Business Deutschland 2017Predictive Analytics World for Business Deutschland 2017
Predictive Analytics World for Business Deutschland 2017Rising Media Ltd.
 
Software strategy for startups
Software strategy for startupsSoftware strategy for startups
Software strategy for startupsAsher Sterkin
 
My Robot Can Learn -Using Reinforcement Learning to Teach my Robot
My Robot Can Learn -Using Reinforcement Learning to Teach my RobotMy Robot Can Learn -Using Reinforcement Learning to Teach my Robot
My Robot Can Learn -Using Reinforcement Learning to Teach my RobotRising Media Ltd.
 
Industrial Analytics and Predictive Maintenance 2017 - 2022
Industrial Analytics and Predictive Maintenance 2017 - 2022Industrial Analytics and Predictive Maintenance 2017 - 2022
Industrial Analytics and Predictive Maintenance 2017 - 2022Rising Media Ltd.
 
Predictive Analytics World Manufacturing Düsseldorf 2017 - EN
Predictive Analytics World Manufacturing Düsseldorf 2017 - ENPredictive Analytics World Manufacturing Düsseldorf 2017 - EN
Predictive Analytics World Manufacturing Düsseldorf 2017 - ENRising Media Ltd.
 
Office of the Chief Data Officer. How is your office organized?
Office of the Chief Data Officer. How is your office organized?Office of the Chief Data Officer. How is your office organized?
Office of the Chief Data Officer. How is your office organized?Craig Milroy
 
Chief Data Officer: Top Ten Learnings...
Chief Data Officer: Top Ten Learnings...Chief Data Officer: Top Ten Learnings...
Chief Data Officer: Top Ten Learnings...Craig Milroy
 
Process Mining based on the Internet of Events
Process Mining based on the Internet of EventsProcess Mining based on the Internet of Events
Process Mining based on the Internet of EventsRising Media Ltd.
 
BDA310 An Introduction to the AI services at AWS
BDA310 An Introduction to the AI services at AWSBDA310 An Introduction to the AI services at AWS
BDA310 An Introduction to the AI services at AWSAmazon Web Services
 
Overview of IBM Watson Services via Blue Mix
Overview of IBM Watson Services via Blue Mix Overview of IBM Watson Services via Blue Mix
Overview of IBM Watson Services via Blue Mix Craig Milroy
 
2分で分かる富士通クラウドWebセミナー
2分で分かる富士通クラウドWebセミナー2分で分かる富士通クラウドWebセミナー
2分で分かる富士通クラウドWebセミナーFujitsu Limited
 
How does semantic technology work?
How does semantic technology work? How does semantic technology work?
How does semantic technology work? Graeme Wood
 
Chief Data Officer: DataOps - Transformation of the Business Data Environment
Chief Data Officer: DataOps - Transformation of the Business Data EnvironmentChief Data Officer: DataOps - Transformation of the Business Data Environment
Chief Data Officer: DataOps - Transformation of the Business Data EnvironmentCraig Milroy
 
IoT and AI Services in Healthcare | AWS Public Sector Summit 2017
 IoT and AI Services in Healthcare | AWS Public Sector Summit 2017 IoT and AI Services in Healthcare | AWS Public Sector Summit 2017
IoT and AI Services in Healthcare | AWS Public Sector Summit 2017Amazon Web Services
 
Strategy toolbox for startsups
Strategy toolbox for startsupsStrategy toolbox for startsups
Strategy toolbox for startsupsAsher Sterkin
 
Overview of Microsoft Azure AI Services
Overview of Microsoft Azure AI ServicesOverview of Microsoft Azure AI Services
Overview of Microsoft Azure AI ServicesCraig Milroy
 
Compared: IBM Watson Services / Microsoft Azure Services
Compared: IBM Watson Services / Microsoft Azure ServicesCompared: IBM Watson Services / Microsoft Azure Services
Compared: IBM Watson Services / Microsoft Azure ServicesCraig Milroy
 

Destaque (20)

Data strategy in a Big Data world
Data strategy in a Big Data worldData strategy in a Big Data world
Data strategy in a Big Data world
 
Predictive Analytics World for Industry 4.0 Munich
Predictive Analytics World for Industry 4.0 MunichPredictive Analytics World for Industry 4.0 Munich
Predictive Analytics World for Industry 4.0 Munich
 
CNCF and Fujitsu
CNCF and FujitsuCNCF and Fujitsu
CNCF and Fujitsu
 
Predictive Analytics World for Business Deutschland 2017
Predictive Analytics World for Business Deutschland 2017Predictive Analytics World for Business Deutschland 2017
Predictive Analytics World for Business Deutschland 2017
 
Software strategy for startups
Software strategy for startupsSoftware strategy for startups
Software strategy for startups
 
My Robot Can Learn -Using Reinforcement Learning to Teach my Robot
My Robot Can Learn -Using Reinforcement Learning to Teach my RobotMy Robot Can Learn -Using Reinforcement Learning to Teach my Robot
My Robot Can Learn -Using Reinforcement Learning to Teach my Robot
 
Industrial Analytics and Predictive Maintenance 2017 - 2022
Industrial Analytics and Predictive Maintenance 2017 - 2022Industrial Analytics and Predictive Maintenance 2017 - 2022
Industrial Analytics and Predictive Maintenance 2017 - 2022
 
Predictive Analytics World Manufacturing Düsseldorf 2017 - EN
Predictive Analytics World Manufacturing Düsseldorf 2017 - ENPredictive Analytics World Manufacturing Düsseldorf 2017 - EN
Predictive Analytics World Manufacturing Düsseldorf 2017 - EN
 
Office of the Chief Data Officer. How is your office organized?
Office of the Chief Data Officer. How is your office organized?Office of the Chief Data Officer. How is your office organized?
Office of the Chief Data Officer. How is your office organized?
 
Chief Data Officer: Top Ten Learnings...
Chief Data Officer: Top Ten Learnings...Chief Data Officer: Top Ten Learnings...
Chief Data Officer: Top Ten Learnings...
 
Process Mining based on the Internet of Events
Process Mining based on the Internet of EventsProcess Mining based on the Internet of Events
Process Mining based on the Internet of Events
 
BDA310 An Introduction to the AI services at AWS
BDA310 An Introduction to the AI services at AWSBDA310 An Introduction to the AI services at AWS
BDA310 An Introduction to the AI services at AWS
 
Overview of IBM Watson Services via Blue Mix
Overview of IBM Watson Services via Blue Mix Overview of IBM Watson Services via Blue Mix
Overview of IBM Watson Services via Blue Mix
 
2分で分かる富士通クラウドWebセミナー
2分で分かる富士通クラウドWebセミナー2分で分かる富士通クラウドWebセミナー
2分で分かる富士通クラウドWebセミナー
 
How does semantic technology work?
How does semantic technology work? How does semantic technology work?
How does semantic technology work?
 
Chief Data Officer: DataOps - Transformation of the Business Data Environment
Chief Data Officer: DataOps - Transformation of the Business Data EnvironmentChief Data Officer: DataOps - Transformation of the Business Data Environment
Chief Data Officer: DataOps - Transformation of the Business Data Environment
 
IoT and AI Services in Healthcare | AWS Public Sector Summit 2017
 IoT and AI Services in Healthcare | AWS Public Sector Summit 2017 IoT and AI Services in Healthcare | AWS Public Sector Summit 2017
IoT and AI Services in Healthcare | AWS Public Sector Summit 2017
 
Strategy toolbox for startsups
Strategy toolbox for startsupsStrategy toolbox for startsups
Strategy toolbox for startsups
 
Overview of Microsoft Azure AI Services
Overview of Microsoft Azure AI ServicesOverview of Microsoft Azure AI Services
Overview of Microsoft Azure AI Services
 
Compared: IBM Watson Services / Microsoft Azure Services
Compared: IBM Watson Services / Microsoft Azure ServicesCompared: IBM Watson Services / Microsoft Azure Services
Compared: IBM Watson Services / Microsoft Azure Services
 

Semelhante a Serverless ddd

Big Data in 200 km/h | AWS Big Data Demystified #1.3
Big Data in 200 km/h | AWS Big Data Demystified #1.3  Big Data in 200 km/h | AWS Big Data Demystified #1.3
Big Data in 200 km/h | AWS Big Data Demystified #1.3 Omid Vahdaty
 
WSO2Con USA 2015: An Introduction to the WSO2 Analytics Platform
WSO2Con USA 2015: An Introduction to the WSO2 Analytics PlatformWSO2Con USA 2015: An Introduction to the WSO2 Analytics Platform
WSO2Con USA 2015: An Introduction to the WSO2 Analytics PlatformWSO2
 
AWS vs Azure vs Google (GCP) - Slides
AWS vs Azure vs Google (GCP) - SlidesAWS vs Azure vs Google (GCP) - Slides
AWS vs Azure vs Google (GCP) - SlidesTobyWilman
 
AWS Big Data Demystified #1.2 | Big Data architecture lessons learned
AWS Big Data Demystified #1.2 | Big Data architecture lessons learned AWS Big Data Demystified #1.2 | Big Data architecture lessons learned
AWS Big Data Demystified #1.2 | Big Data architecture lessons learned Omid Vahdaty
 
Worldwide Local Latency With ScyllaDB
Worldwide Local Latency With ScyllaDB Worldwide Local Latency With ScyllaDB
Worldwide Local Latency With ScyllaDB ScyllaDB
 
Serious Application Development In Serverless
Serious Application Development In ServerlessSerious Application Development In Serverless
Serious Application Development In Serverlessmfazal
 
AWS Techniques and lessons writing a minimal cost gitlab runner
AWS Techniques and lessons writing a minimal cost gitlab runnerAWS Techniques and lessons writing a minimal cost gitlab runner
AWS Techniques and lessons writing a minimal cost gitlab runnerAnthony Scata
 
Zeotap: Moving to ScyllaDB - A Graph of Billions Scale
Zeotap: Moving to ScyllaDB - A Graph of Billions ScaleZeotap: Moving to ScyllaDB - A Graph of Billions Scale
Zeotap: Moving to ScyllaDB - A Graph of Billions ScaleScyllaDB
 
Zeotap: Moving to ScyllaDB - A Graph of Billions Scale
Zeotap: Moving to ScyllaDB - A Graph of Billions ScaleZeotap: Moving to ScyllaDB - A Graph of Billions Scale
Zeotap: Moving to ScyllaDB - A Graph of Billions ScaleSaurabh Verma
 
Shaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsShaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsShimon Tolts
 
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)MicroAd, Inc.(Engineer)
 
How to combine Db2 on Z, IBM Db2 Analytics Accelerator and IBM Machine Learni...
How to combine Db2 on Z, IBM Db2 Analytics Accelerator and IBM Machine Learni...How to combine Db2 on Z, IBM Db2 Analytics Accelerator and IBM Machine Learni...
How to combine Db2 on Z, IBM Db2 Analytics Accelerator and IBM Machine Learni...Gustav Lundström
 
mloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentDavid Galeano
 
Generative Design 101 for Architecture, Engineering & Construction by Jad Del...
Generative Design 101 for Architecture, Engineering & Construction by Jad Del...Generative Design 101 for Architecture, Engineering & Construction by Jad Del...
Generative Design 101 for Architecture, Engineering & Construction by Jad Del...Jad DELLEL
 
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB
 
From Flat to Stacked - Alicia C Newberry - City of Milton
From Flat to Stacked - Alicia C Newberry - City of MiltonFrom Flat to Stacked - Alicia C Newberry - City of Milton
From Flat to Stacked - Alicia C Newberry - City of MiltonAlicia Newberry
 
Build Low-Latency Applications in Rust on ScyllaDB
Build Low-Latency Applications in Rust on ScyllaDBBuild Low-Latency Applications in Rust on ScyllaDB
Build Low-Latency Applications in Rust on ScyllaDBScyllaDB
 
Breaking down monoliths - DEM04 - Atlanta AWS Summit
Breaking down monoliths - DEM04 - Atlanta AWS SummitBreaking down monoliths - DEM04 - Atlanta AWS Summit
Breaking down monoliths - DEM04 - Atlanta AWS SummitAmazon Web Services
 
Developing cloud serverless components in Python: DDD Perspective
Developing cloud serverless components in Python: DDD PerspectiveDeveloping cloud serverless components in Python: DDD Perspective
Developing cloud serverless components in Python: DDD PerspectiveAsher Sterkin
 

Semelhante a Serverless ddd (20)

AI as a service
AI as a serviceAI as a service
AI as a service
 
Big Data in 200 km/h | AWS Big Data Demystified #1.3
Big Data in 200 km/h | AWS Big Data Demystified #1.3  Big Data in 200 km/h | AWS Big Data Demystified #1.3
Big Data in 200 km/h | AWS Big Data Demystified #1.3
 
WSO2Con USA 2015: An Introduction to the WSO2 Analytics Platform
WSO2Con USA 2015: An Introduction to the WSO2 Analytics PlatformWSO2Con USA 2015: An Introduction to the WSO2 Analytics Platform
WSO2Con USA 2015: An Introduction to the WSO2 Analytics Platform
 
AWS vs Azure vs Google (GCP) - Slides
AWS vs Azure vs Google (GCP) - SlidesAWS vs Azure vs Google (GCP) - Slides
AWS vs Azure vs Google (GCP) - Slides
 
AWS Big Data Demystified #1.2 | Big Data architecture lessons learned
AWS Big Data Demystified #1.2 | Big Data architecture lessons learned AWS Big Data Demystified #1.2 | Big Data architecture lessons learned
AWS Big Data Demystified #1.2 | Big Data architecture lessons learned
 
Worldwide Local Latency With ScyllaDB
Worldwide Local Latency With ScyllaDB Worldwide Local Latency With ScyllaDB
Worldwide Local Latency With ScyllaDB
 
Serious Application Development In Serverless
Serious Application Development In ServerlessSerious Application Development In Serverless
Serious Application Development In Serverless
 
AWS Techniques and lessons writing a minimal cost gitlab runner
AWS Techniques and lessons writing a minimal cost gitlab runnerAWS Techniques and lessons writing a minimal cost gitlab runner
AWS Techniques and lessons writing a minimal cost gitlab runner
 
Zeotap: Moving to ScyllaDB - A Graph of Billions Scale
Zeotap: Moving to ScyllaDB - A Graph of Billions ScaleZeotap: Moving to ScyllaDB - A Graph of Billions Scale
Zeotap: Moving to ScyllaDB - A Graph of Billions Scale
 
Zeotap: Moving to ScyllaDB - A Graph of Billions Scale
Zeotap: Moving to ScyllaDB - A Graph of Billions ScaleZeotap: Moving to ScyllaDB - A Graph of Billions Scale
Zeotap: Moving to ScyllaDB - A Graph of Billions Scale
 
Shaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patternsShaping serverless architecture with domain driven design patterns
Shaping serverless architecture with domain driven design patterns
 
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)
DDD&Scalaで作られたプロダクトはその後どうなったか?(Current state of products made with DDD & Scala)
 
How to combine Db2 on Z, IBM Db2 Analytics Accelerator and IBM Machine Learni...
How to combine Db2 on Z, IBM Db2 Analytics Accelerator and IBM Machine Learni...How to combine Db2 on Z, IBM Db2 Analytics Accelerator and IBM Machine Learni...
How to combine Db2 on Z, IBM Db2 Analytics Accelerator and IBM Machine Learni...
 
mloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game developmentmloc.js 2014 - JavaScript and the browser as a platform for game development
mloc.js 2014 - JavaScript and the browser as a platform for game development
 
Generative Design 101 for Architecture, Engineering & Construction by Jad Del...
Generative Design 101 for Architecture, Engineering & Construction by Jad Del...Generative Design 101 for Architecture, Engineering & Construction by Jad Del...
Generative Design 101 for Architecture, Engineering & Construction by Jad Del...
 
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
From Flat to Stacked - Alicia C Newberry - City of Milton
From Flat to Stacked - Alicia C Newberry - City of MiltonFrom Flat to Stacked - Alicia C Newberry - City of Milton
From Flat to Stacked - Alicia C Newberry - City of Milton
 
Build Low-Latency Applications in Rust on ScyllaDB
Build Low-Latency Applications in Rust on ScyllaDBBuild Low-Latency Applications in Rust on ScyllaDB
Build Low-Latency Applications in Rust on ScyllaDB
 
Breaking down monoliths - DEM04 - Atlanta AWS Summit
Breaking down monoliths - DEM04 - Atlanta AWS SummitBreaking down monoliths - DEM04 - Atlanta AWS Summit
Breaking down monoliths - DEM04 - Atlanta AWS Summit
 
Developing cloud serverless components in Python: DDD Perspective
Developing cloud serverless components in Python: DDD PerspectiveDeveloping cloud serverless components in Python: DDD Perspective
Developing cloud serverless components in Python: DDD Perspective
 

Mais de Asher Sterkin

Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024Asher Sterkin
 
Cloud Infrastructure from Python Code: PyCon DE-23
Cloud Infrastructure from Python Code: PyCon DE-23Cloud Infrastructure from Python Code: PyCon DE-23
Cloud Infrastructure from Python Code: PyCon DE-23Asher Sterkin
 
pyjamas22_ generic composite in python.pdf
pyjamas22_ generic composite in python.pdfpyjamas22_ generic composite in python.pdf
pyjamas22_ generic composite in python.pdfAsher Sterkin
 
If your computer is cloud what its Operating System look like?
If your computer is cloud what its Operating System look like?If your computer is cloud what its Operating System look like?
If your computer is cloud what its Operating System look like?Asher Sterkin
 
Serverless flow programming a new perspective (py web meetup, sept 2nd, 2019...
Serverless flow programming  a new perspective (py web meetup, sept 2nd, 2019...Serverless flow programming  a new perspective (py web meetup, sept 2nd, 2019...
Serverless flow programming a new perspective (py web meetup, sept 2nd, 2019...Asher Sterkin
 
Documenting serverless architectures could we do it better - o'reily sa con...
Documenting serverless architectures  could we do it better  - o'reily sa con...Documenting serverless architectures  could we do it better  - o'reily sa con...
Documenting serverless architectures could we do it better - o'reily sa con...Asher Sterkin
 
Shaping serverless architecture with domain driven design patterns - py web-il
Shaping serverless architecture with domain driven design patterns - py web-ilShaping serverless architecture with domain driven design patterns - py web-il
Shaping serverless architecture with domain driven design patterns - py web-ilAsher Sterkin
 
What is exactly anti fragile in dev ops - v3
What is exactly anti fragile in dev ops - v3What is exactly anti fragile in dev ops - v3
What is exactly anti fragile in dev ops - v3Asher Sterkin
 

Mais de Asher Sterkin (10)

Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024
 
Cloud Infrastructure from Python Code: PyCon DE-23
Cloud Infrastructure from Python Code: PyCon DE-23Cloud Infrastructure from Python Code: PyCon DE-23
Cloud Infrastructure from Python Code: PyCon DE-23
 
PyCascades-23.pdf
PyCascades-23.pdfPyCascades-23.pdf
PyCascades-23.pdf
 
PyConFR-23 Talk.pdf
PyConFR-23 Talk.pdfPyConFR-23 Talk.pdf
PyConFR-23 Talk.pdf
 
pyjamas22_ generic composite in python.pdf
pyjamas22_ generic composite in python.pdfpyjamas22_ generic composite in python.pdf
pyjamas22_ generic composite in python.pdf
 
If your computer is cloud what its Operating System look like?
If your computer is cloud what its Operating System look like?If your computer is cloud what its Operating System look like?
If your computer is cloud what its Operating System look like?
 
Serverless flow programming a new perspective (py web meetup, sept 2nd, 2019...
Serverless flow programming  a new perspective (py web meetup, sept 2nd, 2019...Serverless flow programming  a new perspective (py web meetup, sept 2nd, 2019...
Serverless flow programming a new perspective (py web meetup, sept 2nd, 2019...
 
Documenting serverless architectures could we do it better - o'reily sa con...
Documenting serverless architectures  could we do it better  - o'reily sa con...Documenting serverless architectures  could we do it better  - o'reily sa con...
Documenting serverless architectures could we do it better - o'reily sa con...
 
Shaping serverless architecture with domain driven design patterns - py web-il
Shaping serverless architecture with domain driven design patterns - py web-ilShaping serverless architecture with domain driven design patterns - py web-il
Shaping serverless architecture with domain driven design patterns - py web-il
 
What is exactly anti fragile in dev ops - v3
What is exactly anti fragile in dev ops - v3What is exactly anti fragile in dev ops - v3
What is exactly anti fragile in dev ops - v3
 

Último

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
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
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
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
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 

Último (20)

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
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
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
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
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
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...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 

Serverless ddd

  • 1. Serverless Domain-Driven Design At last some productivity Asher Sterkin asher.sterkin@gmail.com Serverless Meetup April 25, 2017, Tel-Aviv
  • 2. About Myself ● Close to 40 years of experience in the software technology field ● VP Technology, Chief Technology Advisor Group, NDS (2010 - 2012) ● Distinguished Engineer, Office of CTO, Cisco Engineering (2012 - 2016) ● Today CTO at IRKI ● Focusing on software product line strategy ○ Lean Startup ○ Wardley Maps ○ (Strategic) Domain-Driven Design ○ Cynefin ○ Promise Theory ○ Serverless Architecture ○ ...
  • 3.
  • 4. Metallic Sage Green Luster, Opaque Metallic Matte Galvanized SF Pink Blush, Opaque Galvanized Semi-Matte Metallic Dark Raspberry Iris, Opaque Metallic Matte Light Olive Luster, Opaque Metallic Matte
  • 5.
  • 6. Serverless ←→ DDD ● DDD & Microservices ● Serverless → DDD ○ Strategic DDD ○ Tactical DDD ○ Serverless AI → DDD ● Serverless ← DDD ● Serverless DDD → Productivity
  • 9. Domain Model Ubiquitous Language Bounded Context Permeable Context Boundaries Result in BBoM Symptoms of Rotting Design ● Rigidity - hard to change ● Fragility - easy to break ● Immobility - hard to reuse ● Viscosity - hard to do the right thing ● Opacity - disorganized expression ● ...
  • 10. 10 4+1 View of Software Architecture Conceptual Physical Process View Deployment View Logical View Use-Case View Implementation View End-user Functionality Programmers Software management Performance Scalability Throughput System integrators System topology Delivery, installation communication System engineering Analysts/Designers Structure P. Krutchen, “Architectural Blueprints - The “4+1” View Model of Software Architecture
  • 11. 11 4+1 View of Software Architecture Conceptual Physical Process View Deployment View Logical View Use-Case View Implementation View End-user Functionality Programmers Software management Performance Scalability Throughput System integrators System topology Delivery, installation communication System engineering Analysts/Designers Structure Bounded Context → Microservice
  • 13. Strategic Domain-Driven Design Vernon Vaughn, “Implementing Domain-Driven Design”
  • 21. Pull Up/Push Down Pull up useful abstractions Push down support and generic stuff; control through OSS contributions Fashion Accessories There is no ideal core domain model sitting and waiting to be discovered. It’s more like attractor gradually emerging out of multiple “safe-to-fail” experimentations
  • 22. Strategic Domain-Driven Design ● Compute ● Network ● Storage ● Intelligence Serverless ● 2D Shape ● 3D Shape ● ... Geometry ● Color ● ... Graphics Microservice = CF Stack? ERP, CRM, SCM, PLM, ECM, CAD, ... Taxes Shipment Web Site Inventory .... Fashion Accessories
  • 23. Strategic Domain-Driven Design ● Compute ● Network ● Storage ● Intelligence Serverless BC ● 2D Shape ● 3D Shape ● ... Geometry ● Color ● ... Graphics Microservice = CF Stack? ERP, CRM, SCM, PLM, ECM, ... Taxes Shipment Web Site Inventory .... Fashion Accessories
  • 24. Strategic Domain-Driven Design ● Compute ● Network ● Storage ● Intelligence Serverless BC ● 2D Shape ● 3D Shape ● ... Geometry ● Color ● ... Graphics Microservice = CF Stack? ERP, CRM, SCM, PLM, ECM, ... Taxes Shipment Web Site Inventory .... Fashion Accessories
  • 25. Strategic Domain-Driven Design ● 2D Shape ● 3D Shape ● ... Geometry ● Color ● ... Graphics ● Compute ● Network ● Storage ● Intelligence Serverless BC Microservice = CF Stack? ERP, CRM, SCM, PLM, ECM, ... Taxes Shipment Web Site Inventory .... Fashion Accessories ...
  • 26. Context Map is the Key ● 2D Shape ● 3D Shape ● ... Geometry ● Color ● ... Graphics ● Compute ● Network ● Storage ● Intelligence Serverless BC Microservice = CF Stack? ERP, CRM, SCM, PLM, ECM, ... Taxes Shipment Web Site Inventory .... Fashion Accessories ... ACL ACL ACL
  • 27. Emerging Core Domain so Far Types Components Products Inventory Items Customers Manufacturers Vendors Catalog Items Shapes Colors Pictures
  • 28. Amazon is Eating Software ... valuechain evolutionG C P U eTailer Service AIaaS FaaS PaaS IaaS SCM ... Web Scale Operation New Service
  • 29. Amazon is Eating Software ... valuechain evolutionG C P U Video Service AIaaS FaaS PaaS IaaS Recommendations ... Cloud Native Ability to build a Web Scale Application is not a differentiator anymore!
  • 30. Serverless Strategic DDD Prefer utility AIaaS Prefer product or utility SaaS Major effort Pull up useful abstractions Proper timing for API Push down support and generic stuff; control through OSS contributions
  • 32. Bounded Context Tactical DDD Patterns Domain Model Ubiquitous Language Nouns, Adjectives, Imperative Verbs, Interrogative Verbs, Perfect Tense Verbs Entities, Values, Commands, Queries, Events, Aggregates, Repository, Computational Services, Factories, ACL, Saga (Process Manager) Serverless Cloud Environment
  • 33. Repository Strong Transaction Consistency + Invariant DDD Aggregate and Repository <<Aggregate Root>> Entity Entity Value Value Eventual Transaction Consistency Storage Command/ Query Request Processor Command or Query Requests Domain Events
  • 34. (AWS) Serverless DDD Patterns ● Repository ○ CRUD ○ CQRS ○ CQRS/ES ○ CQRS/ES IoT Scale ● Computation Service ○ Function ○ Batch ○ Map/Reduce ● Saga (Process Manager)
  • 35. Default Serverless DDD Repository (CRUD) DynamoDB Streams Command/Query Handler Domain Event Handler Strong vs. Eventual Consistency Bead Shape Bead Color Bead Product Type Component Type
  • 36. Serverless DDD Repository (CQRS) DynamoDB Streams Command Handler Query View Builder Query Handler ● Ad-hoc vs. precomputed ● Inter- vs. Intra Aggregate Query View Store SOT Store ● Command vs. Query Storage optimization ● Query interface complexity Bead Color/Shape Compatibility
  • 37. Serverless DDD Repository (CQRS/ES) DynamoDB Streams Command Handler Projection Builders Query Handler ● Ad-hoc vs. precomputed ● Inter- vs. Intra Aggregate Query View Store Event Store Snapshot Store ● Immutability ● Auditing Product Spec Product/Component Inventory
  • 38. Event Store Patterns ● State Change Events (git style) ● Measurement/Observation (telemetry) ● Transaction/Account/Entry (accounting) ● Meaningful Domain Events
  • 39. Snapshot Store Patterns ● Most Recent State ● State Change History ● Multiple Worlds
  • 40. Serverless DDD Repository (CQRS/ES IoT Scale) Edge Command/Event Handler Cloud Command/Event Handler Thing Event Stream Thing Event Handlers Thing Snapshot View Thing Projection Builder Thing Event Store
  • 41. Serverless DDD Computation Services Command/Query/Event Handler Computation Service Bead Color/Shape Permutations Bead Color Bead Shape Bead Component Most popular products Most popular colors per country Minimal inventory level per product ...
  • 42. Serverless DDD Saga (Process Manager) Product Picture Album Building Raw Pictures Catalog Pictures Product Catalog Background Cleanup Color/Light Adjustments Resolution Transcoding
  • 45. Serverless DDD AI Patterns ● Pereferrial Adapters: audio, video, picture, text ● Application Services: dynamic state machines ● Command/Query Request Processors: classification, matching ● Event Handlers: anomaly detection ● Computation Services: analysis, generation, transformation, optimization ● Batch Processing: feedback and learning
  • 46. Serverless AI ← DDD Pereferrial Adapters Application Services Dynamic State Machines Application-level Stimulo Domain Services Command/Query Requests EventsRaw A/V/T Inputs Dynamic Classifications Anomaly Detection Event Processors Feedback and Training Pinterest/Instagram/Facebook/Twitter Feedback Processing Best Earrings Match Best Necklace Match Historical Data
  • 47. Serverless → DDD What is Missing?
  • 48. Serverless → DDD Wish List ● Support for Actor Model ● Support for Reactive Programming ● JavaScript, JSON and YAML are (cloud) machine-level languages - need something at higher level ● Simple modeling tool (lightweight UML) ● Fully fledged IDE supporting above ● Support for Semantic Maps (kind of AI service)
  • 51. DDD for Serverless Use DDD Strategic and Tactical patterns as Serverless Architecture organizing principles to prevent ending with just a distributed version of BBoM.
  • 52. One who increases flesh, increases worms; one who increases possessions, increases worry; one who increases wives, increases witchcraft; one who increases maidservants, increases promiscuity; one who increases man-servants, increases thievery; Pirkey Avot Chapter 2/7 ‫כשפים‬ ‫מרבה‬ ‫נשים‬ ‫מרבה‬ .‫דאגה‬ ‫מרבה‬ ‫נכסים‬ ‫מרבה‬ .‫רימה‬ ‫מרבה‬ ‫בשר‬ ‫.מרבה‬ ‫גזל‬ ‫מרבה‬ ‫עבדים‬ ‫מרבה‬ .‫זימה‬ ‫מרבה‬ ‫שפחות‬ ‫מרבה‬ Kohelet Chapter 1/18 18For in much wisdom is much vexation, and he who increases knowledge, increases pain. :‫ְאוֹב‬‫כ‬ַ‫מ‬ ‫ִיף‬‫ס‬‫יוֹ‬ ‫ַת‬‫ע‬ַ‫דּ‬ ‫ִיף‬‫ס‬‫ְיוֹ‬‫ו‬ ‫ַס‬‫ע‬ָ‫כּ‬ ‫ב‬ ָ‫ר‬ ‫ָה‬‫מ‬ְ‫כ‬ָ‫ח‬ ‫ֹב‬ ‫ְר‬‫בּ‬ ‫ִי‬‫כּ‬‫יח‬
  • 53. Too Many Moving Parts ...
  • 54. DDD for Serverless Treat ‘em all as Aggregate Repositories within the corresponding Bounded Context of Generic Infrastructure Sub-Domain
  • 55. At Last Some Productivity
  • 56. How to Measure Productivity? ● Lines of Code - well known anti-pattern ● Story Points - less well known anti-pattern (velocity is not productivity) ● Features - “feature train” (producing many features nobody needs) ● Value - too much depends on Product Owner; not under direct control ● Domain Insights - only domain experts could bring it → a lot of experimentation “Software Development is a Learning Process. Running code is byproduct.” A.Brandolini
  • 57. “Consensus is poisonous for innovation” D. Snowden The last slide