SlideShare ist ein Scribd-Unternehmen logo
1 von 32
microservices 
an agenda for a new architecture
who am I? 
 Twenty years experience working in distributed systems 
 Slowly getting better at it 
 Background: integration, SOA, Event Processing, BPM, 
CAD/GIS, Astrophysics 
 CTO at Sixtree: sixtree.com.au 
 Editor at InfoQ: infoq.com/author/Saul+Caganoff 
 Blogger since 2007: soabloke.com 
 Twitter: @scaganoff
overview 
To set out an agenda and discussion programme for 
microservices melbourne 
 a little philosophy 
 a little reflection 
 what’s happening?
a little philosophy 
 Epistemology: how do we gain knowledge?
scientific method 
 Karl Popper (1935): 
Theories can never be proven, only falsified. 
 Thomas Kuhn (1962): 
Scientists work within a “paradigm,” a set of rules 
& regulations that 
 defines boundaries and; 
 describes how to behave inside those boundaries. 
 Paul Feyerabend (1975): 
There is no method. It’s all just “marketing”
the copernican revolution 
1543 
1687
how is this relevant to IT? 
 Truth? But you can’t measure productivity 
...or quality 
 Software is a social process 
...you cannot separate method from culture 
...organizational change = “you're not doing it right” 
 It takes a long time for knowledge to converge 
…in that time tools/techniques have moved on 
 Is IT merely fashion?
crisis & change 
 Crisis 
 Discrepancy between theory and fact 
 Change in social/cultural climate 
 Change 
 Paradigms are resistant/resilient to change 
 Failures take a long time to build momentum 
 Shift 
 New candidate emerges and a battle ensues 
 Often the old paradigm doesn't die out completely
application architecture shifts 
 Mainframe to Client/Server 
Crisis: scarcity of compute resources 
Enabler: Emergence of PCs and midrange computers 
Impact: $$$ shifted from hardware to software 
 World Wide Web 
Crisis: Content distribution, e-commerce 
Enabler: HTTP, HTML 
Impact: $$$ shifted online 
 The current shift… 
Crisis of agility: change takes too long and costs too much 
Enabler: Commodity hardware, Virtualization, SOA, DevOps 
Impact: ….
many interacting shifts 
On-Premise → Cloud Hosted 
Owned → Pay per use 
Physical → Digital 
Local → Global 
Scale-up → Scale-out 
Sequential → Concurrent 
Static → Mobile 
Centralized → Distributed 
Waterfall → Agile 
Assembly Line → TQM
the current crisis 
 Business Agility, speed of change 
 The big ball of mud 
 Scalability 
 a global user-base 
 flavours: differential, elastic 
 Commodity vs Differentiation 
 Does IT matter?
the monolith 
 Have we been working with the wrong level of abstraction? 
 The bigger an application becomes, the harder it is to change. 
 Services feel like the right level of abstraction but there is a 
mismatch with the way applications are currently packaged and 
delivered. 
 Very coarse differentiation between “commodity capabilities” 
and “defining capabilities” (e.g. pace layering).
the leap of faith 
 The gap between business requirements and what an 
application vendor offers. 
the leap of faith Snip here to 
outsource, 
offshore, 
cloudify
 Cloud 
Scale, Cost, Agility, 
Abundance, Ephemeral 
 Services as a Service 
Buy services not software 
Compose “best of breed” 
 NoSQL 
DBs are cheap & malleable 
 Continuous Delivery 
Change can be automated 
 Agile 
Incremental change 
Small, productive teams 
 DevOps 
Remove the barriers from 
conception to production 
the opportunities
the composable enterprise 
 The pioneers are “providers” 
Amazon.com, Netflix, Warner Music Group 
 The mainstream will be “consumers” 
 …or a mixture 
Consume commodity SaaS 
Build their own “engines of differentiation” 
So far all the talk has been about providing… 
consuming, not so much
what is an application anyway? 
 First instances of the new paradigm resemble the old paradigm 
 What is Salesforce.com other than Siebel in the cloud? 
 Is Netflix an enterprise or an application? 
It’s hard to tell…traditional system boundaries are dissolving.
a little reflection 
we’ve been here before
distributed systems frameworks 
 The way we conceptualize distributed systems reflects our 
programming languages 
 Sun RPC/DCE – distributed procedures 
 CORBA/DCOM – distributed objects 
 SOAP – distributed objects + XML serialization 
 REST – www for bots 
 Events, Asynchrony, Concurrency 
 Reactive Extensions 
 Promises 
 CSP (Go, Erlang) – a return to 1970’s message passing paradigms?
