SlideShare uma empresa Scribd logo
1 de 114
Baixar para ler offline
@aahoogendoorn
MODELING MICROSERVICES
Sander Hoogendoorn
ditisagile.nl
Mentoring ▪ Consulting ▪ Training ▪ Agile ▪ Software architecture ▪ Code
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 2
@aahoogendoorn
www.ditisagile.nl
Sander Hoogendoorn
Me
 Dad
 Mentor, trainer, software architect, programmer
 Books and +250 articles
 Keynotes and talks at +150 conferences
Work
 Owner ditisagile.nl
 CTO Klaverblad Insurances
Web
 www.sanderhoogendoorn.com
 www.smartusecase.com
 www.speedbird9.com
 @aahoogendoorn
 sander@ditisagile.nl
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 3
@aahoogendoorn
www.ditisagile.nl
@aahoogendoorn
MONOLITHS
Hard to deliver, even harder to test and impossible to maintain
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 5
@aahoogendoorn
www.ditisagile.nl
WHOOFYOUHASASYSTEMTHATISTOOBIG
ANDTHATYOUWOULDRATHERBREAKUP?
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 6
@aahoogendoorn
www.ditisagile.nl
Monoliths
Advantages
 A single (layered) architecture
 A single technology stack
 A single code base maintained by multiple teams
Disadvantages
 All parts are interconnected
 Many other systems are connected to your system
 Hard to change, hard to maintain
 Long time between releases, thereby increasing risks
 Slow innovation
 Hard to move to newer technologies
 Doesn’t scale very well
Product Account
Order Customer
Products Accounts
Orders Customers
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 7
@aahoogendoorn
www.ditisagile.nl
Dependencies will kill you
@aahoogendoorn
A BRIEF HISTORY
OF COMPONENTS AND SERVICES
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 9
@aahoogendoorn
www.ditisagile.nl
Client server
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 10
@aahoogendoorn
www.ditisagile.nl
Component based development
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 11
@aahoogendoorn
www.ditisagile.nl
Service oriented architecture
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 12
@aahoogendoorn
www.ditisagile.nl
Microservices
@aahoogendoorn
MICROSERVICES
Beyond the hype?
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 14
@aahoogendoorn
www.ditisagile.nl
Microservices. Beyond the hype?
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 15
@aahoogendoorn
www.ditisagile.nl
Gartner hype cycle
@aahoogendoorn
MICROSERVICES
The clear benefits
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 17
@aahoogendoorn
www.ditisagile.nl
BUTFIRST…ADEFINITION
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 18
@aahoogendoorn
www.ditisagile.nl
Inshort,themicroservicearchitecturalstyleisanapproachtodevelopingasingleapplicationasasuiteofsmallservices,
eachrunninginitsownprocessandcommunicatingwithlightweightmechanisms,oftenanHTTPresourceAPI.
Theseservicesarebuiltaroundbusinesscapabilitiesandindependentlydeployablebyfullyautomateddeploymentmachinery.
Thereisabareminimumofcentralizedmanagementoftheseservices,whichmaybewrittenindifferentprogramminglanguages
andusedifferentdatastoragetechnologies.
MartinFowler
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 19
@aahoogendoorn
www.ditisagile.nl
Inshort,themicroservicearchitecturalstyleisanapproachtodevelopingasingleapplicationasasuiteofsmallservices,
eachrunninginitsownprocessandcommunicatingwithlightweightmechanisms,oftenanHTTPresourceAPI.
Theseservicesarebuiltaroundbusinesscapabilitiesandindependentlydeployablebyfullyautomateddeploymentmachinery.
Thereisabareminimumofcentralizedmanagementoftheseservices,whichmaybewrittenindifferentprogramminglanguages
andusedifferentdatastoragetechnologies.
MartinFowler
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 20
@aahoogendoorn
www.ditisagile.nl
Monoliths. Scalability
Product Account
Order Customer
Product Account
Order Customer
Product Account
Order Customer
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 21
@aahoogendoorn
www.ditisagile.nl
Microservices. Scalability
Product Account
OrderCustomer
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 22
@aahoogendoorn
www.ditisagile.nl
Microservices. Scalability
Product Account
OrderCustomer
Product
CustomerCustomer Customer
Account Account
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 23
@aahoogendoorn
www.ditisagile.nl
Microservices. Scalability & containers
Product Account
Order
Product
Customer
Account Account
CustomerCustomer
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 24
@aahoogendoorn
www.ditisagile.nl
Monoliths. Persistence
Product Account
Order Customer
Products Accounts
Orders Customers
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 25
@aahoogendoorn
www.ditisagile.nl
Microservices. Polyglot persistence
Product Account OrderCustomer
MongoDB
Customers
MongoDB
Orders
ActiveDirectory
Accounts
Oracle
Products
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 26
@aahoogendoorn
www.ditisagile.nl
Microservices. Promises
 Products not projects
 Scalable
 Decentralized governance
 Replaceable parts
 High performance
 Technology independent
 Polyglot persistence
 Easy to build
 Easy to test
 Easier deployment than monoliths
Product
Account
Order
Customer
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 27
@aahoogendoorn
www.ditisagile.nl
Microservices. But…
 What is a microservice exactly?
 How small is a microservice?
 Requirements in a microservice world
 Components or services
 Who owns a microservice?
 What technologies do you use?
 What protocols do you apply?
 How to define messages
 How to test microservices
 How to coordinate when business services run
across components?
 How to build deployment pipelines?
Product
Account
Order
Customer
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 28
@aahoogendoorn
www.ditisagile.nl
Opinions, opinions, opinions
@aahoogendoorn
ARE MICROSERVICES
A STAIRWAY TO HEAVEN?
@aahoogendoorn
OR A HIGHWAY TO HELL?
@aahoogendoorn
A REAL WORLD CASE
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 32
@aahoogendoorn
www.ditisagile.nl
A major insurance company
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 33
@aahoogendoorn
www.ditisagile.nl
A major insurance company
We have
 Most functionality on an expensive mainframe
 A wide variety of large systems written in Java that are hard
to maintain and to test, and that are very hard to replace
 Individual systems that cover large areas of functionality,
usually coupled to departments
 Aging technology
 No mobile strategy, allowing for new business or new
services to clients, and intermediaries
We need to
 Get rid of the mainframe
 Shorten time-to-market
 Lower TCO
 Uphold a fully secure systems landscape
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 34
@aahoogendoorn
www.ditisagile.nl
Where do we come from?
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 35
@aahoogendoorn
www.ditisagile.nl
Where do we come from?
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 36
@aahoogendoorn
www.ditisagile.nl
Outsourcing didn’t work
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 37
@aahoogendoorn
www.ditisagile.nl
Where do we go?
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 38
@aahoogendoorn
www.ditisagile.nl
FORTHETHINGSWEHAVETOLEARN
BEFOREWECANDOTHEM,
WELEARNBYDOINGTHEM
Aristotle
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 39
@aahoogendoorn
www.ditisagile.nl
MICROSERVICESREQUIREANEVOLUTIONARYARCHITECTURE
@aahoogendoorn
START WITH SOME GUIDING PRINCIPLES
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 41
@aahoogendoorn
www.ditisagile.nl
Questions, questions, questions
Communicationarchitecture.Theglue
Howdowedefineinterfacesbetweenappsandcomponent?Howdowearrangemessaging?
Howdowegluetogetherrapidlychangingappsandcomponent?
Applicationarchitecture
EnduserfacingDifferentusers,differentfastevolvingneeds
Whichtechnologyisthebestforwhichpurpose?
Componentarchitecture
Componentsandservicesareevolvingrapidly.Howdowedecidewhichcomponentsweneed?
Howdowedealwithversioning?Howdowedealwithdistributedprocessesandtransactions?
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 42
@aahoogendoorn
www.ditisagile.nl
Case. Guiding principles
We decided to go from here
 Client thinks in business processes, so we implement
business processes
 We move away from the mainframe, to a new systems
landscape, consisting of micro-applications and micro-
components
 Requirements and documentation are modeled rather than
written
 Applications implement a single (elementary) business
process
 Components serve a single purpose and offer services
 Applications and components all have their own bounded
context – a domain model
 Applications and components will have an similar internal
software architecture to facilitate ease of maintenance and
allow for harvesting re-use
 Communication between applications and components will