problems with distributed systems 
 Classic: 
 Serialization 
 Interface contracts 
 Service discovery 
 Waldo’s fallacies 
 State Management & 
Consistency 
 New: 
 Management 
 Visibility & Responsiveness 
 Resilience 
 Change 
 Coordination
waldo et al 
 Fallacies of distributed computing 
 There is a single natural object-oriented design for an application regardless of the 
context in which it will be deployed. 
 Failure and performance issues are an implementation detail to be added after the 
initial design. 
 The interface of an object is independent of the context in which that object is to be 
used 
…fundamentally: latency, performance & failure must be 
accounted for from the design up… 
Services address Waldo because they make network 
boundaries explicit.
serialization 
 A recurring problem in many systems 
 Sun RPC/DEC – wedded to C and Unix 
 DCOM – wedded to C and Windows 
 CORBA – IDL binding to multiple languages was a big problem 
 SOAP – XML binding to multiple languages was a big problem 
…mismatch between serialized objects and an XML document 
 JSON – better match to common language structures such as 
object attributes, arrays, maps
interface contracts 
 Waldo fallacy: an object interface is independent of its context 
 XSD fallacy: a document’s validation rules are independent of 
the process context 
 Postel’s Law: “be conservative in what you send and permissive 
in what you receive…” 
 Permissive Consumer 
 c.f. various object serialization libraries 
 worry that JSON is just reinventing XML
where to from here? 
what to consider for microservices
coupling vs cohesion 
 microservices favour extreme de-coupling 
….what do we trade in terms of coherence? 
 Database 
 synchronization across systems of record 
 Code 
 How to handle shared libraries & code change 
 Ctrl+C/Ctrl+V = decoherence 
 Services 
 Vocabularies vs shared object models 
 Consumer/Provider coupling – avoiding rpc
service design 
 Granularity - how big is a “micro”? 
 LOC seems somewhat arbitrary 
 ….is it more that I can throw it away without grief? 
 Hypermedia & HATEOAS 
 Reiteration of object references – values vs urls 
 Seems like a great idea, but we are lacking good examples 
 Many choices: HAL, JSON.API, JSON Siren, Collection+JSON, JSON-LD 
 Automating consumers 
 Design-first specification 
 API Blueprint, RAML, Swagger 2.0 
 API Evolution - versioning
development concerns 
 Continuous Delivery 
 Testing 
 Client-driven testing: PACT 
 Integration testing 
 Runtime environment 
 Naked processes 
 Traditional containers – e.g. JVM 
 New containers – LXC, Docker, PaaS 
 Autoscaling
languages & frameworks 
 What are good languages & frameworks for microservices? 
….why? 
 Popular 
 Go 
 node.js 
 Scala + Play 
 …? 
 Frameworks 
 Netflix OSS 
 Spring Boot, Mule APIKit 
 Seneca (node.js)
visibility & responsiveness 
 Self-healing Services 
 Logging 
 Trace, debug 
 Metrics – response times 
 Coordination – end-to-end 
monitoring, choreography 
 Tools 
 ELK: Elasticsearch, Logstash, Kibana 
 Splunk 
 Riemann 
 Alerting & Reaction 
 Circonus
coordination 
 Orchestration vs 
 Choreography 
 Mastering asynchronous coordination 
 Message passing 
 Events: sourcing, processing 
 State: application and system-wide 
 Layered architectures - “layers are bad” 
 Composition is a form of re-use, so where do you define your 
level of composition?
antifragile patterns 
 Adrian Cockroft (Netflix) – Dystopia as a Service 
 Cloud Native Architecture: 
 Embrace “broken & inefficient” to deliver “sooner” and “dynamic” 
"the new engineering challenge is not to construct perfection but to 
construct highly agile and highly available services from ephemeral and 
often broken components." 
 Microservices 
 Reactive APIs 
 Bulkheads 
 Circuit breakers 
 Chaos Monkey (and other Simians)
use-cases 
 Greenfields applications 
 Brownfields applications – building new microservices apps 
amongst traditional apps 
 Remediation – re-architecting legacy apps into microservices 
 Distributed Teams 
 Legacy Systems 
 The “build” vs “buy” equation
future agenda 
 Aim for a monthly meetup with two speakers each month 
 Looking for speakers to discuss: 
 DDD 
 API Design 
 Languages & frameworks 
 Development concerns 
 Testing 
 Continuous Delivery 
 Runtime Environment 
 Monitoring & Visibility 
 Coordination 
 Antifragile Patterns 
 Use-Cases/Case-Studies 
and….

Weitere ähnliche Inhalte

Was ist angesagt?

WJAX 2013 Slides online: Big Data beyond Apache Hadoop - How to integrate ALL...
WJAX 2013 Slides online: Big Data beyond Apache Hadoop - How to integrate ALL...WJAX 2013 Slides online: Big Data beyond Apache Hadoop - How to integrate ALL...
WJAX 2013 Slides online: Big Data beyond Apache Hadoop - How to integrate ALL...Kai Wähner
 
PubSub+ Event Portal for Apache Kafka
PubSub+ Event Portal for Apache KafkaPubSub+ Event Portal for Apache Kafka
PubSub+ Event Portal for Apache KafkaSolace
 
Designing loosely coupled services
Designing loosely coupled servicesDesigning loosely coupled services
Designing loosely coupled servicesChris Richardson
 
Confluent & MongoDB APAC Lunch & Learn
Confluent & MongoDB APAC Lunch & LearnConfluent & MongoDB APAC Lunch & Learn
Confluent & MongoDB APAC Lunch & Learnconfluent
 
Oracle CodeOne 2019: Descending the Testing Pyramid: Effective Testing Strate...
Oracle CodeOne 2019: Descending the Testing Pyramid: Effective Testing Strate...Oracle CodeOne 2019: Descending the Testing Pyramid: Effective Testing Strate...
Oracle CodeOne 2019: Descending the Testing Pyramid: Effective Testing Strate...Chris Richardson
 
DataOps on Streaming Data: From Kafka to InfluxDB via Kubernetes Native Flows...
DataOps on Streaming Data: From Kafka to InfluxDB via Kubernetes Native Flows...DataOps on Streaming Data: From Kafka to InfluxDB via Kubernetes Native Flows...
DataOps on Streaming Data: From Kafka to InfluxDB via Kubernetes Native Flows...InfluxData
 
APAC Kafka Summit - Best Of
APAC Kafka Summit - Best Of APAC Kafka Summit - Best Of
APAC Kafka Summit - Best Of confluent
 
The Streaming Assessment – An Introduction
The Streaming Assessment – An IntroductionThe Streaming Assessment – An Introduction
The Streaming Assessment – An Introductionconfluent
 
Data reply sneak peek: real time decision engines
Data reply sneak peek:  real time decision enginesData reply sneak peek:  real time decision engines
Data reply sneak peek: real time decision enginesconfluent
 
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with SagasQCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with SagasChris Richardson
 
#Re-Imagine Autoscaling Stream Consumers in Cloud Environments (Sunil Kaitha,...
#Re-Imagine Autoscaling Stream Consumers in Cloud Environments (Sunil Kaitha,...#Re-Imagine Autoscaling Stream Consumers in Cloud Environments (Sunil Kaitha,...
#Re-Imagine Autoscaling Stream Consumers in Cloud Environments (Sunil Kaitha,...confluent
 
20160317 lagom sf scala
20160317 lagom sf scala20160317 lagom sf scala
20160317 lagom sf scalashinolajla
 
Event Driven Architecture (EDA) Reference Architecture | Anbu Krishnaswamy
Event Driven Architecture (EDA) Reference Architecture | Anbu KrishnaswamyEvent Driven Architecture (EDA) Reference Architecture | Anbu Krishnaswamy
Event Driven Architecture (EDA) Reference Architecture | Anbu KrishnaswamyBob Rhubart
 
Melbourne Jan 2019 - Microservices adoption anti-patterns: Obstacles to decom...
Melbourne Jan 2019 - Microservices adoption anti-patterns: Obstacles to decom...Melbourne Jan 2019 - Microservices adoption anti-patterns: Obstacles to decom...
Melbourne Jan 2019 - Microservices adoption anti-patterns: Obstacles to decom...Chris Richardson
 
What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?Guido Schmutz
 
Using Kafka in Your Organization with Real-Time User Insights for a Customer ...
Using Kafka in Your Organization with Real-Time User Insights for a Customer ...Using Kafka in Your Organization with Real-Time User Insights for a Customer ...
Using Kafka in Your Organization with Real-Time User Insights for a Customer ...confluent
 
A Pattern Language for Microservices
A Pattern Language for MicroservicesA Pattern Language for Microservices
A Pattern Language for MicroservicesChris Richardson
 

Was ist angesagt? (20)

WJAX 2013 Slides online: Big Data beyond Apache Hadoop - How to integrate ALL...
WJAX 2013 Slides online: Big Data beyond Apache Hadoop - How to integrate ALL...WJAX 2013 Slides online: Big Data beyond Apache Hadoop - How to integrate ALL...
WJAX 2013 Slides online: Big Data beyond Apache Hadoop - How to integrate ALL...
 