use a simple open protocol - REST
@aahoogendoorn
APPLICATIONS
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 44
@aahoogendoorn
www.ditisagile.nl
Presentation
Process
Domain
Services
Outsideworld
Pages
Grids/Panels,Controls
Usecases
Flow
Domainobjects,Factories/Repositories
Enums/Valueobjects/Tupels/Referenceobjects
Servicegateways,Serviceclients
Infoobjects/Searchobjects
ComponentsRelations Dossiers Intermediaries Accounts Rates
@aahoogendoorn
COMPONENTS
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 46
@aahoogendoorn
www.ditisagile.nl
Serviceinterface
Process
Domain
Data/Services
Outsideworld
Resources
Representations
Usecases
Flow
Domainobjects,Factories/Repositories
Enums/Valueobjects/Tupels/Referenceobjects
Storagegateways,Storageclients
Infoobjects/Searchobjects
StorageRelations Dossiers Intermediaries DB2 MongoDB
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 47
@aahoogendoorn
www.ditisagile.nl
NOWWHATDOESALLTHISHAVETODOWITHMODELING?
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 48
@aahoogendoorn
www.ditisagile.nl
DOINGBIGUP-FRONTDESIGNISDUMB
DOINGNODESIGNISEVENDUMBER
DaveThomas
@aahoogendoorn
BUSINESS PROCESSES FIRST
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 50
@aahoogendoorn
www.ditisagile.nl
Different levels of processes (and requirements)
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 51
@aahoogendoorn
www.ditisagile.nl
A high-level business process
Step1 Step2 Step3 Step4 Step5
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 52
@aahoogendoorn
www.ditisagile.nl
Split into work processes
Step3.1 Step3.2 Step3.3 Step3.4
Step3
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 53
@aahoogendoorn
www.ditisagile.nl
Split into elementary processes - OTOPOP
Step3.3.1 Step3.3.2 Step3.3.3 Step3.3.4
Step3.3
Step3.3.5
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 54
@aahoogendoorn
www.ditisagile.nl
Smart use cases
Modeling applications
 Each elementary process is implemented in a
single application
 The requirements are modeled using smart use
cases
 Each application consists of a single sea-level use
case and a number of fish-level use cases
 Additionally we add the services that are required
to implement the applications to the model
 Doing so, we can easily do impact mapping on our
services
 Also, the smart use cases form a strong
foundation for integration testing
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 55
@aahoogendoorn
www.ditisagile.nl
Different levels of use cases
Traditional
use cases
Smart
use cases
Format Textual Visual
Granularity Different Unified
Estimate Hard Easy
Unit of work Lousy Good
Reuse Incidental Normal
Traceability Possible Normal
Testability Poor Good
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 56
@aahoogendoorn
www.ditisagile.nl
Smart use cases
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 57
@aahoogendoorn
www.ditisagile.nl
57Smart use cases
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 58
@aahoogendoorn
www.ditisagile.nl
Wireframes with use cases
@aahoogendoorn
MODULAR DESIGN /
DESIGNING MICROSERVICES
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 60
@aahoogendoorn
www.ditisagile.nl
Single responsibility principle (SRP)
SOLID
 Single Responsibility Principle
 Open Closed Principle
 Liskov Substituion Principle
 Interface Segregation Principle
 Dependency Inversion Principle
Single Responsibility Principle
 Every module should have responsibility over a single part of the
functionality provided by the software,
 That responsibility should be entirely encapsulated by the class
 All its services should be narrowly aligned with that responsibility
Therefore
 Group together things that change together
 Separate things that change for different reason
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 61
@aahoogendoorn
www.ditisagile.nl
Bounded context
Domain driven design
 The paradigm of designing software based on models
of the underlying domain
 The domain model helps the business and the
developers to reason about the functionality
 A model needs to be unified – internally consistent
without contradictions
Bounded context
 The bounded context is a central pattern in domain
driven design
 When you model larger domains, it becomes
progressively harder to create this single unified model
 So, instead of creating a single unified model, you
create several, all valid within their bounded context
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 62
@aahoogendoorn
www.ditisagile.nl
The single unified domain model
Product
Vendor
Stock
Order
Client
Delivery
Payment
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 63
@aahoogendoorn
www.ditisagile.nl
Bounded contexts
Product
Vendor
Stock
Order
Client
Delivery
Payment
Product
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 64
@aahoogendoorn
www.ditisagile.nl
Bounded contexts
Modeling
 Modeled in a (single) domain model
 Model contains entities, domain objects
 Usually evolves around a single main entity (aggregate root)
Services
 Interrogate the bounded context
 Resources usually follow the aggregate root
 Services post and put representations
 Representations are mapped to the bounded context
Validation
 Representations can be validated before being mapped
 Bounded context can be validated as a whole e.g. before storing
 Business rules
 Properties and property types
Product
Vendor
Stock
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 65
@aahoogendoorn
www.ditisagile.nl
Properties and property types
Basic types
 string, integer, date, datetime
 Include nullable wrapping
Enumerations
 Set up at design time, unchangeable at run-time
 Genders, Categories
Value objects
 No specific instances
 Isbn, Email, Url, Money
References (code tables)
 Changeable at run-time, such as contract types
Associations
 To cached entities such as Country, Nationality
 To first level citizens such as Customer, Product
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 66
@aahoogendoorn
www.ditisagile.nl
66
Every application,
worker and
component
has its own
bounded context
@aahoogendoorn
AND THE REST IS
COMMUNICATION (OVER HTTP)
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 68
@aahoogendoorn
www.ditisagile.nl
HTTPRETURNCODESCHEATSHEET
1**.Holdon
2**.Hereyougo
3**.Goaway
4**.Youfuckedup
5**.Ifuckedup
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 69
@aahoogendoorn
www.ditisagile.nl
HTTP GET
GET
 Retrieve whatever information is
identified by the request URI in the form
of an entity
 The entity is usually a single or a list of
objects (of the type provided by the
service, often JSON, or XML)
 GET is safe (retrieval only) and
idempotent
 Unfortunately there are many ways of
creating GET requests (see examples
below)
 Returns 200 (found), possibly 400 (bad
request) or 404 (not found)
Examples
 Get an entire collection
localhost:8080/countries
 Find objects in the collection
localhost:8080/countries?name=“stan”
 Find an object in the collection by ID
localhost:8080/countries/38
 Find a sub-object in the collection by ID
localhost:8080/countries/38/capital
 Find object in the collection by ISO
localhost:8080/countries?isocode=“GRC”
 Find object in the collection by ISO
localhost:8080/countries/isocode/GRC
 Find object in the collection by ISO
localhost:8080/countries/GRC
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 70
@aahoogendoorn
www.ditisagile.nl
HTTP POST
POST
 Request that the server accepts the
entity enclosed in the request as a new
subordinate of the resource identified by
the request URI
 The posted entity is subordinate to that
URI in the same way that a file is
subordinate to a directory containing it
 Returns the location header for the new
resource, possibly with created entity in
the body
 Returns 201 (created), possibly 500
(server error)
Examples
 Post to the collection (with entity in body)
localhost:8080/countries
 Returning location header
localhost:8080/countries/38
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 71
@aahoogendoorn
www.ditisagile.nl
HTTP PUT
PUT
 Requests that the enclosed entity is
stored under the supplied request URI
 If the request URI refers to an existing
resource, the enclosed entity is an
modified version of the resource
 POST identifies the resource that will
handle the enclosed entity
 PUT identifies the entity enclosed with
the request
 Returns 200 or 204 (when resource is
modified), possibly 201 (if a resource is
created), possibly 500 (server error)
Examples
 Put with ID (with entity in body)
localhost:8080/countries/38
 Update capital (with entity in body)
localhost:8080/countries/38/capital
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 72
@aahoogendoorn
www.ditisagile.nl
HTTP DELETE
DELETE
 Requests that the resource identified by
the request URI is deleted.
 Returns 200 or 204 (when resource is
deleted), possibly 500 (server error)
Examples
 Delete