PubSub+ Event Portal for Apache Kafka
PubSub+ Event Portal for Apache KafkaPubSub+ Event Portal for Apache Kafka
PubSub+ Event Portal for Apache Kafka
 
Designing loosely coupled services
Designing loosely coupled servicesDesigning loosely coupled services
Designing loosely coupled services
 
Confluent & MongoDB APAC Lunch & Learn
Confluent & MongoDB APAC Lunch & LearnConfluent & MongoDB APAC Lunch & Learn
Confluent & MongoDB APAC Lunch & Learn
 
Reactive Architectures
Reactive ArchitecturesReactive Architectures
Reactive Architectures
 
Oracle CodeOne 2019: Descending the Testing Pyramid: Effective Testing Strate...
Oracle CodeOne 2019: Descending the Testing Pyramid: Effective Testing Strate...Oracle CodeOne 2019: Descending the Testing Pyramid: Effective Testing Strate...
Oracle CodeOne 2019: Descending the Testing Pyramid: Effective Testing Strate...
 
DataOps on Streaming Data: From Kafka to InfluxDB via Kubernetes Native Flows...
DataOps on Streaming Data: From Kafka to InfluxDB via Kubernetes Native Flows...DataOps on Streaming Data: From Kafka to InfluxDB via Kubernetes Native Flows...
DataOps on Streaming Data: From Kafka to InfluxDB via Kubernetes Native Flows...
 
APAC Kafka Summit - Best Of
APAC Kafka Summit - Best Of APAC Kafka Summit - Best Of
APAC Kafka Summit - Best Of
 
The Streaming Assessment – An Introduction
The Streaming Assessment – An IntroductionThe Streaming Assessment – An Introduction
The Streaming Assessment – An Introduction
 
Data reply sneak peek: real time decision engines
Data reply sneak peek:  real time decision enginesData reply sneak peek:  real time decision engines
Data reply sneak peek: real time decision engines
 
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with SagasQCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
QCONSF - ACID Is So Yesterday: Maintaining Data Consistency with Sagas
 
#Re-Imagine Autoscaling Stream Consumers in Cloud Environments (Sunil Kaitha,...
#Re-Imagine Autoscaling Stream Consumers in Cloud Environments (Sunil Kaitha,...#Re-Imagine Autoscaling Stream Consumers in Cloud Environments (Sunil Kaitha,...
#Re-Imagine Autoscaling Stream Consumers in Cloud Environments (Sunil Kaitha,...
 
20160317 lagom sf scala
20160317 lagom sf scala20160317 lagom sf scala
20160317 lagom sf scala
 
Event Driven Architecture (EDA) Reference Architecture | Anbu Krishnaswamy
Event Driven Architecture (EDA) Reference Architecture | Anbu KrishnaswamyEvent Driven Architecture (EDA) Reference Architecture | Anbu Krishnaswamy
Event Driven Architecture (EDA) Reference Architecture | Anbu Krishnaswamy
 
Melbourne Jan 2019 - Microservices adoption anti-patterns: Obstacles to decom...
Melbourne Jan 2019 - Microservices adoption anti-patterns: Obstacles to decom...Melbourne Jan 2019 - Microservices adoption anti-patterns: Obstacles to decom...
Melbourne Jan 2019 - Microservices adoption anti-patterns: Obstacles to decom...
 
What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?
 
Using Kafka in Your Organization with Real-Time User Insights for a Customer ...
Using Kafka in Your Organization with Real-Time User Insights for a Customer ...Using Kafka in Your Organization with Real-Time User Insights for a Customer ...
Using Kafka in Your Organization with Real-Time User Insights for a Customer ...
 
Xavient overview
Xavient overviewXavient overview
Xavient overview
 
A Pattern Language for Microservices
A Pattern Language for MicroservicesA Pattern Language for Microservices
A Pattern Language for Microservices
 
Remix
RemixRemix
Remix
 

Andere mochten auch

Concern-Based Cohesion as Change Proneness Indicator: An Initial Empirical Study
Concern-Based Cohesion as Change Proneness Indicator: An Initial Empirical StudyConcern-Based Cohesion as Change Proneness Indicator: An Initial Empirical Study
Concern-Based Cohesion as Change Proneness Indicator: An Initial Empirical StudyBruno C. da Silva
 
CakeFest 2011 - Coupling and cohesion
CakeFest 2011 - Coupling and cohesionCakeFest 2011 - Coupling and cohesion
CakeFest 2011 - Coupling and cohesionCarl Sutton
 
DSR Microservices (Day 1, Part 2)
DSR Microservices (Day 1, Part 2)DSR Microservices (Day 1, Part 2)
DSR Microservices (Day 1, Part 2)Steve Upton
 
Microservices: Architecture for Agile Software Development
Microservices: Architecture for Agile Software DevelopmentMicroservices: Architecture for Agile Software Development
Microservices: Architecture for Agile Software DevelopmentEberhard Wolff
 
The promises and perils of microservices
The promises and perils of microservicesThe promises and perils of microservices
The promises and perils of microservicesUwe Friedrichsen
 
Microservices Architecture for Web Applications using AWS Lambda and more
Microservices Architecture for Web Applications using AWS Lambda and moreMicroservices Architecture for Web Applications using AWS Lambda and more
Microservices Architecture for Web Applications using AWS Lambda and moreMitoc Group
 

Andere mochten auch (8)

Concern-Based Cohesion as Change Proneness Indicator: An Initial Empirical Study
Concern-Based Cohesion as Change Proneness Indicator: An Initial Empirical StudyConcern-Based Cohesion as Change Proneness Indicator: An Initial Empirical Study
Concern-Based Cohesion as Change Proneness Indicator: An Initial Empirical Study
 
CakeFest 2011 - Coupling and cohesion
CakeFest 2011 - Coupling and cohesionCakeFest 2011 - Coupling and cohesion
CakeFest 2011 - Coupling and cohesion
 
DSR Microservices (Day 1, Part 2)
DSR Microservices (Day 1, Part 2)DSR Microservices (Day 1, Part 2)
DSR Microservices (Day 1, Part 2)
 
Cohesion & Coupling
Cohesion & Coupling Cohesion & Coupling
Cohesion & Coupling
 
Microservices: Architecture for Agile Software Development
Microservices: Architecture for Agile Software DevelopmentMicroservices: Architecture for Agile Software Development
Microservices: Architecture for Agile Software Development
 
The promises and perils of microservices
The promises and perils of microservicesThe promises and perils of microservices
The promises and perils of microservices
 
Microservices Architecture for Web Applications using AWS Lambda and more
Microservices Architecture for Web Applications using AWS Lambda and moreMicroservices Architecture for Web Applications using AWS Lambda and more
Microservices Architecture for Web Applications using AWS Lambda and more
 
Software design
Software designSoftware design
Software design
 

Ähnlich wie Melbourne Microservices Meetup: Agenda for a new Architecture

Battery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
Battery Ventures: Simulating and Visualizing Large Scale Cassandra DeploymentsBattery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
Battery Ventures: Simulating and Visualizing Large Scale Cassandra DeploymentsDataStax Academy
 
Above the cloud joarder kamal
Above the cloud   joarder kamalAbove the cloud   joarder kamal
Above the cloud joarder kamalJoarder Kamal
 
What Should I Do? Choosing SQL, NoSQL or Both for Scalable Web Applications
What Should I Do? Choosing SQL, NoSQL or Both for Scalable Web ApplicationsWhat Should I Do? Choosing SQL, NoSQL or Both for Scalable Web Applications
What Should I Do? Choosing SQL, NoSQL or Both for Scalable Web ApplicationsTodd Hoff
 
The Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservicesThe Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservicesRonald Ashri
 
Microservices: moving parts around
Microservices: moving parts aroundMicroservices: moving parts around
Microservices: moving parts aroundChris Winters
 
A Tale of Contemporary Software
A Tale of Contemporary SoftwareA Tale of Contemporary Software
A Tale of Contemporary SoftwareYun Zhi Lin
 
Using requirements to retrace software evolution history
Using requirements to retrace software evolution historyUsing requirements to retrace software evolution history
Using requirements to retrace software evolution historyNeil Ernst
 
Linking Programming models between Grids, Web 2.0 and Multicore
Linking Programming models between Grids, Web 2.0 and Multicore Linking Programming models between Grids, Web 2.0 and Multicore
Linking Programming models between Grids, Web 2.0 and Multicore Geoffrey Fox
 
Introducing the Open Container Project
Introducing the Open Container ProjectIntroducing the Open Container Project
Introducing the Open Container ProjectAndrew Kennedy
 
Cloud Computing Presentation V3
Cloud Computing Presentation V3Cloud Computing Presentation V3
Cloud Computing Presentation V3David Oliver
 
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...Cloud Native Day Tel Aviv
 
Designing for the Cloud Tutorial - QCon SF 2009
Designing for the Cloud Tutorial - QCon SF 2009Designing for the Cloud Tutorial - QCon SF 2009
Designing for the Cloud Tutorial - QCon SF 2009Stuart Charlton
 
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
 