localhost:8080/countries/38
@aahoogendoorn
MODELING RESOURCES
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 74
@aahoogendoorn
www.ditisagile.nl
Modeling resources
Root resources (component)
/qa
/questionnaires
GET
Questionnaire
Id,Name,Description
/qa
GET the collection, but only limited to this
representation (but with locations likely)
/qa/questionnaires
/questionnaires
GET
/{id}
Questionnaire
Id,Name,Description
Question
Type,Name,Description
Answer
Name,Value
GET a single item from the collection, but
with representation
/qa/questionnaires/334532
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 75
@aahoogendoorn
www.ditisagile.nl
75
Resource
model
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 76
@aahoogendoorn
www.ditisagile.nl
76
Service
use cases
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 77
@aahoogendoorn
www.ditisagile.nl
77Component bounded context
@aahoogendoorn
TESTING MICROSERVICES
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 79
@aahoogendoorn
www.ditisagile.nl
A service development lifecycle
Code DeveloperTest Test IntegrationTest AcceptanceTest LivePrepare&Design
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 80
@aahoogendoorn
www.ditisagile.nl
What to test
Code DeveloperTest Test IntegrationTest AcceptanceTest LivePrepare&Design
Developers
Unittests
Developers
Q&A
Testers
Scenario’s&API’s
Testers
Scenario’s&API’s
Productowner
Product
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 81
@aahoogendoorn
www.ditisagile.nl
Even though you might have brilliant testers
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 82
@aahoogendoorn
www.ditisagile.nl
… please automate your tests
Code DeveloperTest Test IntegrationTest AcceptanceTest LivePrepare&Design
Developers
Unittests
Developers
Q&A
Testers
Scenario’s&API’s
Testers
Scenario’s&API’s
Productowner
Product
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 83
@aahoogendoorn
www.ditisagile.nl
Developer Q&A Sonarqube
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 84
@aahoogendoorn
www.ditisagile.nl
Developer Q&A Sonarqube
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 85
@aahoogendoorn
www.ditisagile.nl
Developer Q&A Sonar
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 86
@aahoogendoorn
www.ditisagile.nl
Presentation
Process
Domain
Services
Outsideworld
Pages
Grids/Panels,Controls
Usecases
Flow
Domainobjects,Factories/Repositories
Enums/Valueobjects/Tupels/Referenceobjects
Servicegateways,Serviceclients
Infoobjects/Searchobjects
ComponentsRelations Dossiers Intermediaries Accounts Rates
Integrationtests
BDD&Selenium
Unittests
Unittests
Unittests
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 87
@aahoogendoorn
www.ditisagile.nl
Serviceinterface
Process
Domain
Data/Services
Outsideworld
Resources
Representations
Usecases
Flow
Domainobjects,Factories/Repositories
Enums/Valueobjects/Tupels/Referenceobjects
Storagegateways,Storageclients
Infoobjects/Searchobjects
StorageRelations Dossiers Intermediaries DB2 MongoDB
Integrationtests
UsingBDD
Unittests
Unittests
Unittests
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 88
@aahoogendoorn
www.ditisagile.nl
WHATABOUTBEINGINDEPENDENTLYDEPLOYABLE?
@aahoogendoorn
DEPLOYING MICROSERVICES
Continuous integration, build pipelines and continuous delivery
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 90
@aahoogendoorn
www.ditisagile.nl
A typical build pipeline
Code DeveloperTest Test IntegrationTest AcceptanceTest LivePrepare&Design
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 91
@aahoogendoorn
www.ditisagile.nl
ProductionAcceptanceIntegrationTestDevelopment
A typical build pipeline
Code DeveloperTest Test IntegrationTest AcceptanceTest LivePrepare&Design
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 92
@aahoogendoorn
www.ditisagile.nl
Build pipelines in Jenkins
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 93
@aahoogendoorn
www.ditisagile.nl
Microservices. Building a deployment pipeline
Code DeveloperTest Test AcceptanceTest Acceptance Live
Code DeveloperTest Test AcceptanceTest Acceptance Live
Code DeveloperTest Test AcceptanceTest Acceptance Live
Code DeveloperTest Test AcceptanceTest Acceptance Live
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 94
@aahoogendoorn
www.ditisagile.nl
Microservices. Pipeline hell?
Codev.2 DeveloperTestv.2 Testv.2 AcceptanceTestv.2 Acceptancev.2
Code DeveloperTest Test AcceptanceTest Acceptance Live
Testv.2 AcceptanceTestv.2 Acceptancev.2 Livev.2
DeveloperTest Test AcceptanceTest Acceptance Live
Codev.3 DeveloperTestv.3
Live
Codev.2
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 95
@aahoogendoorn
www.ditisagile.nl
Dealing with breaking changes
Customer
v1
App1 App2
Customer
v1
App1 App2
v2
Customer
v1
App1 App2
v2
Customer
App1 App2
v2
@aahoogendoorn
DO WE REALLY NEED PROJECTS?
From projects to releases to continuous delivery
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 97
@aahoogendoorn
www.ditisagile.nl
Do we really need projects?
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 98
@aahoogendoorn
www.ditisagile.nl
Planning?
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 99
@aahoogendoorn
www.ditisagile.nl
Or roadmap?
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 100
@aahoogendoorn
www.ditisagile.nl
Minimal viable product
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 101
@aahoogendoorn
www.ditisagile.nl
Maintenance
From projects to continuous delivery?
Project
MaintenanceMVP
MaintenanceContinuousdelivery
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 102
@aahoogendoorn
www.ditisagile.nl
Moving towards DevOps is not easy
@aahoogendoorn
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 104
@aahoogendoorn
www.ditisagile.nl
WORDLYWISDOMTEACHESUSTHATITISBETTERFORREPUTATION
TOFAILCONVENTIONALLYTHANTOSUCCEEDUNCONVENTIONALLY
JohnMaynardKeynes
@aahoogendoorn
SOME LAST THOUGHTS
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 106
@aahoogendoorn
www.ditisagile.nl
Microservices are not for everyone
Whatarewegoingto benefit
fromthemost?
Polyglotpersistence?
Beingableto
multiplestacks?
Independently
deployable?
Enforce
modulardesign?
Continuous
Delivery?
@aahoogendoorn
10
7
SCALING AGILE FROM THE GROUND UP
©2015 ditisagile.nl. All Rights Reserved
Work from roadmaps
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 108
@aahoogendoorn
www.ditisagile.nl
Minimal viable product
@aahoogendoorn
ALLOW THE TEAM TO LEARN
CONTINUOUSLY…
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 110
@aahoogendoorn
www.ditisagile.nl
Will it work?
MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL?
©2015 ditisagile.nl. All Rights Reserved 111
@aahoogendoorn
www.ditisagile.nl
The hockey stick model
@aahoogendoorn
… AND HAVE FUN
@aahoogendoorn
THIS IS
AGILE
www.createspace.com/4747266
Password: agilescrum
Discount code: KGNWKKWG
@aahoogendoorn
www.sanderhoogendoorn.com
www.smartusecase.com
www.speedbird9.com
sander@ditisagile.nl
@aahoogendoorn
REFERENCES
AND QUESTIONS

Mais conteúdo relacionado

Mais procurados

Cloud Native Apps
Cloud Native AppsCloud Native Apps
Cloud Native AppsDavid Chou
 
Microservices Design Patterns
Microservices Design PatternsMicroservices Design Patterns
Microservices Design PatternsHaim Michael
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices Bozhidar Bozhanov
 
Microservices
MicroservicesMicroservices
MicroservicesSmartBear
 
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Edureka!
 
Emerging Trends in Hybrid-Cloud & Multi-Cloud Strategies
Emerging Trends in Hybrid-Cloud & Multi-Cloud StrategiesEmerging Trends in Hybrid-Cloud & Multi-Cloud Strategies
Emerging Trends in Hybrid-Cloud & Multi-Cloud StrategiesChaitanya Atreya
 
Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...Chris Richardson
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architectureThe Software House
 
Observability For Modern Applications
Observability For Modern ApplicationsObservability For Modern Applications
Observability For Modern ApplicationsAmazon Web Services
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices ArchitectureJoshua Costa
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsAraf Karsh Hamid
 
Cloud Native Architectures for Devops
Cloud Native Architectures for DevopsCloud Native Architectures for Devops
Cloud Native Architectures for Devopscornelia davis
 
Cloud proposition for banking
Cloud proposition for bankingCloud proposition for banking
Cloud proposition for bankingAjay Kumar Uppal
 

Mais procurados (20)

Cloud Native Apps
Cloud Native AppsCloud Native Apps
Cloud Native Apps
 
Migration Planning
Migration PlanningMigration Planning
Migration Planning
 
Microservices Design Patterns
Microservices Design PatternsMicroservices Design Patterns
Microservices Design Patterns
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices
 
Cloud Migration: A How-To Guide
Cloud Migration: A How-To GuideCloud Migration: A How-To Guide
Cloud Migration: A How-To Guide
 
Microservices
MicroservicesMicroservices
Microservices
 
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
 
Emerging Trends in Hybrid-Cloud & Multi-Cloud Strategies
Emerging Trends in Hybrid-Cloud & Multi-Cloud StrategiesEmerging Trends in Hybrid-Cloud & Multi-Cloud Strategies
Emerging Trends in Hybrid-Cloud & Multi-Cloud Strategies
 
Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...Developing applications with a microservice architecture (SVforum, microservi...
Developing applications with a microservice architecture (SVforum, microservi...
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architecture
 
Observability For Modern Applications
Observability For Modern ApplicationsObservability For Modern Applications
Observability For Modern Applications
 
Microservices Decomposition Patterns
Microservices Decomposition PatternsMicroservices Decomposition Patterns
Microservices Decomposition Patterns
 
Microservices Architecture
Microservices ArchitectureMicroservices Architecture
Microservices Architecture
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
 
Cloud Native Architectures for Devops
Cloud Native Architectures for DevopsCloud Native Architectures for Devops
Cloud Native Architectures for Devops
 
App Modernization
App ModernizationApp Modernization
App Modernization
 
Cloud proposition for banking
Cloud proposition for bankingCloud proposition for banking
Cloud proposition for banking
 
Multi Cloud Architecture Approach
Multi Cloud Architecture ApproachMulti Cloud Architecture Approach
Multi Cloud Architecture Approach
 
Why Microservice
Why Microservice Why Microservice
Why Microservice
 

Destaque

Growing a microservices landscape (with smart use cases)
Growing a microservices landscape (with smart use cases)Growing a microservices landscape (with smart use cases)
Growing a microservices landscape (with smart use cases)Sander Hoogendoorn
 
Microservices the Good Bad and the Ugly
Microservices the Good Bad and the UglyMicroservices the Good Bad and the Ugly
Microservices the Good Bad and the UglyAdrian Cockcroft
 
Pragmatic agile model driven development using smart use cases
Pragmatic agile model driven development using smart use casesPragmatic agile model driven development using smart use cases
Pragmatic agile model driven development using smart use casesSander Hoogendoorn
 
An introduction to smart use cases
An introduction to smart use casesAn introduction to smart use cases
An introduction to smart use casesSander Hoogendoorn
 
Principles of microservices XP Days Ukraine
Principles of microservices   XP Days UkrainePrinciples of microservices   XP Days Ukraine
Principles of microservices XP Days UkraineSam Newman
 
Building a Bank out of Microservices (NDC Sydney, August 2016)
Building a Bank out of Microservices (NDC Sydney, August 2016)Building a Bank out of Microservices (NDC Sydney, August 2016)
Building a Bank out of Microservices (NDC Sydney, August 2016)Graham Lea
 
Best Practices for API Management
Best Practices for API Management Best Practices for API Management
Best Practices for API Management WSO2
 
Better Software—Faster: Ten Best Practices from Sequoia's Microservices Summit
Better Software—Faster: Ten Best Practices from Sequoia's Microservices SummitBetter Software—Faster: Ten Best Practices from Sequoia's Microservices Summit
Better Software—Faster: Ten Best Practices from Sequoia's Microservices SummitSequoia Capital
 
Varrendo APIs REST em Larga Escala utilizando PHP
Varrendo APIs REST em Larga Escala utilizando PHPVarrendo APIs REST em Larga Escala utilizando PHP
Varrendo APIs REST em Larga Escala utilizando PHPAlexandre Gaigalas
 
Swarm sec
Swarm secSwarm sec
Swarm secsnrism
 
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviçosTCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviçosThiago Pereira
 
Javaland 2017: "You´ll do microservices now". Now what?
Javaland 2017: "You´ll do microservices now". Now what?Javaland 2017: "You´ll do microservices now". Now what?
Javaland 2017: "You´ll do microservices now". Now what?André Goliath
 
Scaling agile from the ground up
Scaling agile from the ground upScaling agile from the ground up
Scaling agile from the ground upSander Hoogendoorn
 
Refactoring the Tennis Kata v2 (2016)
Refactoring the Tennis Kata v2 (2016)Refactoring the Tennis Kata v2 (2016)
Refactoring the Tennis Kata v2 (2016)Peter Kofler
 
Docker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & BluemixDocker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & BluemixIBM
 
Principles of Microservices - NDC 2014
Principles of Microservices  - NDC 2014Principles of Microservices  - NDC 2014
Principles of Microservices - NDC 2014Sam Newman
 

Destaque (20)

Growing a microservices landscape (with smart use cases)
Growing a microservices landscape (with smart use cases)Growing a microservices landscape (with smart use cases)
Growing a microservices landscape (with smart use cases)
 
Microservices the Good Bad and the Ugly
Microservices the Good Bad and the UglyMicroservices the Good Bad and the Ugly
Microservices the Good Bad and the Ugly
 
Pragmatic agile model driven development using smart use cases
Pragmatic agile model driven development using smart use casesPragmatic agile model driven development using smart use cases
Pragmatic agile model driven development using smart use cases
 
An introduction to smart use cases
An introduction to smart use casesAn introduction to smart use cases
An introduction to smart use cases
 
Principles of microservices XP Days Ukraine
Principles of microservices   XP Days UkrainePrinciples of microservices   XP Days Ukraine
Principles of microservices XP Days Ukraine
 
Building Better Software Faster
Building Better Software FasterBuilding Better Software Faster
Building Better Software Faster
 
Building a Bank out of Microservices (NDC Sydney, August 2016)
Building a Bank out of Microservices (NDC Sydney, August 2016)Building a Bank out of Microservices (NDC Sydney, August 2016)
Building a Bank out of Microservices (NDC Sydney, August 2016)
 
Best Practices for API Management
Best Practices for API Management Best Practices for API Management
Best Practices for API Management
 
Better Software—Faster: Ten Best Practices from Sequoia's Microservices Summit
Better Software—Faster: Ten Best Practices from Sequoia's Microservices SummitBetter Software—Faster: Ten Best Practices from Sequoia's Microservices Summit
Better Software—Faster: Ten Best Practices from Sequoia's Microservices Summit
 
SOA
SOASOA
SOA
 
Varrendo APIs REST em Larga Escala utilizando PHP
Varrendo APIs REST em Larga Escala utilizando PHPVarrendo APIs REST em Larga Escala utilizando PHP
Varrendo APIs REST em Larga Escala utilizando PHP
 
Swarm sec
Swarm secSwarm sec
Swarm sec
 
Docker con osdk_ver1.0
Docker con osdk_ver1.0Docker con osdk_ver1.0
Docker con osdk_ver1.0
 
OO Design
OO DesignOO Design
OO Design
 
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviçosTCC 1 - Um método para o desenvolvimento de software baseado em microserviços
TCC 1 - Um método para o desenvolvimento de software baseado em microserviços
 
Javaland 2017: "You´ll do microservices now". Now what?
Javaland 2017: "You´ll do microservices now". Now what?Javaland 2017: "You´ll do microservices now". Now what?
Javaland 2017: "You´ll do microservices now". Now what?
 
Scaling agile from the ground up
Scaling agile from the ground upScaling agile from the ground up
Scaling agile from the ground up
 
Refactoring the Tennis Kata v2 (2016)
Refactoring the Tennis Kata v2 (2016)Refactoring the Tennis Kata v2 (2016)
Refactoring the Tennis Kata v2 (2016)
 
Docker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & BluemixDocker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & Bluemix
 
Principles of Microservices - NDC 2014
Principles of Microservices  - NDC 2014Principles of Microservices  - NDC 2014
Principles of Microservices - NDC 2014
 

Semelhante a Modeling Microservices Architecture

Microservices. The good the bad and the ugly
Microservices. The good the bad and the uglyMicroservices. The good the bad and the ugly
Microservices. The good the bad and the uglySander Hoogendoorn
 
Designing and building a micro-services architecture. Stairway to heaven or a...
Designing and building a micro-services architecture. Stairway to heaven or a...Designing and building a micro-services architecture. Stairway to heaven or a...
Designing and building a micro-services architecture. Stairway to heaven or a...Sander Hoogendoorn
 
Thirty months of microservices. Stairway to heaven or highway to hell
Thirty months of microservices. Stairway to heaven or highway to hellThirty months of microservices. Stairway to heaven or highway to hell
Thirty months of microservices. Stairway to heaven or highway to hellSander Hoogendoorn
 
Microservices. Stairway to heaven or highway to hell
Microservices. Stairway to heaven or highway to hellMicroservices. Stairway to heaven or highway to hell
Microservices. Stairway to heaven or highway to hellSander Hoogendoorn
 
Microservices. The good, the bad and the ugly.
Microservices. The good, the bad and the ugly.Microservices. The good, the bad and the ugly.
Microservices. The good, the bad and the ugly.Sander Hoogendoorn
 
Designing, building, testing and deploying microservices. A stairway to heave...
Designing, building, testing and deploying microservices. A stairway to heave...Designing, building, testing and deploying microservices. A stairway to heave...
Designing, building, testing and deploying microservices. A stairway to heave...Codemotion
 
Geecon Prague 2016 - Thirty months of microservices
Geecon Prague 2016 - Thirty months of microservicesGeecon Prague 2016 - Thirty months of microservices
Geecon Prague 2016 - Thirty months of microservicesSander Hoogendoorn
 
Thirty months of microservices. Stairway to heaven or highway to hell? - Sand...
Thirty months of microservices. Stairway to heaven or highway to hell? - Sand...Thirty months of microservices. Stairway to heaven or highway to hell? - Sand...
Thirty months of microservices. Stairway to heaven or highway to hell? - Sand...Codemotion
 
Ventana Research 2015 Technology Innovation Awards
Ventana Research 2015 Technology Innovation AwardsVentana Research 2015 Technology Innovation Awards
Ventana Research 2015 Technology Innovation AwardsVentana Research
 
Salesforce Security with Visibility, Control & Data Protection
Salesforce Security with Visibility, Control & Data ProtectionSalesforce Security with Visibility, Control & Data Protection
Salesforce Security with Visibility, Control & Data ProtectionCipherCloud
 
AWS Summit Sydney 2014 | Building Tomorrow’s Digital Enterprise Leveraging SM...
AWS Summit Sydney 2014 | Building Tomorrow’s Digital Enterprise Leveraging SM...AWS Summit Sydney 2014 | Building Tomorrow’s Digital Enterprise Leveraging SM...
AWS Summit Sydney 2014 | Building Tomorrow’s Digital Enterprise Leveraging SM...Amazon Web Services
 
Secrets of Successful Digital Transformers
Secrets of Successful Digital TransformersSecrets of Successful Digital Transformers
Secrets of Successful Digital TransformersVMware Tanzu
 
Opportunities for Training Companies - The CCC Cloud Business Associate
Opportunities for Training Companies - The CCC Cloud Business AssociateOpportunities for Training Companies - The CCC Cloud Business Associate
Opportunities for Training Companies - The CCC Cloud Business AssociateITpreneurs
 
Bringing Partners, Teams & Systems Together through APIs
Bringing Partners, Teams & Systems Together through APIsBringing Partners, Teams & Systems Together through APIs
Bringing Partners, Teams & Systems Together through APIsApigee | Google Cloud
 
GraphTour - Mastering highly distributed architecture with Neo4j
GraphTour - Mastering highly distributed architecture with Neo4jGraphTour - Mastering highly distributed architecture with Neo4j
GraphTour - Mastering highly distributed architecture with Neo4jNeo4j
 
Validus investor pitch deck 03212014 rjc updates
Validus investor pitch deck 03212014 rjc updatesValidus investor pitch deck 03212014 rjc updates
Validus investor pitch deck 03212014 rjc updatesRick Catalano
 
Failing forward v2
Failing forward v2Failing forward v2
Failing forward v2SmartOrg
 
Synergy Technology Services Corporate Profile - 28-01-2016
Synergy Technology Services Corporate Profile - 28-01-2016Synergy Technology Services Corporate Profile - 28-01-2016
Synergy Technology Services Corporate Profile - 28-01-2016BNI Exponential
 
Powering Omnichannel Experiences with Real-Time Data
Powering Omnichannel Experiences with Real-Time DataPowering Omnichannel Experiences with Real-Time Data
Powering Omnichannel Experiences with Real-Time DataTealium
 
Converge 2018 - Funding Your Security Program Through Digital Transformation
Converge 2018 - Funding Your Security Program Through Digital TransformationConverge 2018 - Funding Your Security Program Through Digital Transformation
Converge 2018 - Funding Your Security Program Through Digital TransformationMatt Topper
 

Semelhante a Modeling Microservices Architecture (20)

Microservices. The good the bad and the ugly
Microservices. The good the bad and the uglyMicroservices. The good the bad and the ugly
Microservices. The good the bad and the ugly
 
Designing and building a micro-services architecture. Stairway to heaven or a...
Designing and building a micro-services architecture. Stairway to heaven or a...Designing and building a micro-services architecture. Stairway to heaven or a...
Designing and building a micro-services architecture. Stairway to heaven or a...
 
Thirty months of microservices. Stairway to heaven or highway to hell
Thirty months of microservices. Stairway to heaven or highway to hellThirty months of microservices. Stairway to heaven or highway to hell
Thirty months of microservices. Stairway to heaven or highway to hell
 
Microservices. Stairway to heaven or highway to hell
Microservices. Stairway to heaven or highway to hellMicroservices. Stairway to heaven or highway to hell
Microservices. Stairway to heaven or highway to hell
 
Microservices. The good, the bad and the ugly.
Microservices. The good, the bad and the ugly.Microservices. The good, the bad and the ugly.
Microservices. The good, the bad and the ugly.
 
Designing, building, testing and deploying microservices. A stairway to heave...
Designing, building, testing and deploying microservices. A stairway to heave...Designing, building, testing and deploying microservices. A stairway to heave...
Designing, building, testing and deploying microservices. A stairway to heave...
 
Geecon Prague 2016 - Thirty months of microservices
Geecon Prague 2016 - Thirty months of microservicesGeecon Prague 2016 - Thirty months of microservices
Geecon Prague 2016 - Thirty months of microservices
 
Thirty months of microservices. Stairway to heaven or highway to hell? - Sand...
Thirty months of microservices. Stairway to heaven or highway to hell? - Sand...Thirty months of microservices. Stairway to heaven or highway to hell? - Sand...
Thirty months of microservices. Stairway to heaven or highway to hell? - Sand...
 
Ventana Research 2015 Technology Innovation Awards
Ventana Research 2015 Technology Innovation AwardsVentana Research 2015 Technology Innovation Awards
Ventana Research 2015 Technology Innovation Awards
 
Salesforce Security with Visibility, Control & Data Protection
Salesforce Security with Visibility, Control & Data ProtectionSalesforce Security with Visibility, Control & Data Protection
Salesforce Security with Visibility, Control & Data Protection
 
AWS Summit Sydney 2014 | Building Tomorrow’s Digital Enterprise Leveraging SM...
AWS Summit Sydney 2014 | Building Tomorrow’s Digital Enterprise Leveraging SM...AWS Summit Sydney 2014 | Building Tomorrow’s Digital Enterprise Leveraging SM...
AWS Summit Sydney 2014 | Building Tomorrow’s Digital Enterprise Leveraging SM...
 
Secrets of Successful Digital Transformers
Secrets of Successful Digital TransformersSecrets of Successful Digital Transformers
Secrets of Successful Digital Transformers
 
Opportunities for Training Companies - The CCC Cloud Business Associate
Opportunities for Training Companies - The CCC Cloud Business AssociateOpportunities for Training Companies - The CCC Cloud Business Associate
Opportunities for Training Companies - The CCC Cloud Business Associate
 
Bringing Partners, Teams & Systems Together through APIs
Bringing Partners, Teams & Systems Together through APIsBringing Partners, Teams & Systems Together through APIs
Bringing Partners, Teams & Systems Together through APIs
 
GraphTour - Mastering highly distributed architecture with Neo4j
GraphTour - Mastering highly distributed architecture with Neo4jGraphTour - Mastering highly distributed architecture with Neo4j
GraphTour - Mastering highly distributed architecture with Neo4j
 
Validus investor pitch deck 03212014 rjc updates
Validus investor pitch deck 03212014 rjc updatesValidus investor pitch deck 03212014 rjc updates
Validus investor pitch deck 03212014 rjc updates
 
Failing forward v2
Failing forward v2Failing forward v2
Failing forward v2
 
Synergy Technology Services Corporate Profile - 28-01-2016
Synergy Technology Services Corporate Profile - 28-01-2016Synergy Technology Services Corporate Profile - 28-01-2016
Synergy Technology Services Corporate Profile - 28-01-2016
 
Powering Omnichannel Experiences with Real-Time Data
Powering Omnichannel Experiences with Real-Time DataPowering Omnichannel Experiences with Real-Time Data
Powering Omnichannel Experiences with Real-Time Data
 
Converge 2018 - Funding Your Security Program Through Digital Transformation
Converge 2018 - Funding Your Security Program Through Digital TransformationConverge 2018 - Funding Your Security Program Through Digital Transformation
Converge 2018 - Funding Your Security Program Through Digital Transformation
 

Mais de Sander Hoogendoorn

Flow. The official worst software development approach in history
Flow. The official worst software development approach in historyFlow. The official worst software development approach in history
Flow. The official worst software development approach in historySander Hoogendoorn
 
It's a small world after all. How thinking small changes software big time
It's a small world after all. How thinking small changes software big timeIt's a small world after all. How thinking small changes software big time
It's a small world after all. How thinking small changes software big timeSander Hoogendoorn
 
Welcome to the world of micro-apps
Welcome to the world of micro-appsWelcome to the world of micro-apps
Welcome to the world of micro-appsSander Hoogendoorn
 
Welcome to the world of micro-applications
Welcome to the world of micro-applicationsWelcome to the world of micro-applications
Welcome to the world of micro-applicationsSander Hoogendoorn
 
Wat is agile en wat betekent het voor mij?
Wat is agile en wat betekent het voor mij?Wat is agile en wat betekent het voor mij?
Wat is agile en wat betekent het voor mij?Sander Hoogendoorn
 
20180509 - It's a small world after all. How thinking small is changing softw...
20180509 - It's a small world after all. How thinking small is changing softw...20180509 - It's a small world after all. How thinking small is changing softw...
20180509 - It's a small world after all. How thinking small is changing softw...Sander Hoogendoorn
 
W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...
W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...
W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...Sander Hoogendoorn
 
Swanseacon 2017 Keynote - It's a small world after all.
Swanseacon 2017 Keynote - It's a small world after all.Swanseacon 2017 Keynote - It's a small world after all.
Swanseacon 2017 Keynote - It's a small world after all.Sander Hoogendoorn
 
Beyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessonsBeyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessonsSander Hoogendoorn
 
Beyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessonsBeyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessonsSander Hoogendoorn
 
The state of agile in ten easy learned lessons
The state of agile in ten easy learned lessonsThe state of agile in ten easy learned lessons
The state of agile in ten easy learned lessonsSander Hoogendoorn
 
Beyond breaking bad. The state of agile in ten easy lessons
Beyond breaking bad. The state of agile in ten easy lessonsBeyond breaking bad. The state of agile in ten easy lessons
Beyond breaking bad. The state of agile in ten easy lessonsSander Hoogendoorn
 
An introduction to agile and beyond
An introduction to agile and beyondAn introduction to agile and beyond
An introduction to agile and beyondSander Hoogendoorn
 
How Frameworks Can Kill Your Projects at XP Days Ukraine 2013 in Kiev
How Frameworks Can Kill Your Projects at XP Days Ukraine 2013 in KievHow Frameworks Can Kill Your Projects at XP Days Ukraine 2013 in Kiev
How Frameworks Can Kill Your Projects at XP Days Ukraine 2013 in KievSander Hoogendoorn
 
Agile anti-patterns at CodeMotion Madrid
Agile anti-patterns at CodeMotion MadridAgile anti-patterns at CodeMotion Madrid
Agile anti-patterns at CodeMotion MadridSander Hoogendoorn
 
Being Smart at agile. A brief introduction to Capgemini's Accelerated Deliver...
Being Smart at agile. A brief introduction to Capgemini's Accelerated Deliver...Being Smart at agile. A brief introduction to Capgemini's Accelerated Deliver...
Being Smart at agile. A brief introduction to Capgemini's Accelerated Deliver...Sander Hoogendoorn
 
Building a .NET web application on top of COBOL. Live from the trenches
Building a .NET web application on top of COBOL. Live from the trenchesBuilding a .NET web application on top of COBOL. Live from the trenches
Building a .NET web application on top of COBOL. Live from the trenchesSander Hoogendoorn
 
The invisible man. The crucial but undefined role of testers in agile
The invisible man. The crucial but undefined role of testers in agileThe invisible man. The crucial but undefined role of testers in agile
The invisible man. The crucial but undefined role of testers in agileSander Hoogendoorn
 
Agile anti-patterns. Yes your agile projects can and will fail too.
Agile anti-patterns. Yes your agile projects can and will fail too.Agile anti-patterns. Yes your agile projects can and will fail too.
Agile anti-patterns. Yes your agile projects can and will fail too.Sander Hoogendoorn
 
Agile Contracting. Overcoming your Lawyers Pavlov Responses
Agile Contracting. Overcoming your Lawyers Pavlov ResponsesAgile Contracting. Overcoming your Lawyers Pavlov Responses
Agile Contracting. Overcoming your Lawyers Pavlov ResponsesSander Hoogendoorn
 

Mais de Sander Hoogendoorn (20)

Flow. The official worst software development approach in history
Flow. The official worst software development approach in historyFlow. The official worst software development approach in history
Flow. The official worst software development approach in history
 
It's a small world after all. How thinking small changes software big time
It's a small world after all. How thinking small changes software big timeIt's a small world after all. How thinking small changes software big time
It's a small world after all. How thinking small changes software big time
 
Welcome to the world of micro-apps
Welcome to the world of micro-appsWelcome to the world of micro-apps
Welcome to the world of micro-apps
 
Welcome to the world of micro-applications
Welcome to the world of micro-applicationsWelcome to the world of micro-applications
Welcome to the world of micro-applications
 
Wat is agile en wat betekent het voor mij?
Wat is agile en wat betekent het voor mij?Wat is agile en wat betekent het voor mij?
Wat is agile en wat betekent het voor mij?
 
20180509 - It's a small world after all. How thinking small is changing softw...
20180509 - It's a small world after all. How thinking small is changing softw...20180509 - It's a small world after all. How thinking small is changing softw...
20180509 - It's a small world after all. How thinking small is changing softw...
 
W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...
W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...
W-JAX 2017 Keynote. It's a small world after all. How thinking small is chang...
 
Swanseacon 2017 Keynote - It's a small world after all.
Swanseacon 2017 Keynote - It's a small world after all.Swanseacon 2017 Keynote - It's a small world after all.
Swanseacon 2017 Keynote - It's a small world after all.
 
Beyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessonsBeyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessons
 
Beyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessonsBeyond breaking bad. The current state of agile in ten easy lessons
Beyond breaking bad. The current state of agile in ten easy lessons
 
The state of agile in ten easy learned lessons
The state of agile in ten easy learned lessonsThe state of agile in ten easy learned lessons
The state of agile in ten easy learned lessons
 
Beyond breaking bad. The state of agile in ten easy lessons
Beyond breaking bad. The state of agile in ten easy lessonsBeyond breaking bad. The state of agile in ten easy lessons
Beyond breaking bad. The state of agile in ten easy lessons
 
An introduction to agile and beyond
An introduction to agile and beyondAn introduction to agile and beyond
An introduction to agile and beyond
 
How Frameworks Can Kill Your Projects at XP Days Ukraine 2013 in Kiev
How Frameworks Can Kill Your Projects at XP Days Ukraine 2013 in KievHow Frameworks Can Kill Your Projects at XP Days Ukraine 2013 in Kiev
How Frameworks Can Kill Your Projects at XP Days Ukraine 2013 in Kiev
 
Agile anti-patterns at CodeMotion Madrid
Agile anti-patterns at CodeMotion MadridAgile anti-patterns at CodeMotion Madrid
Agile anti-patterns at CodeMotion Madrid
 
Being Smart at agile. A brief introduction to Capgemini's Accelerated Deliver...
Being Smart at agile. A brief introduction to Capgemini's Accelerated Deliver...Being Smart at agile. A brief introduction to Capgemini's Accelerated Deliver...
Being Smart at agile. A brief introduction to Capgemini's Accelerated Deliver...
 
Building a .NET web application on top of COBOL. Live from the trenches
Building a .NET web application on top of COBOL. Live from the trenchesBuilding a .NET web application on top of COBOL. Live from the trenches
Building a .NET web application on top of COBOL. Live from the trenches
 
The invisible man. The crucial but undefined role of testers in agile
The invisible man. The crucial but undefined role of testers in agileThe invisible man. The crucial but undefined role of testers in agile
The invisible man. The crucial but undefined role of testers in agile
 
Agile anti-patterns. Yes your agile projects can and will fail too.
Agile anti-patterns. Yes your agile projects can and will fail too.Agile anti-patterns. Yes your agile projects can and will fail too.
Agile anti-patterns. Yes your agile projects can and will fail too.
 
Agile Contracting. Overcoming your Lawyers Pavlov Responses
Agile Contracting. Overcoming your Lawyers Pavlov ResponsesAgile Contracting. Overcoming your Lawyers Pavlov Responses
Agile Contracting. Overcoming your Lawyers Pavlov Responses
 

Último

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
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
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
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
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
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
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
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.
 

Último (20)

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
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
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
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
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
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
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
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 ...
 

Modeling Microservices Architecture

  • 1. @aahoogendoorn MODELING MICROSERVICES Sander Hoogendoorn ditisagile.nl Mentoring ▪ Consulting ▪ Training ▪ Agile ▪ Software architecture ▪ Code
  • 2. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 2 @aahoogendoorn www.ditisagile.nl Sander Hoogendoorn Me  Dad  Mentor, trainer, software architect, programmer  Books and +250 articles  Keynotes and talks at +150 conferences Work  Owner ditisagile.nl  CTO Klaverblad Insurances Web  www.sanderhoogendoorn.com  www.smartusecase.com  www.speedbird9.com  @aahoogendoorn  sander@ditisagile.nl
  • 3. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 3 @aahoogendoorn www.ditisagile.nl
  • 4. @aahoogendoorn MONOLITHS Hard to deliver, even harder to test and impossible to maintain
  • 5. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 5 @aahoogendoorn www.ditisagile.nl WHOOFYOUHASASYSTEMTHATISTOOBIG ANDTHATYOUWOULDRATHERBREAKUP?
  • 6. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 6 @aahoogendoorn www.ditisagile.nl Monoliths Advantages  A single (layered) architecture  A single technology stack  A single code base maintained by multiple teams Disadvantages  All parts are interconnected  Many other systems are connected to your system  Hard to change, hard to maintain  Long time between releases, thereby increasing risks  Slow innovation  Hard to move to newer technologies  Doesn’t scale very well Product Account Order Customer Products Accounts Orders Customers
  • 7. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 7 @aahoogendoorn www.ditisagile.nl Dependencies will kill you
  • 8. @aahoogendoorn A BRIEF HISTORY OF COMPONENTS AND SERVICES
  • 9. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 9 @aahoogendoorn www.ditisagile.nl Client server
  • 10. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 10 @aahoogendoorn www.ditisagile.nl Component based development
  • 11. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 11 @aahoogendoorn www.ditisagile.nl Service oriented architecture
  • 12. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 12 @aahoogendoorn www.ditisagile.nl Microservices
  • 14. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 14 @aahoogendoorn www.ditisagile.nl Microservices. Beyond the hype?
  • 15. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 15 @aahoogendoorn www.ditisagile.nl Gartner hype cycle
  • 17. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 17 @aahoogendoorn www.ditisagile.nl BUTFIRST…ADEFINITION
  • 18. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 18 @aahoogendoorn www.ditisagile.nl Inshort,themicroservicearchitecturalstyleisanapproachtodevelopingasingleapplicationasasuiteofsmallservices, eachrunninginitsownprocessandcommunicatingwithlightweightmechanisms,oftenanHTTPresourceAPI. Theseservicesarebuiltaroundbusinesscapabilitiesandindependentlydeployablebyfullyautomateddeploymentmachinery. Thereisabareminimumofcentralizedmanagementoftheseservices,whichmaybewrittenindifferentprogramminglanguages andusedifferentdatastoragetechnologies. MartinFowler
  • 19. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 19 @aahoogendoorn www.ditisagile.nl Inshort,themicroservicearchitecturalstyleisanapproachtodevelopingasingleapplicationasasuiteofsmallservices, eachrunninginitsownprocessandcommunicatingwithlightweightmechanisms,oftenanHTTPresourceAPI. Theseservicesarebuiltaroundbusinesscapabilitiesandindependentlydeployablebyfullyautomateddeploymentmachinery. Thereisabareminimumofcentralizedmanagementoftheseservices,whichmaybewrittenindifferentprogramminglanguages andusedifferentdatastoragetechnologies. MartinFowler
  • 20. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 20 @aahoogendoorn www.ditisagile.nl Monoliths. Scalability Product Account Order Customer Product Account Order Customer Product Account Order Customer
  • 21. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 21 @aahoogendoorn www.ditisagile.nl Microservices. Scalability Product Account OrderCustomer
  • 22. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 22 @aahoogendoorn www.ditisagile.nl Microservices. Scalability Product Account OrderCustomer Product CustomerCustomer Customer Account Account
  • 23. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 23 @aahoogendoorn www.ditisagile.nl Microservices. Scalability & containers Product Account Order Product Customer Account Account CustomerCustomer
  • 24. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 24 @aahoogendoorn www.ditisagile.nl Monoliths. Persistence Product Account Order Customer Products Accounts Orders Customers
  • 25. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 25 @aahoogendoorn www.ditisagile.nl Microservices. Polyglot persistence Product Account OrderCustomer MongoDB Customers MongoDB Orders ActiveDirectory Accounts Oracle Products
  • 26. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 26 @aahoogendoorn www.ditisagile.nl Microservices. Promises  Products not projects  Scalable  Decentralized governance  Replaceable parts  High performance  Technology independent  Polyglot persistence  Easy to build  Easy to test  Easier deployment than monoliths Product Account Order Customer
  • 27. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 27 @aahoogendoorn www.ditisagile.nl Microservices. But…  What is a microservice exactly?  How small is a microservice?  Requirements in a microservice world  Components or services  Who owns a microservice?  What technologies do you use?  What protocols do you apply?  How to define messages  How to test microservices  How to coordinate when business services run across components?  How to build deployment pipelines? Product Account Order Customer
  • 28. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 28 @aahoogendoorn www.ditisagile.nl Opinions, opinions, opinions
  • 32. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 32 @aahoogendoorn www.ditisagile.nl A major insurance company
  • 33. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 33 @aahoogendoorn www.ditisagile.nl A major insurance company We have  Most functionality on an expensive mainframe  A wide variety of large systems written in Java that are hard to maintain and to test, and that are very hard to replace  Individual systems that cover large areas of functionality, usually coupled to departments  Aging technology  No mobile strategy, allowing for new business or new services to clients, and intermediaries We need to  Get rid of the mainframe  Shorten time-to-market  Lower TCO  Uphold a fully secure systems landscape
  • 34. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 34 @aahoogendoorn www.ditisagile.nl Where do we come from?
  • 35. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 35 @aahoogendoorn www.ditisagile.nl Where do we come from?
  • 36. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 36 @aahoogendoorn www.ditisagile.nl Outsourcing didn’t work
  • 37. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 37 @aahoogendoorn www.ditisagile.nl Where do we go?
  • 38. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 38 @aahoogendoorn www.ditisagile.nl FORTHETHINGSWEHAVETOLEARN BEFOREWECANDOTHEM, WELEARNBYDOINGTHEM Aristotle
  • 39. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 39 @aahoogendoorn www.ditisagile.nl MICROSERVICESREQUIREANEVOLUTIONARYARCHITECTURE
  • 40. @aahoogendoorn START WITH SOME GUIDING PRINCIPLES
  • 41. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 41 @aahoogendoorn www.ditisagile.nl Questions, questions, questions Communicationarchitecture.Theglue Howdowedefineinterfacesbetweenappsandcomponent?Howdowearrangemessaging? Howdowegluetogetherrapidlychangingappsandcomponent? Applicationarchitecture EnduserfacingDifferentusers,differentfastevolvingneeds Whichtechnologyisthebestforwhichpurpose? Componentarchitecture Componentsandservicesareevolvingrapidly.Howdowedecidewhichcomponentsweneed? Howdowedealwithversioning?Howdowedealwithdistributedprocessesandtransactions?
  • 42. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 42 @aahoogendoorn www.ditisagile.nl Case. Guiding principles We decided to go from here  Client thinks in business processes, so we implement business processes  We move away from the mainframe, to a new systems landscape, consisting of micro-applications and micro- components  Requirements and documentation are modeled rather than written  Applications implement a single (elementary) business process  Components serve a single purpose and offer services  Applications and components all have their own bounded context – a domain model  Applications and components will have an similar internal software architecture to facilitate ease of maintenance and allow for harvesting re-use  Communication between applications and components will use a simple open protocol - REST
  • 44. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 44 @aahoogendoorn www.ditisagile.nl Presentation Process Domain Services Outsideworld Pages Grids/Panels,Controls Usecases Flow Domainobjects,Factories/Repositories Enums/Valueobjects/Tupels/Referenceobjects Servicegateways,Serviceclients Infoobjects/Searchobjects ComponentsRelations Dossiers Intermediaries Accounts Rates
  • 46. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 46 @aahoogendoorn www.ditisagile.nl Serviceinterface Process Domain Data/Services Outsideworld Resources Representations Usecases Flow Domainobjects,Factories/Repositories Enums/Valueobjects/Tupels/Referenceobjects Storagegateways,Storageclients Infoobjects/Searchobjects StorageRelations Dossiers Intermediaries DB2 MongoDB
  • 47. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 47 @aahoogendoorn www.ditisagile.nl NOWWHATDOESALLTHISHAVETODOWITHMODELING?
  • 48. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 48 @aahoogendoorn www.ditisagile.nl DOINGBIGUP-FRONTDESIGNISDUMB DOINGNODESIGNISEVENDUMBER DaveThomas
  • 50. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 50 @aahoogendoorn www.ditisagile.nl Different levels of processes (and requirements)
  • 51. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 51 @aahoogendoorn www.ditisagile.nl A high-level business process Step1 Step2 Step3 Step4 Step5
  • 52. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 52 @aahoogendoorn www.ditisagile.nl Split into work processes Step3.1 Step3.2 Step3.3 Step3.4 Step3
  • 53. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 53 @aahoogendoorn www.ditisagile.nl Split into elementary processes - OTOPOP Step3.3.1 Step3.3.2 Step3.3.3 Step3.3.4 Step3.3 Step3.3.5
  • 54. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 54 @aahoogendoorn www.ditisagile.nl Smart use cases Modeling applications  Each elementary process is implemented in a single application  The requirements are modeled using smart use cases  Each application consists of a single sea-level use case and a number of fish-level use cases  Additionally we add the services that are required to implement the applications to the model  Doing so, we can easily do impact mapping on our services  Also, the smart use cases form a strong foundation for integration testing
  • 55. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 55 @aahoogendoorn www.ditisagile.nl Different levels of use cases Traditional use cases Smart use cases Format Textual Visual Granularity Different Unified Estimate Hard Easy Unit of work Lousy Good Reuse Incidental Normal Traceability Possible Normal Testability Poor Good
  • 56. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 56 @aahoogendoorn www.ditisagile.nl Smart use cases
  • 57. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 57 @aahoogendoorn www.ditisagile.nl 57Smart use cases
  • 58. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 58 @aahoogendoorn www.ditisagile.nl Wireframes with use cases
  • 60. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 60 @aahoogendoorn www.ditisagile.nl Single responsibility principle (SRP) SOLID  Single Responsibility Principle  Open Closed Principle  Liskov Substituion Principle  Interface Segregation Principle  Dependency Inversion Principle Single Responsibility Principle  Every module should have responsibility over a single part of the functionality provided by the software,  That responsibility should be entirely encapsulated by the class  All its services should be narrowly aligned with that responsibility Therefore  Group together things that change together  Separate things that change for different reason
  • 61. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 61 @aahoogendoorn www.ditisagile.nl Bounded context Domain driven design  The paradigm of designing software based on models of the underlying domain  The domain model helps the business and the developers to reason about the functionality  A model needs to be unified – internally consistent without contradictions Bounded context  The bounded context is a central pattern in domain driven design  When you model larger domains, it becomes progressively harder to create this single unified model  So, instead of creating a single unified model, you create several, all valid within their bounded context
  • 62. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 62 @aahoogendoorn www.ditisagile.nl The single unified domain model Product Vendor Stock Order Client Delivery Payment
  • 63. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 63 @aahoogendoorn www.ditisagile.nl Bounded contexts Product Vendor Stock Order Client Delivery Payment Product
  • 64. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 64 @aahoogendoorn www.ditisagile.nl Bounded contexts Modeling  Modeled in a (single) domain model  Model contains entities, domain objects  Usually evolves around a single main entity (aggregate root) Services  Interrogate the bounded context  Resources usually follow the aggregate root  Services post and put representations  Representations are mapped to the bounded context Validation  Representations can be validated before being mapped  Bounded context can be validated as a whole e.g. before storing  Business rules  Properties and property types Product Vendor Stock
  • 65. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 65 @aahoogendoorn www.ditisagile.nl Properties and property types Basic types  string, integer, date, datetime  Include nullable wrapping Enumerations  Set up at design time, unchangeable at run-time  Genders, Categories Value objects  No specific instances  Isbn, Email, Url, Money References (code tables)  Changeable at run-time, such as contract types Associations  To cached entities such as Country, Nationality  To first level citizens such as Customer, Product
  • 66. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 66 @aahoogendoorn www.ditisagile.nl 66 Every application, worker and component has its own bounded context
  • 67. @aahoogendoorn AND THE REST IS COMMUNICATION (OVER HTTP)
  • 68. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 68 @aahoogendoorn www.ditisagile.nl HTTPRETURNCODESCHEATSHEET 1**.Holdon 2**.Hereyougo 3**.Goaway 4**.Youfuckedup 5**.Ifuckedup
  • 69. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 69 @aahoogendoorn www.ditisagile.nl HTTP GET GET  Retrieve whatever information is identified by the request URI in the form of an entity  The entity is usually a single or a list of objects (of the type provided by the service, often JSON, or XML)  GET is safe (retrieval only) and idempotent  Unfortunately there are many ways of creating GET requests (see examples below)  Returns 200 (found), possibly 400 (bad request) or 404 (not found) Examples  Get an entire collection localhost:8080/countries  Find objects in the collection localhost:8080/countries?name=“stan”  Find an object in the collection by ID localhost:8080/countries/38  Find a sub-object in the collection by ID localhost:8080/countries/38/capital  Find object in the collection by ISO localhost:8080/countries?isocode=“GRC”  Find object in the collection by ISO localhost:8080/countries/isocode/GRC  Find object in the collection by ISO localhost:8080/countries/GRC
  • 70. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 70 @aahoogendoorn www.ditisagile.nl HTTP POST POST  Request that the server accepts the entity enclosed in the request as a new subordinate of the resource identified by the request URI  The posted entity is subordinate to that URI in the same way that a file is subordinate to a directory containing it  Returns the location header for the new resource, possibly with created entity in the body  Returns 201 (created), possibly 500 (server error) Examples  Post to the collection (with entity in body) localhost:8080/countries  Returning location header localhost:8080/countries/38
  • 71. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 71 @aahoogendoorn www.ditisagile.nl HTTP PUT PUT  Requests that the enclosed entity is stored under the supplied request URI  If the request URI refers to an existing resource, the enclosed entity is an modified version of the resource  POST identifies the resource that will handle the enclosed entity  PUT identifies the entity enclosed with the request  Returns 200 or 204 (when resource is modified), possibly 201 (if a resource is created), possibly 500 (server error) Examples  Put with ID (with entity in body) localhost:8080/countries/38  Update capital (with entity in body) localhost:8080/countries/38/capital
  • 72. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 72 @aahoogendoorn www.ditisagile.nl HTTP DELETE DELETE  Requests that the resource identified by the request URI is deleted.  Returns 200 or 204 (when resource is deleted), possibly 500 (server error) Examples  Delete localhost:8080/countries/38
  • 74. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 74 @aahoogendoorn www.ditisagile.nl Modeling resources Root resources (component) /qa /questionnaires GET Questionnaire Id,Name,Description /qa GET the collection, but only limited to this representation (but with locations likely) /qa/questionnaires /questionnaires GET /{id} Questionnaire Id,Name,Description Question Type,Name,Description Answer Name,Value GET a single item from the collection, but with representation /qa/questionnaires/334532
  • 75. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 75 @aahoogendoorn www.ditisagile.nl 75 Resource model
  • 76. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 76 @aahoogendoorn www.ditisagile.nl 76 Service use cases
  • 77. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 77 @aahoogendoorn www.ditisagile.nl 77Component bounded context
  • 79. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 79 @aahoogendoorn www.ditisagile.nl A service development lifecycle Code DeveloperTest Test IntegrationTest AcceptanceTest LivePrepare&Design
  • 80. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 80 @aahoogendoorn www.ditisagile.nl What to test Code DeveloperTest Test IntegrationTest AcceptanceTest LivePrepare&Design Developers Unittests Developers Q&A Testers Scenario’s&API’s Testers Scenario’s&API’s Productowner Product
  • 81. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 81 @aahoogendoorn www.ditisagile.nl Even though you might have brilliant testers
  • 82. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 82 @aahoogendoorn www.ditisagile.nl … please automate your tests Code DeveloperTest Test IntegrationTest AcceptanceTest LivePrepare&Design Developers Unittests Developers Q&A Testers Scenario’s&API’s Testers Scenario’s&API’s Productowner Product
  • 83. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 83 @aahoogendoorn www.ditisagile.nl Developer Q&A Sonarqube
  • 84. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 84 @aahoogendoorn www.ditisagile.nl Developer Q&A Sonarqube
  • 85. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 85 @aahoogendoorn www.ditisagile.nl Developer Q&A Sonar
  • 86. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 86 @aahoogendoorn www.ditisagile.nl Presentation Process Domain Services Outsideworld Pages Grids/Panels,Controls Usecases Flow Domainobjects,Factories/Repositories Enums/Valueobjects/Tupels/Referenceobjects Servicegateways,Serviceclients Infoobjects/Searchobjects ComponentsRelations Dossiers Intermediaries Accounts Rates Integrationtests BDD&Selenium Unittests Unittests Unittests
  • 87. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 87 @aahoogendoorn www.ditisagile.nl Serviceinterface Process Domain Data/Services Outsideworld Resources Representations Usecases Flow Domainobjects,Factories/Repositories Enums/Valueobjects/Tupels/Referenceobjects Storagegateways,Storageclients Infoobjects/Searchobjects StorageRelations Dossiers Intermediaries DB2 MongoDB Integrationtests UsingBDD Unittests Unittests Unittests
  • 88. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 88 @aahoogendoorn www.ditisagile.nl WHATABOUTBEINGINDEPENDENTLYDEPLOYABLE?
  • 89. @aahoogendoorn DEPLOYING MICROSERVICES Continuous integration, build pipelines and continuous delivery
  • 90. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 90 @aahoogendoorn www.ditisagile.nl A typical build pipeline Code DeveloperTest Test IntegrationTest AcceptanceTest LivePrepare&Design
  • 91. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 91 @aahoogendoorn www.ditisagile.nl ProductionAcceptanceIntegrationTestDevelopment A typical build pipeline Code DeveloperTest Test IntegrationTest AcceptanceTest LivePrepare&Design
  • 92. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 92 @aahoogendoorn www.ditisagile.nl Build pipelines in Jenkins
  • 93. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 93 @aahoogendoorn www.ditisagile.nl Microservices. Building a deployment pipeline Code DeveloperTest Test AcceptanceTest Acceptance Live Code DeveloperTest Test AcceptanceTest Acceptance Live Code DeveloperTest Test AcceptanceTest Acceptance Live Code DeveloperTest Test AcceptanceTest Acceptance Live
  • 94. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 94 @aahoogendoorn www.ditisagile.nl Microservices. Pipeline hell? Codev.2 DeveloperTestv.2 Testv.2 AcceptanceTestv.2 Acceptancev.2 Code DeveloperTest Test AcceptanceTest Acceptance Live Testv.2 AcceptanceTestv.2 Acceptancev.2 Livev.2 DeveloperTest Test AcceptanceTest Acceptance Live Codev.3 DeveloperTestv.3 Live Codev.2
  • 95. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 95 @aahoogendoorn www.ditisagile.nl Dealing with breaking changes Customer v1 App1 App2 Customer v1 App1 App2 v2 Customer v1 App1 App2 v2 Customer App1 App2 v2
  • 96. @aahoogendoorn DO WE REALLY NEED PROJECTS? From projects to releases to continuous delivery
  • 97. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 97 @aahoogendoorn www.ditisagile.nl Do we really need projects?
  • 98. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 98 @aahoogendoorn www.ditisagile.nl Planning?
  • 99. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 99 @aahoogendoorn www.ditisagile.nl Or roadmap?
  • 100. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 100 @aahoogendoorn www.ditisagile.nl Minimal viable product
  • 101. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 101 @aahoogendoorn www.ditisagile.nl Maintenance From projects to continuous delivery? Project MaintenanceMVP MaintenanceContinuousdelivery
  • 102. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 102 @aahoogendoorn www.ditisagile.nl Moving towards DevOps is not easy
  • 104. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 104 @aahoogendoorn www.ditisagile.nl WORDLYWISDOMTEACHESUSTHATITISBETTERFORREPUTATION TOFAILCONVENTIONALLYTHANTOSUCCEEDUNCONVENTIONALLY JohnMaynardKeynes
  • 106. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 106 @aahoogendoorn www.ditisagile.nl Microservices are not for everyone Whatarewegoingto benefit fromthemost? Polyglotpersistence? Beingableto multiplestacks? Independently deployable? Enforce modulardesign? Continuous Delivery?
  • 107. @aahoogendoorn 10 7 SCALING AGILE FROM THE GROUND UP ©2015 ditisagile.nl. All Rights Reserved Work from roadmaps
  • 108. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 108 @aahoogendoorn www.ditisagile.nl Minimal viable product
  • 109. @aahoogendoorn ALLOW THE TEAM TO LEARN CONTINUOUSLY…
  • 110. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 110 @aahoogendoorn www.ditisagile.nl Will it work?
  • 111. MICROSERVICES? STAIRWAY TO HEAVEN OR HIGHWAY TO HELL? ©2015 ditisagile.nl. All Rights Reserved 111 @aahoogendoorn www.ditisagile.nl The hockey stick model