Microservices in a Streaming World
Microservices in a Streaming WorldMicroservices in a Streaming World
Microservices in a Streaming WorldHans Jespersen
 
Top 10 Technology Trends Changing Developer's Landscape
Top 10 Technology Trends Changing Developer's LandscapeTop 10 Technology Trends Changing Developer's Landscape
Top 10 Technology Trends Changing Developer's LandscapeArun Gupta
 
OpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaS
OpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaSOpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaS
OpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaSDaniel Krook
 
A tale of two microservices
A tale of two microservicesA tale of two microservices
A tale of two microservicesPablo Chacin
 

Ähnlich wie Melbourne Microservices Meetup: Agenda for a new Architecture (20)

Battery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
Battery Ventures: Simulating and Visualizing Large Scale Cassandra DeploymentsBattery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
Battery Ventures: Simulating and Visualizing Large Scale Cassandra Deployments
 
Above the cloud joarder kamal
Above the cloud   joarder kamalAbove the cloud   joarder kamal
Above the cloud joarder kamal
 
What Should I Do? Choosing SQL, NoSQL or Both for Scalable Web Applications
What Should I Do? Choosing SQL, NoSQL or Both for Scalable Web ApplicationsWhat Should I Do? Choosing SQL, NoSQL or Both for Scalable Web Applications
What Should I Do? Choosing SQL, NoSQL or Both for Scalable Web Applications
 
The Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservicesThe Why and How of Applications with APIs and microservices
The Why and How of Applications with APIs and microservices
 
Microservices: moving parts around
Microservices: moving parts aroundMicroservices: moving parts around
Microservices: moving parts around
 
A Tale of Contemporary Software
A Tale of Contemporary SoftwareA Tale of Contemporary Software
A Tale of Contemporary Software
 
Using requirements to retrace software evolution history
Using requirements to retrace software evolution historyUsing requirements to retrace software evolution history
Using requirements to retrace software evolution history
 
Linking Programming models between Grids, Web 2.0 and Multicore
Linking Programming models between Grids, Web 2.0 and Multicore Linking Programming models between Grids, Web 2.0 and Multicore
Linking Programming models between Grids, Web 2.0 and Multicore
 
Introducing the Open Container Project
Introducing the Open Container ProjectIntroducing the Open Container Project
Introducing the Open Container Project
 
Cloud Computing Presentation V3
Cloud Computing Presentation V3Cloud Computing Presentation V3
Cloud Computing Presentation V3
 
Let's talk about... Microservices
Let's talk about... MicroservicesLet's talk about... Microservices
Let's talk about... Microservices
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
Microservices: Why and When? - Alon Fliess, CodeValue - Cloud Native Day Tel ...
 
Designing for the Cloud Tutorial - QCon SF 2009
Designing for the Cloud Tutorial - QCon SF 2009Designing for the Cloud Tutorial - QCon SF 2009
Designing for the Cloud Tutorial - QCon SF 2009
 
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?
 
Microservices in a Streaming World
Microservices in a Streaming WorldMicroservices in a Streaming World
Microservices in a Streaming World
 
Handout1o
Handout1oHandout1o
Handout1o
 
Top 10 Technology Trends Changing Developer's Landscape
Top 10 Technology Trends Changing Developer's LandscapeTop 10 Technology Trends Changing Developer's Landscape
Top 10 Technology Trends Changing Developer's Landscape
 
OpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaS
OpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaSOpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaS
OpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaS
 
A tale of two microservices
A tale of two microservicesA tale of two microservices
A tale of two microservices
 

Mehr von Saul Caganoff

Growing an API Culture - APIdays LIVE AU 2020
Growing an API Culture - APIdays LIVE AU 2020Growing an API Culture - APIdays LIVE AU 2020
Growing an API Culture - APIdays LIVE AU 2020Saul Caganoff
 
Events in a microservices architecture
Events in a microservices architectureEvents in a microservices architecture
Events in a microservices architectureSaul Caganoff
 
Microservices: The View from the Peak of Expectations
Microservices: The View from the Peak of ExpectationsMicroservices: The View from the Peak of Expectations
Microservices: The View from the Peak of ExpectationsSaul Caganoff
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless ArchitectureSaul Caganoff
 
Docker in the Enterprise
Docker in the EnterpriseDocker in the Enterprise
Docker in the EnterpriseSaul Caganoff
 
Delivering the Composable Enterprise
Delivering the Composable EnterpriseDelivering the Composable Enterprise
Delivering the Composable EnterpriseSaul Caganoff
 

Mehr von Saul Caganoff (6)

Growing an API Culture - APIdays LIVE AU 2020
Growing an API Culture - APIdays LIVE AU 2020Growing an API Culture - APIdays LIVE AU 2020
Growing an API Culture - APIdays LIVE AU 2020
 
Events in a microservices architecture
Events in a microservices architectureEvents in a microservices architecture
Events in a microservices architecture
 
Microservices: The View from the Peak of Expectations
Microservices: The View from the Peak of ExpectationsMicroservices: The View from the Peak of Expectations
Microservices: The View from the Peak of Expectations
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless Architecture
 
Docker in the Enterprise
Docker in the EnterpriseDocker in the Enterprise
Docker in the Enterprise
 
Delivering the Composable Enterprise
Delivering the Composable EnterpriseDelivering the Composable Enterprise
Delivering the Composable Enterprise
 

Kürzlich hochgeladen

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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
 
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
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
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
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 

Kürzlich hochgeladen (20)

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
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
 
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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
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?
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

Melbourne Microservices Meetup: Agenda for a new Architecture

  • 1. microservices an agenda for a new architecture
  • 2. who am I?  Twenty years experience working in distributed systems  Slowly getting better at it  Background: integration, SOA, Event Processing, BPM, CAD/GIS, Astrophysics  CTO at Sixtree: sixtree.com.au  Editor at InfoQ: infoq.com/author/Saul+Caganoff  Blogger since 2007: soabloke.com  Twitter: @scaganoff
  • 3. overview To set out an agenda and discussion programme for microservices melbourne  a little philosophy  a little reflection  what’s happening?
  • 4. a little philosophy  Epistemology: how do we gain knowledge?
  • 5. scientific method  Karl Popper (1935): Theories can never be proven, only falsified.  Thomas Kuhn (1962): Scientists work within a “paradigm,” a set of rules & regulations that  defines boundaries and;  describes how to behave inside those boundaries.  Paul Feyerabend (1975): There is no method. It’s all just “marketing”
  • 7. how is this relevant to IT?  Truth? But you can’t measure productivity ...or quality  Software is a social process ...you cannot separate method from culture ...organizational change = “you're not doing it right”  It takes a long time for knowledge to converge …in that time tools/techniques have moved on  Is IT merely fashion?
  • 8. crisis & change  Crisis  Discrepancy between theory and fact  Change in social/cultural climate  Change  Paradigms are resistant/resilient to change  Failures take a long time to build momentum  Shift  New candidate emerges and a battle ensues  Often the old paradigm doesn't die out completely
  • 9. application architecture shifts  Mainframe to Client/Server Crisis: scarcity of compute resources Enabler: Emergence of PCs and midrange computers Impact: $$$ shifted from hardware to software  World Wide Web Crisis: Content distribution, e-commerce Enabler: HTTP, HTML Impact: $$$ shifted online  The current shift… Crisis of agility: change takes too long and costs too much Enabler: Commodity hardware, Virtualization, SOA, DevOps Impact: ….
  • 10. many interacting shifts On-Premise → Cloud Hosted Owned → Pay per use Physical → Digital Local → Global Scale-up → Scale-out Sequential → Concurrent Static → Mobile Centralized → Distributed Waterfall → Agile Assembly Line → TQM
  • 11. the current crisis  Business Agility, speed of change  The big ball of mud  Scalability  a global user-base  flavours: differential, elastic  Commodity vs Differentiation  Does IT matter?
  • 12. the monolith  Have we been working with the wrong level of abstraction?  The bigger an application becomes, the harder it is to change.  Services feel like the right level of abstraction but there is a mismatch with the way applications are currently packaged and delivered.  Very coarse differentiation between “commodity capabilities” and “defining capabilities” (e.g. pace layering).
  • 13. the leap of faith  The gap between business requirements and what an application vendor offers. the leap of faith Snip here to outsource, offshore, cloudify
  • 14.  Cloud Scale, Cost, Agility, Abundance, Ephemeral  Services as a Service Buy services not software Compose “best of breed”  NoSQL DBs are cheap & malleable  Continuous Delivery Change can be automated  Agile Incremental change Small, productive teams  DevOps Remove the barriers from conception to production the opportunities
  • 15. the composable enterprise  The pioneers are “providers” Amazon.com, Netflix, Warner Music Group  The mainstream will be “consumers”  …or a mixture Consume commodity SaaS Build their own “engines of differentiation” So far all the talk has been about providing… consuming, not so much
  • 16. what is an application anyway?  First instances of the new paradigm resemble the old paradigm  What is Salesforce.com other than Siebel in the cloud?  Is Netflix an enterprise or an application? It’s hard to tell…traditional system boundaries are dissolving.
  • 17. a little reflection we’ve been here before
  • 18. distributed systems frameworks  The way we conceptualize distributed systems reflects our programming languages  Sun RPC/DCE – distributed procedures  CORBA/DCOM – distributed objects  SOAP – distributed objects + XML serialization  REST – www for bots  Events, Asynchrony, Concurrency  Reactive Extensions  Promises  CSP (Go, Erlang) – a return to 1970’s message passing paradigms?
  • 19. problems with distributed systems  Classic:  Serialization  Interface contracts  Service discovery  Waldo’s fallacies  State Management & Consistency  New:  Management  Visibility & Responsiveness  Resilience  Change  Coordination
  • 20. waldo et al  Fallacies of distributed computing  There is a single natural object-oriented design for an application regardless of the context in which it will be deployed.  Failure and performance issues are an implementation detail to be added after the initial design.  The interface of an object is independent of the context in which that object is to be used …fundamentally: latency, performance & failure must be accounted for from the design up… Services address Waldo because they make network boundaries explicit.
  • 21. serialization  A recurring problem in many systems  Sun RPC/DEC – wedded to C and Unix  DCOM – wedded to C and Windows  CORBA – IDL binding to multiple languages was a big problem  SOAP – XML binding to multiple languages was a big problem …mismatch between serialized objects and an XML document  JSON – better match to common language structures such as object attributes, arrays, maps
  • 22. interface contracts  Waldo fallacy: an object interface is independent of its context  XSD fallacy: a document’s validation rules are independent of the process context  Postel’s Law: “be conservative in what you send and permissive in what you receive…”  Permissive Consumer  c.f. various object serialization libraries  worry that JSON is just reinventing XML
  • 23. where to from here? what to consider for microservices
  • 24. coupling vs cohesion  microservices favour extreme de-coupling ….what do we trade in terms of coherence?  Database  synchronization across systems of record  Code  How to handle shared libraries & code change  Ctrl+C/Ctrl+V = decoherence  Services  Vocabularies vs shared object models  Consumer/Provider coupling – avoiding rpc
  • 25. service design  Granularity - how big is a “micro”?  LOC seems somewhat arbitrary  ….is it more that I can throw it away without grief?  Hypermedia & HATEOAS  Reiteration of object references – values vs urls  Seems like a great idea, but we are lacking good examples  Many choices: HAL, JSON.API, JSON Siren, Collection+JSON, JSON-LD  Automating consumers  Design-first specification  API Blueprint, RAML, Swagger 2.0  API Evolution - versioning
  • 26. development concerns  Continuous Delivery  Testing  Client-driven testing: PACT  Integration testing  Runtime environment  Naked processes  Traditional containers – e.g. JVM  New containers – LXC, Docker, PaaS  Autoscaling
  • 27. languages & frameworks  What are good languages & frameworks for microservices? ….why?  Popular  Go  node.js  Scala + Play  …?  Frameworks  Netflix OSS  Spring Boot, Mule APIKit  Seneca (node.js)
  • 28. visibility & responsiveness  Self-healing Services  Logging  Trace, debug  Metrics – response times  Coordination – end-to-end monitoring, choreography  Tools  ELK: Elasticsearch, Logstash, Kibana  Splunk  Riemann  Alerting & Reaction  Circonus
  • 29. coordination  Orchestration vs  Choreography  Mastering asynchronous coordination  Message passing  Events: sourcing, processing  State: application and system-wide  Layered architectures - “layers are bad”  Composition is a form of re-use, so where do you define your level of composition?
  • 30. antifragile patterns  Adrian Cockroft (Netflix) – Dystopia as a Service  Cloud Native Architecture:  Embrace “broken & inefficient” to deliver “sooner” and “dynamic” "the new engineering challenge is not to construct perfection but to construct highly agile and highly available services from ephemeral and often broken components."  Microservices  Reactive APIs  Bulkheads  Circuit breakers  Chaos Monkey (and other Simians)
  • 31. use-cases  Greenfields applications  Brownfields applications – building new microservices apps amongst traditional apps  Remediation – re-architecting legacy apps into microservices  Distributed Teams  Legacy Systems  The “build” vs “buy” equation
  • 32. future agenda  Aim for a monthly meetup with two speakers each month  Looking for speakers to discuss:  DDD  API Design  Languages & frameworks  Development concerns  Testing  Continuous Delivery  Runtime Environment  Monitoring & Visibility  Coordination  Antifragile Patterns  Use-Cases/Case-Studies and….