SlideShare uma empresa Scribd logo
1 de 85
Baixar para ler offline
@aahoogendoorn
GROWING A MICROSERVICES
LANDSCAPE (WITH SMART USE CASES)
Sander Hoogendoorn
Independent dad, mentor, trainer, software architect, developer
Principal technology officer, global agile thoughtleader Capgemini
@aahoogendoorn
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
2Sander Hoogendoorn
Me independent..
 Dad
 Mentor, trainer, software architect, programmer
 Books, articles, conferences
Work
 Principal technology officer Capgemini
 Global design authority agile Capgemini
 Chief technology officer insurance company
Web
 www.sanderhoogendoorn.com
 www.smartusecase.com
 www.speedbird9.com
 @aahoogendoorn
 sander@ditisagile.nl
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
4On being a developer...
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
5Agenda
 Monoliths
 Microservices? Past the hype?
 Promises
 But…
 From monoliths to a micro-landscape
 Micro-applications
 Components and microservices
 Requirements in a micro-landscape
 Smart use cases
 Agile
 Recommendations & considerations
@aahoogendoorn
MONOLITHS
Hard to deliver, even harder to test and impossible to maintain
@aahoogendoorn
THE DEPENDENCIES WILL KILL YOU
@aahoogendoorn
MICROSERVICES
Beyond the hype?
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
10Microservices. Beyond the hype?
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
11Microservices. Beyond the hype?
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
12Gartner hype cycle
@aahoogendoorn
MICROSERVICES
The clear benefits
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
14
In short, the microservice architectural style is an approach to developing a single
application as a suite of small services, each running in its own process and
communicating with lightweight mechanisms, often an HTTP resource API. These
services are built around business capabilities and independently deployable by fully
automated deployment machinery. There is a bare minimum of centralized
management of these services, which may be written in different programming
languages and use different data storage technologies.
Martin Fowler
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
15Microservices. Scalability
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
16Microservices. Polyglot persistence
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
17Microservices. 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
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
18Microservices. But…
 What is a microservice exactly?
 Or are we building nanoservices? Miniservices?
 Micro-requirements
 Components or services
 How big is a microservice
 Who owns the microservices
 What technology
 How to define messages
 How to test microservices
 How to coordinate when services run across
components
 How to build a deployment pipeline
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
19Microservices. Building a deployment pipeline
Code
Developer
Test
Test
Acceptance
Test
Acceptance Live
Code
Developer
Test
Test
Acceptance
Test
Acceptance Live
Code
Developer
Test
Test
Acceptance
Test
Acceptance Live
Code
Developer
Test
Test
Acceptance
Test
Acceptance Live
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
20Microservices. Pipeline hell?
Code
v.2
Developer
Test
v.2
Test
v.2
Acceptance
Test
v.2
Acceptance
v.2
Code
Developer
Test
Test
Acceptance
Test
Acceptance Live
Test
v.2
Acceptance
Test
v.2
Acceptance
v.2
Live
v.2
Developer
Test
Test
Acceptance
Test
Acceptance Live
Code
v.3
Developer
Test
v.3
Live
Code
v.2
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
21Microservices. Pipeline hell?
Code
v.2
Developer
Test
v.2
Test
v.2
Acceptance
Test
v.2
Acceptance
v.2
Code
Developer
Test
Test
Acceptance
Test
Acceptance Live
Test
v.2
Acceptance
Test
v.2
Acceptance
v.2
Live
v.2
Developer
Test
Test
Acceptance
Test
Acceptance Live
Code
v.3
Developer
Test
v.3
Live
Code
v.2
@aahoogendoorn
ARE MICROSERVICES
A STAIRWAY TO HEAVEN?
@aahoogendoorn
OR A HIGHWAY TO HELL?
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
FOR THE THINGS WE HAVE TO LEARN
BEFORE WE CAN DO THEM,
WE LEARN BY DOING THEM
Aristotle
@aahoogendoorn
A MICRO-LANDSCAPE
SOFTWARE ARCHITECTURE
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
26A major Dutch 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
 Shorten time-to-market
 Lower TCO
 Uphold a fully secure systems landscape
@aahoogendoorn
THE MICRO-LANDSCAPE
A software architecture for the near future
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
28A micro-landscape architecture
Communication architecture. The glue
How do we define interfaces between apps and component?
How do we arrange messaging?
How do we glue together rapidly changing apps and component?
Application architecture
End user facing
Different users, different fast evolving needs
Which technology is the best for which purpose?
Component architecture
Components and services are evolving rapidly
How do we decide which components we need?
How do we deal with versioning?
How do we deal with distributed processes and transactions?
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
29The new micro-landscape
 Client thinks in business processes, so we implement
business processes
 Moving to a new systems landscape, consisting of micro-
applications and micro-components
 Requirements and documentation are modeled rather than
written
 Each micro-application implements a single business
process
 Components serve a single purpose and offers services
 Each application and component has its own domain model
 Applications and components will have an similar internal
software architecture to facilitate ease of maintenance and
allow for harvesting re-use
 Communication using simple open protocols - REST
@aahoogendoorn
APPLICATIONS
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
32Micro-applications
 Each micro-application serves a single purpose and
mostly target a single audience, either client,
intermediaries, in-house or third parties
 Each application implements a single business
process
 Micro-applications are always human facing, they have
a graphical user interface
 These user interfaces can be responsive web, native
device or even desktop (not preferred) depending on
the target audience
 Current user interfaces are implemented using
HTML5, JavaScript (client-side), Bootstrap (responsive
UI), and JSF (server-side)
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
Presentation
Process
Domain
Services
Outside world
Pages
Grids / Panels
Controls
Use cases
Flow
Domain objects
Factories / Repositories
Enums / Value objects / Tupels / Reference objects
Service gateways
Service clients
Info objects / Search objects
ComponentsRelations Dossiers Intermediaries Accounts Rates
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
35Architecture in code
@aahoogendoorn
COMPONENTS
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
37Components
 Components are the workers of our software
architecture
 Components are fine-grained and targeted at
servicing a single business purpose, such as Accounts,
Relations or Rates
 Components follow the Single Responsibility Principle
(SRP).
 Over time, components will more and more
implement a micro-services architecture
 Components will evolve over time
 Each component exposes a set of services to the
landscape
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
Service interface
Process
Domain
Services
Outside world
Service interfaces
Use cases
Flow
Domain objects
Factories / Repositories
Enums / Value objects / Reference objects
Service gateways / Table gateways
Service clients / Connectors
Info objects / Search objects
Components
DatabasesRelations Dossiers Rates DB2 MongoDB
@aahoogendoorn
COMMUNICATION
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
41Communication
 Communication between applications and
components or between components and
components needs to be easy to develop, secure and
fast
 Communication will leverage simple, scalable and safe
web protocols, such as REST
 Structures from the component’s domain model can
be passed between parts in the landscape, either
through info objects (DTO’s) or JSON
 Structures offered from producers do not necessarily
have the same structure required by the consumer
 Mapping or wrapping is inevitable
 Be aware that neither REST nor JSON is really fully
standardized
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
42Standardizing communication
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
43Testing communication
@aahoogendoorn
MODEL FIRST DEVELOPMENT
Requirements in the micro-landscape
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
DOING BIG UP-FRONT DESIGN IS DUMB
DOING NO DESIGN IS EVEN DUMBER
Dave Thomas
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
46Model first
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
47Requirements
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
48Processes, processes and processes
Step 1 Step 2 Step 3 Step 4 Step 5 Step 6
Step 3.1 Step 3.2 Step 3.3 Step 3.4
Step 3.3.1 Step 3.3.2 Step 3.3.3 Step 3.3.4 Step 3.3.5
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
49Agile requirements. Approach
D
E
F
Smart
Use Cases
A
Project
Scope
D
Use Cases
A
B C
Hierarchical
Processes
B
D
D
Hierarchical
Processes
Chronological
Processes
Cloud Level Kite Level Sea Level Fish Level
C
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
50Identifying scope at cloud level
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
51Cloud level
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
52Kite level
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
53Modeling smart use cases. Sea and fish level
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
54Different 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
@aahoogendoorn
MODELING APPS
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
56App smart use case model
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
57Smart use cases in code
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
58App domain modelclass Domeinmodel Aanvraag
«domain object»
Domein Objecten::Aanvraag
+ AanvraagId :AanvraagId
+ Aanvraagstatus :Aanvraagstatus = Nieuw
+ Opslagdatum :LocalDate
+ Dossiernummer :Dossiernummer
+ Communicatie :Communicatie = Standaardregeling
+ Betaalwijze :Betaalwijze = Overschrijving
+ Betalingstermijn :Betalingstermijn = Maand
+ IBAN :IBAN
+ Naam rekeninghouder :String
+ Betaalregeling :Betaalregeling = Standaardregeling
+ Verzekeringnemers betalen premie :boolean
+ Splitsen premie :boolean
+ Distributiekanaal :Distributiekanaal
+ getRelatiesBijAanvraag() :DomainList<Relatie>
+ getORV() :void
+ isRechtstreeksBetalen() :void
«business rule»
+ KvK of BSN verzekeringnemer verplicht() :void
«domain object»
Domein Objecten::Product
+ Naam :String
+ Identificatie :Productidentificatie
+ Ingangsdatum :LocalDate
+ Type :Producttype = ORV premie
A
«domain object»
Domein Objecten::Verzekeringnemer
+ Premievrijstelling :boolean
+ Beroep :String [0..1]
+ Type :TypeVerzekeringnemer
«business rule»
+ Woonadres of postbusadres verplicht() :void
«domain object»
Domein Objecten::Toetsing
- Geslaagd :boolean
- Meldingen :List<String>
«domain object»
Domein Objecten::Premiebetaler
«domain object»
Domein Objecten::Pandnemer
+ Volgnummer :int
+ Verpandingsacte :boolean
+ Verpandingsactedatum :LocalDate
«domain object»
Domein Objecten::Relatie
+ Achternaam :String [0..1]
+ Bedrijfsnaam :String [0..1]
+ Burgerservicenummer :Burgerservicenummer [0..1]
+ Email :Email [0..1]
+ Geboortedatum :LocalDate [0..1]
+ Geldig tot :LocalDate [0..1]
+ Geldig vanaf :LocalDate
+ Geslacht :Geslacht [0..1]
+ Klantnummer :Relatienummer
+ KvK nummer :KvKNummer [0..1]
+ Loonheffingskorting :Boolean [0..1]
+ Mobiel :Telefoonnummer [0..1]
+ Overlijdensdatum :LocalDate [0..1]
+ RDW nummer :RDW Nummer [0..1]
+ Rechtsvorm :Rechtsvorm [0..1]
+ Toestand :Relatietoestand
+ Type :Relatietype
+ Vast :Telefoonnummer
+ Voorletters :String [0..1]
+ Voorvoegsel :String [0..1]
«domain object»
Domein Objecten::Adres
+ Adrestype :Adrestype
+ Huisnummer :Huisnummer [0..1]
+ Huisnummertoevoeging :String
+ Land :Land [0..1]
+ Woonplaats :String [0..1]
+ Postcode :Postcode [0..1]
+ Straat :String [0..1]
«domain object»
Domein Objecten::ORV
+ Distributiekosten :Bedrag
+ Totale kosten :Bedrag
+ Verpandingsvoornemen :boolean
+ Standaardbegunstiging :boolean = true
+ getRelatiesBijProduct() :DomainList<Relatie>
+ getTotaleKosten() :void
«business rule»
+ pandnemer verplicht bij verpandingsvoornemen() :void
«domain object»
Domein Objecten::Begunstiging
+ Hoedanigheid :Hoedanigheid
+ Volgnummer :int
+ Begunstigde :String
«domain object»
Domein Objecten::Assurantieadviseur
+ AANummer :AANummer
+ Naam :String
+ Voorvoegsel :String [0..1]
+ Achtervoegsel :String [0..1]
+ Telefoonnummer :Telefoonnummer [0..1]
+ EmailAdres :Email
+ Status :AA Status
+ Rayonnummer :Rayonnummer
+ Verplichtmaatchappijincasso :boolean
+ Schadeuitkering :Schadeuitkering
+ HeeftVergunningSchadeZakelijk :boolean
+ HeeftVergunningSchadeParticulier :boolean
+ HeeftVergunningSchadeInkomen :boolean
+ HeeftVergunningSchadeVermogen :boolean
+ Vergunningplicht :boolean
+ VergunningVermogen :boolean
+ getVestiging() :void
+ vindAdres(Adrestype) :void
+ getVolledigeNaam() :void
+ getPostbus() :void
«domain object»
Domein Objecten::Dossier
+ Dossiernummer :Dossiernummer
«domain object»
Domein Objecten::Portefeuille
+ Portefeuillenummer :Portefeuillenummer
+ Rekeningnummer :IBAN
+ NRC rekeningnummer :NRC Rekeningnummer
+ Incassomethode bij mutatie :InExcassotraject
+ Incassomethode bij prolongatie :InExcassotraject
«domain object»
Domein Objecten::Notitie
+ Titel :String
+ Tekst :String
«domain object»
Domein Objecten::Vraag
+ Identificatie :Vraagidentificatie
+ Vraagtype :Vraagtype
+ Vraagtekst :String
+ Antwoordtype :Antwoordtype
+ Volgorde :Rangnummer
+ isToelichtingVerplicht() :boolean
«domain object»
Domein Objecten::Clausule
+ Identificatie :ClausuleIdentificatie
+ Naamgeving :Naamgeving
+ Tekst :String
+ Optionaliteit :Optionaliteit
+ Ingangsdatum :LocalDate
+ Einddatum :LocalDate
Volgnummer hier betekent
rangnummer in de component
Overeenkomst.
«domain object»
Domein Objecten::Antwoord
+ Code :String
+ Antwoordvolgorde :Rangnummer
+ Antwoordtekst :String
+ Waarde :String
+ ToelichtingVerplicht :boolean
+ GegevenAntwoord :String
+ GegevenToelichting :String
«domain object»
Domein Objecten::Voorwaarden
+ Code :String
+ NaamIntern :String
+ NaamExternKort :String
+ NaamExternLang :String
+ Optionaliteit :Optionaliteit
+ Url :URL
1 1..2
1*
1
*
1
*
1
+verpanding
0..*
11..*
0..1
1
1
1
1
1
11..*
1
1..2
* 1
1
0..1
1
1
0..1
0..1
1
1
+postbusadres 1
1
+woonadres 1
1 1..*
1
+productClausules
*
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
Presentation
Process
Domain
Services
Outside world
Pages
Grids / Panels
Controls
Use cases
Flow
Domain objects
Factories / Repositories
Enums / Value objects / Tupels / Reference objects
Service gateways
Service clients
Info objects / Search objects
ComponentsRelations Dossiers Intermediaries Accounts Rates
@aahoogendoorn
MODELING COMPONENTS
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
61Component smart use case model
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
62Component smart use case modelclass Aanvraag
«service interface»
OphalenAanvraagService
«get»
+ Ophalen(AanvraagId) :void
«service interface»
AanvraagService
«post»
+ Opslaan(String)
«read»
Ophalen Aanvraag
Aanvragen
«write»
Opslaan Aanvraag
«write»
Deleten Aanvraag
«service interface»
DeleteService
+ Delete(AanvraagId) :void
class Begunstiging
«service interface»
BegunstigingService
«get»
+ BepalenBegunstiging(Productidentificatie) :BegunstigingInfo[] A
(from Processen)
«read»
Bepalen Begunstiging
Aanvragen
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
63Component domain model
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
64Business rules on the domain model
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
Service interface
Process
Domain
Services
Outside world
Service interfaces
Use cases
Flow
Domain objects
Factories / Repositories
Enums / Value objects / Reference objects
Service gateways / Table gateways
Service clients / Connectors
Info objects / Search objects
Components
DatabasesRelations Dossiers Rates DB2 MongoDB
@aahoogendoorn
MODEL FIRST DEVELOPMENT
Bringing it all together
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
69Smart use cases
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
70Identifying reuse
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
72The smart use case life cycle
Define work
on use case
Write
test cases
Generate
and build
use case
Run
test cases
Adjust
use case
Describe
use case
Accept
use case
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
73Smart use case life cycle in real life
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
74Lifecycle on a board
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
75Definition of Done
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
76Writing smart use cases. Using Enterprise Architect
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
77Analysis & Design. Wire frame with use case
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
78Writing smart use cases. Using Enterprise Architect
Alternative flows
Exception flows
Basic flow
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
79Test Design. Testing smart use cases
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
80Test scenarios for a smart use case
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
81Testing a smart use case. Using Enterprise Architect
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
82Writing smart use cases. Using Enterprise Architect
Fields on form
with smart use cases
Smart use case
specific business rules
and validations
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
83Building code. Twitter Bootstrap & JSF
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
85Shared libraries?
@aahoogendoorn
(SOME) RECOMMANDATIONS
AND CONSIDERATIONS
MICROSERVICES USING SMART USE CASES
©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
87Minimal viable product
@aahoogendoorn
FIRST DO IT
THEN DO IT RIGHT
THEN DO IT BETTER
@aahoogendoorn
COMMUNICATION
VIA REST IS NOT
AS EASY AS IT PROMISES
@aahoogendoorn
GO WITH THE FLOW…
@aahoogendoorn
ALLOW THE TEAM TO LEARN…
@aahoogendoorn
AND HAVE FUN
@aahoogendoorn
www.sanderhoogendoorn.com
www.smartusecase.com
www.speedbird9.com
sander@ditisagile.nl
@aahoogendoorn
REFERENCES
AND QUESTIONS

Mais conteúdo relacionado

Mais procurados

Journey to The Cloud-Native Enterprise
Journey to The Cloud-Native Enterprise Journey to The Cloud-Native Enterprise
Journey to The Cloud-Native Enterprise dektlong
 
Choosing the Right Clouds for your Business
Choosing the Right Clouds for your BusinessChoosing the Right Clouds for your Business
Choosing the Right Clouds for your BusinessMike Kavis
 
Is it sensible to use Data Vault at all? Conclusions from a project.
Is it sensible to use Data Vault at all? Conclusions from a project.Is it sensible to use Data Vault at all? Conclusions from a project.
Is it sensible to use Data Vault at all? Conclusions from a project.Capgemini
 
Foundation for accelerating digital development—Two-speed IT
Foundation for accelerating digital development—Two-speed ITFoundation for accelerating digital development—Two-speed IT
Foundation for accelerating digital development—Two-speed ITApigee | Google Cloud
 
Industry4.0 IoT Vincent Thavonekham - Azure Day Ukraine
Industry4.0 IoT Vincent Thavonekham - Azure Day UkraineIndustry4.0 IoT Vincent Thavonekham - Azure Day Ukraine
Industry4.0 IoT Vincent Thavonekham - Azure Day UkraineFactoVia
 
Dev ops don't be left behind
Dev ops   don't be left behindDev ops   don't be left behind
Dev ops don't be left behindGunnar Menzel
 
Preparing your organization for microservices
Preparing your organization for microservicesPreparing your organization for microservices
Preparing your organization for microservicesJudy Breedlove
 
Pivotal CenturyLink Cloud Platform Seminar Presentation: Customer Use Case: C...
Pivotal CenturyLink Cloud Platform Seminar Presentation: Customer Use Case: C...Pivotal CenturyLink Cloud Platform Seminar Presentation: Customer Use Case: C...
Pivotal CenturyLink Cloud Platform Seminar Presentation: Customer Use Case: C...VMware Tanzu
 
CeBIT 2016 - The Data Centre in the age of Microservices
CeBIT 2016 - The Data Centre in the age of MicroservicesCeBIT 2016 - The Data Centre in the age of Microservices
CeBIT 2016 - The Data Centre in the age of MicroservicesGunnar Menzel
 
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)Cygnet Infotech
 
Digital platforms- Shaping the economy, business and organisation of the futu...
Digital platforms- Shaping the economy, business and organisation of the futu...Digital platforms- Shaping the economy, business and organisation of the futu...
Digital platforms- Shaping the economy, business and organisation of the futu...Thoughtworks
 
5 Steps to Developing Push-based Apps in the Age of Connected Devices
5 Steps to Developing Push-based Apps in the Age of Connected Devices5 Steps to Developing Push-based Apps in the Age of Connected Devices
5 Steps to Developing Push-based Apps in the Age of Connected DevicesVMware Tanzu
 
Artificial Intelligence for Network Telkom Group
Artificial Intelligence for Network Telkom GroupArtificial Intelligence for Network Telkom Group
Artificial Intelligence for Network Telkom GroupDevOps Indonesia
 
devops, platforms and devops platforms
devops, platforms and devops platformsdevops, platforms and devops platforms
devops, platforms and devops platformsAndrew Shafer
 
PaaS in the Real World
PaaS in the Real WorldPaaS in the Real World
PaaS in the Real WorldAngie Hirata
 
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
 
Unlocked Nov 2013: Cloud principles track
Unlocked Nov 2013: Cloud principles trackUnlocked Nov 2013: Cloud principles track
Unlocked Nov 2013: Cloud principles trackRackspace Academy
 
The Future of Software Delivery in Enterprise IT
The Future of Software Delivery in Enterprise ITThe Future of Software Delivery in Enterprise IT
The Future of Software Delivery in Enterprise ITXebiaLabs
 
The Inaugural EVOLTUION Webcast
The Inaugural EVOLTUION WebcastThe Inaugural EVOLTUION Webcast
The Inaugural EVOLTUION WebcastEquinix
 
Cloud native past, present and future, Accenture Technology Workshop, IL
Cloud native past, present and future, Accenture Technology Workshop, ILCloud native past, present and future, Accenture Technology Workshop, IL
Cloud native past, present and future, Accenture Technology Workshop, ILCheryl Hung
 

Mais procurados (20)

Journey to The Cloud-Native Enterprise
Journey to The Cloud-Native Enterprise Journey to The Cloud-Native Enterprise
Journey to The Cloud-Native Enterprise
 
Choosing the Right Clouds for your Business
Choosing the Right Clouds for your BusinessChoosing the Right Clouds for your Business
Choosing the Right Clouds for your Business
 
Is it sensible to use Data Vault at all? Conclusions from a project.
Is it sensible to use Data Vault at all? Conclusions from a project.Is it sensible to use Data Vault at all? Conclusions from a project.
Is it sensible to use Data Vault at all? Conclusions from a project.
 
Foundation for accelerating digital development—Two-speed IT
Foundation for accelerating digital development—Two-speed ITFoundation for accelerating digital development—Two-speed IT
Foundation for accelerating digital development—Two-speed IT
 
Industry4.0 IoT Vincent Thavonekham - Azure Day Ukraine
Industry4.0 IoT Vincent Thavonekham - Azure Day UkraineIndustry4.0 IoT Vincent Thavonekham - Azure Day Ukraine
Industry4.0 IoT Vincent Thavonekham - Azure Day Ukraine
 
Dev ops don't be left behind
Dev ops   don't be left behindDev ops   don't be left behind
Dev ops don't be left behind
 
Preparing your organization for microservices
Preparing your organization for microservicesPreparing your organization for microservices
Preparing your organization for microservices
 
Pivotal CenturyLink Cloud Platform Seminar Presentation: Customer Use Case: C...
Pivotal CenturyLink Cloud Platform Seminar Presentation: Customer Use Case: C...Pivotal CenturyLink Cloud Platform Seminar Presentation: Customer Use Case: C...
Pivotal CenturyLink Cloud Platform Seminar Presentation: Customer Use Case: C...
 
CeBIT 2016 - The Data Centre in the age of Microservices
CeBIT 2016 - The Data Centre in the age of MicroservicesCeBIT 2016 - The Data Centre in the age of Microservices
CeBIT 2016 - The Data Centre in the age of Microservices
 
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
DevOps - The Key to Rapid Productization (Introduction to the 5C's of DevOps)
 
Digital platforms- Shaping the economy, business and organisation of the futu...
Digital platforms- Shaping the economy, business and organisation of the futu...Digital platforms- Shaping the economy, business and organisation of the futu...
Digital platforms- Shaping the economy, business and organisation of the futu...
 
5 Steps to Developing Push-based Apps in the Age of Connected Devices
5 Steps to Developing Push-based Apps in the Age of Connected Devices5 Steps to Developing Push-based Apps in the Age of Connected Devices
5 Steps to Developing Push-based Apps in the Age of Connected Devices
 
Artificial Intelligence for Network Telkom Group
Artificial Intelligence for Network Telkom GroupArtificial Intelligence for Network Telkom Group
Artificial Intelligence for Network Telkom Group
 
devops, platforms and devops platforms
devops, platforms and devops platformsdevops, platforms and devops platforms
devops, platforms and devops platforms
 
PaaS in the Real World
PaaS in the Real WorldPaaS in the Real World
PaaS in the Real World
 
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
 
Unlocked Nov 2013: Cloud principles track
Unlocked Nov 2013: Cloud principles trackUnlocked Nov 2013: Cloud principles track
Unlocked Nov 2013: Cloud principles track
 
The Future of Software Delivery in Enterprise IT
The Future of Software Delivery in Enterprise ITThe Future of Software Delivery in Enterprise IT
The Future of Software Delivery in Enterprise IT
 
The Inaugural EVOLTUION Webcast
The Inaugural EVOLTUION WebcastThe Inaugural EVOLTUION Webcast
The Inaugural EVOLTUION Webcast
 
Cloud native past, present and future, Accenture Technology Workshop, IL
Cloud native past, present and future, Accenture Technology Workshop, ILCloud native past, present and future, Accenture Technology Workshop, IL
Cloud native past, present and future, Accenture Technology Workshop, IL
 

Semelhante a Growing a microservices landscape (with smart use cases)

Connected homes - Create a safer, healthier and greener world for your custom...
Connected homes - Create a safer, healthier and greener world for your custom...Connected homes - Create a safer, healthier and greener world for your custom...
Connected homes - Create a safer, healthier and greener world for your custom...Mindtree Ltd.
 
Iasa Architect responsibilities in the cloud
Iasa Architect responsibilities in the cloudIasa Architect responsibilities in the cloud
Iasa Architect responsibilities in the cloudiasaglobal
 
ZiniosEdge Company Overview
ZiniosEdge Company OverviewZiniosEdge Company Overview
ZiniosEdge Company OverviewVijay Kumar
 
Extended Reality Usecases
Extended Reality UsecasesExtended Reality Usecases
Extended Reality UsecasesVincent Guigui
 
Case Study on Big Data Service for Manufacturing - Silver Touch Technologies
Case Study on Big Data Service for Manufacturing - Silver Touch TechnologiesCase Study on Big Data Service for Manufacturing - Silver Touch Technologies
Case Study on Big Data Service for Manufacturing - Silver Touch TechnologiesSilver Touch Technologies
 
#MBLT14 Presentation AT Internet
#MBLT14 Presentation AT Internet#MBLT14 Presentation AT Internet
#MBLT14 Presentation AT Internete-Legion
 
Top 10 tech trends 2014
Top 10 tech trends 2014Top 10 tech trends 2014
Top 10 tech trends 2014Irene Ventayol
 
Winjit Corporate Brochure
Winjit Corporate BrochureWinjit Corporate Brochure
Winjit Corporate Brochuresarang sethiya
 
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
 
(ENT312) Should You Build or Buy Cloud Infrastructure and Platforms? | AWS re...
(ENT312) Should You Build or Buy Cloud Infrastructure and Platforms? | AWS re...(ENT312) Should You Build or Buy Cloud Infrastructure and Platforms? | AWS re...
(ENT312) Should You Build or Buy Cloud Infrastructure and Platforms? | AWS re...Amazon Web Services
 
Microlent System portfolio.pdf
Microlent System portfolio.pdfMicrolent System portfolio.pdf
Microlent System portfolio.pdfMicrolentSystem
 
AirWatch Solution Overview
AirWatch Solution OverviewAirWatch Solution Overview
AirWatch Solution OverviewProyet Kft
 
Empower Your Workforce with KloudData Customized Mobility Solutions
Empower Your Workforce with KloudData Customized Mobility SolutionsEmpower Your Workforce with KloudData Customized Mobility Solutions
Empower Your Workforce with KloudData Customized Mobility SolutionsKloudData Inc
 
From Workspace Empowering Employees
From Workspace Empowering EmployeesFrom Workspace Empowering Employees
From Workspace Empowering EmployeesCapgemini
 
Flutter Deck .pptx
Flutter Deck .pptxFlutter Deck .pptx
Flutter Deck .pptxUmeshBarache
 
IT 8003 Cloud ComputingGroup Activity 1 SuperTAX Soft.docx
IT 8003 Cloud ComputingGroup Activity 1 SuperTAX Soft.docxIT 8003 Cloud ComputingGroup Activity 1 SuperTAX Soft.docx
IT 8003 Cloud ComputingGroup Activity 1 SuperTAX Soft.docxvrickens
 

Semelhante a Growing a microservices landscape (with smart use cases) (20)

Connected homes - Create a safer, healthier and greener world for your custom...
Connected homes - Create a safer, healthier and greener world for your custom...Connected homes - Create a safer, healthier and greener world for your custom...
Connected homes - Create a safer, healthier and greener world for your custom...
 
Iasa Architect responsibilities in the cloud
Iasa Architect responsibilities in the cloudIasa Architect responsibilities in the cloud
Iasa Architect responsibilities in the cloud
 
ZiniosEdge Company Overview
ZiniosEdge Company OverviewZiniosEdge Company Overview
ZiniosEdge Company Overview
 
Extended Reality Usecases
Extended Reality UsecasesExtended Reality Usecases
Extended Reality Usecases
 
Case Study on Big Data Service for Manufacturing - Silver Touch Technologies
Case Study on Big Data Service for Manufacturing - Silver Touch TechnologiesCase Study on Big Data Service for Manufacturing - Silver Touch Technologies
Case Study on Big Data Service for Manufacturing - Silver Touch Technologies
 
#MBLT14 Presentation AT Internet
#MBLT14 Presentation AT Internet#MBLT14 Presentation AT Internet
#MBLT14 Presentation AT Internet
 
Top 10 tech trends 2014
Top 10 tech trends 2014Top 10 tech trends 2014
Top 10 tech trends 2014
 
Winjit Corporate Brochure
Winjit Corporate BrochureWinjit Corporate Brochure
Winjit Corporate Brochure
 
MC2015_Accenture_Hendrickson
MC2015_Accenture_HendricksonMC2015_Accenture_Hendrickson
MC2015_Accenture_Hendrickson
 
Présentation Séminaire Alfabet Décembre 2014
Présentation Séminaire Alfabet Décembre 2014Présentation Séminaire Alfabet Décembre 2014
Présentation Séminaire Alfabet Décembre 2014
 
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...
 
(ENT312) Should You Build or Buy Cloud Infrastructure and Platforms? | AWS re...
(ENT312) Should You Build or Buy Cloud Infrastructure and Platforms? | AWS re...(ENT312) Should You Build or Buy Cloud Infrastructure and Platforms? | AWS re...
(ENT312) Should You Build or Buy Cloud Infrastructure and Platforms? | AWS re...
 
V2STech Corporate presentation for Java Development
V2STech Corporate presentation for Java DevelopmentV2STech Corporate presentation for Java Development
V2STech Corporate presentation for Java Development
 
V2STech Solutions - Java expertise
V2STech Solutions - Java expertiseV2STech Solutions - Java expertise
V2STech Solutions - Java expertise
 
Microlent System portfolio.pdf
Microlent System portfolio.pdfMicrolent System portfolio.pdf
Microlent System portfolio.pdf
 
AirWatch Solution Overview
AirWatch Solution OverviewAirWatch Solution Overview
AirWatch Solution Overview
 
Empower Your Workforce with KloudData Customized Mobility Solutions
Empower Your Workforce with KloudData Customized Mobility SolutionsEmpower Your Workforce with KloudData Customized Mobility Solutions
Empower Your Workforce with KloudData Customized Mobility Solutions
 
From Workspace Empowering Employees
From Workspace Empowering EmployeesFrom Workspace Empowering Employees
From Workspace Empowering Employees
 
Flutter Deck .pptx
Flutter Deck .pptxFlutter Deck .pptx
Flutter Deck .pptx
 
IT 8003 Cloud ComputingGroup Activity 1 SuperTAX Soft.docx
IT 8003 Cloud ComputingGroup Activity 1 SuperTAX Soft.docxIT 8003 Cloud ComputingGroup Activity 1 SuperTAX Soft.docx
IT 8003 Cloud ComputingGroup Activity 1 SuperTAX Soft.docx
 

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
 
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
 
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
 
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
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
 
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
 
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
 
Scaling agile from the ground up
Scaling agile from the ground upScaling agile from the ground up
Scaling agile from the ground upSander 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
 

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
 
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...
 
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.
 
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
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
 
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
 
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.
 
Scaling agile from the ground up
Scaling agile from the ground upScaling agile from the ground up
Scaling agile from the ground up
 
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
 

Último

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
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
 
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
 
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.
 
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
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
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
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
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
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
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
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 

Último (20)

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
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...
 
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
 
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 ...
 
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-...
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
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
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
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 🔝✔️✔️
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 

Growing a microservices landscape (with smart use cases)

  • 1. @aahoogendoorn GROWING A MICROSERVICES LANDSCAPE (WITH SMART USE CASES) Sander Hoogendoorn Independent dad, mentor, trainer, software architect, developer Principal technology officer, global agile thoughtleader Capgemini @aahoogendoorn
  • 2. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 2Sander Hoogendoorn Me independent..  Dad  Mentor, trainer, software architect, programmer  Books, articles, conferences Work  Principal technology officer Capgemini  Global design authority agile Capgemini  Chief technology officer insurance company Web  www.sanderhoogendoorn.com  www.smartusecase.com  www.speedbird9.com  @aahoogendoorn  sander@ditisagile.nl
  • 3. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn
  • 4. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 4On being a developer...
  • 5. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 5Agenda  Monoliths  Microservices? Past the hype?  Promises  But…  From monoliths to a micro-landscape  Micro-applications  Components and microservices  Requirements in a micro-landscape  Smart use cases  Agile  Recommendations & considerations
  • 6. @aahoogendoorn MONOLITHS Hard to deliver, even harder to test and impossible to maintain
  • 9. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 10Microservices. Beyond the hype?
  • 10. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 11Microservices. Beyond the hype?
  • 11. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 12Gartner hype cycle
  • 13. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 14 In short, the microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies. Martin Fowler
  • 14. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 15Microservices. Scalability
  • 15. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 16Microservices. Polyglot persistence
  • 16. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 17Microservices. 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
  • 17. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 18Microservices. But…  What is a microservice exactly?  Or are we building nanoservices? Miniservices?  Micro-requirements  Components or services  How big is a microservice  Who owns the microservices  What technology  How to define messages  How to test microservices  How to coordinate when services run across components  How to build a deployment pipeline
  • 18. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 19Microservices. Building a deployment pipeline Code Developer Test Test Acceptance Test Acceptance Live Code Developer Test Test Acceptance Test Acceptance Live Code Developer Test Test Acceptance Test Acceptance Live Code Developer Test Test Acceptance Test Acceptance Live
  • 19. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 20Microservices. Pipeline hell? Code v.2 Developer Test v.2 Test v.2 Acceptance Test v.2 Acceptance v.2 Code Developer Test Test Acceptance Test Acceptance Live Test v.2 Acceptance Test v.2 Acceptance v.2 Live v.2 Developer Test Test Acceptance Test Acceptance Live Code v.3 Developer Test v.3 Live Code v.2
  • 20. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 21Microservices. Pipeline hell? Code v.2 Developer Test v.2 Test v.2 Acceptance Test v.2 Acceptance v.2 Code Developer Test Test Acceptance Test Acceptance Live Test v.2 Acceptance Test v.2 Acceptance v.2 Live v.2 Developer Test Test Acceptance Test Acceptance Live Code v.3 Developer Test v.3 Live Code v.2
  • 23. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn FOR THE THINGS WE HAVE TO LEARN BEFORE WE CAN DO THEM, WE LEARN BY DOING THEM Aristotle
  • 25. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 26A major Dutch 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  Shorten time-to-market  Lower TCO  Uphold a fully secure systems landscape
  • 26. @aahoogendoorn THE MICRO-LANDSCAPE A software architecture for the near future
  • 27. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 28A micro-landscape architecture Communication architecture. The glue How do we define interfaces between apps and component? How do we arrange messaging? How do we glue together rapidly changing apps and component? Application architecture End user facing Different users, different fast evolving needs Which technology is the best for which purpose? Component architecture Components and services are evolving rapidly How do we decide which components we need? How do we deal with versioning? How do we deal with distributed processes and transactions?
  • 28. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 29The new micro-landscape  Client thinks in business processes, so we implement business processes  Moving to a new systems landscape, consisting of micro- applications and micro-components  Requirements and documentation are modeled rather than written  Each micro-application implements a single business process  Components serve a single purpose and offers services  Each application and component has its own domain model  Applications and components will have an similar internal software architecture to facilitate ease of maintenance and allow for harvesting re-use  Communication using simple open protocols - REST
  • 30. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 32Micro-applications  Each micro-application serves a single purpose and mostly target a single audience, either client, intermediaries, in-house or third parties  Each application implements a single business process  Micro-applications are always human facing, they have a graphical user interface  These user interfaces can be responsive web, native device or even desktop (not preferred) depending on the target audience  Current user interfaces are implemented using HTML5, JavaScript (client-side), Bootstrap (responsive UI), and JSF (server-side)
  • 31. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn Presentation Process Domain Services Outside world Pages Grids / Panels Controls Use cases Flow Domain objects Factories / Repositories Enums / Value objects / Tupels / Reference objects Service gateways Service clients Info objects / Search objects ComponentsRelations Dossiers Intermediaries Accounts Rates
  • 32. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 35Architecture in code
  • 34. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 37Components  Components are the workers of our software architecture  Components are fine-grained and targeted at servicing a single business purpose, such as Accounts, Relations or Rates  Components follow the Single Responsibility Principle (SRP).  Over time, components will more and more implement a micro-services architecture  Components will evolve over time  Each component exposes a set of services to the landscape
  • 35. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn Service interface Process Domain Services Outside world Service interfaces Use cases Flow Domain objects Factories / Repositories Enums / Value objects / Reference objects Service gateways / Table gateways Service clients / Connectors Info objects / Search objects Components DatabasesRelations Dossiers Rates DB2 MongoDB
  • 37. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 41Communication  Communication between applications and components or between components and components needs to be easy to develop, secure and fast  Communication will leverage simple, scalable and safe web protocols, such as REST  Structures from the component’s domain model can be passed between parts in the landscape, either through info objects (DTO’s) or JSON  Structures offered from producers do not necessarily have the same structure required by the consumer  Mapping or wrapping is inevitable  Be aware that neither REST nor JSON is really fully standardized
  • 38. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 42Standardizing communication
  • 39. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 43Testing communication
  • 41. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn DOING BIG UP-FRONT DESIGN IS DUMB DOING NO DESIGN IS EVEN DUMBER Dave Thomas
  • 42. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 46Model first
  • 43. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 47Requirements
  • 44. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 48Processes, processes and processes Step 1 Step 2 Step 3 Step 4 Step 5 Step 6 Step 3.1 Step 3.2 Step 3.3 Step 3.4 Step 3.3.1 Step 3.3.2 Step 3.3.3 Step 3.3.4 Step 3.3.5
  • 45. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 49Agile requirements. Approach D E F Smart Use Cases A Project Scope D Use Cases A B C Hierarchical Processes B D D Hierarchical Processes Chronological Processes Cloud Level Kite Level Sea Level Fish Level C
  • 46. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 50Identifying scope at cloud level
  • 47. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 51Cloud level
  • 48. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 52Kite level
  • 49. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 53Modeling smart use cases. Sea and fish level
  • 50. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 54Different 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
  • 52. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 56App smart use case model
  • 53. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 57Smart use cases in code
  • 54. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 58App domain modelclass Domeinmodel Aanvraag «domain object» Domein Objecten::Aanvraag + AanvraagId :AanvraagId + Aanvraagstatus :Aanvraagstatus = Nieuw + Opslagdatum :LocalDate + Dossiernummer :Dossiernummer + Communicatie :Communicatie = Standaardregeling + Betaalwijze :Betaalwijze = Overschrijving + Betalingstermijn :Betalingstermijn = Maand + IBAN :IBAN + Naam rekeninghouder :String + Betaalregeling :Betaalregeling = Standaardregeling + Verzekeringnemers betalen premie :boolean + Splitsen premie :boolean + Distributiekanaal :Distributiekanaal + getRelatiesBijAanvraag() :DomainList<Relatie> + getORV() :void + isRechtstreeksBetalen() :void «business rule» + KvK of BSN verzekeringnemer verplicht() :void «domain object» Domein Objecten::Product + Naam :String + Identificatie :Productidentificatie + Ingangsdatum :LocalDate + Type :Producttype = ORV premie A «domain object» Domein Objecten::Verzekeringnemer + Premievrijstelling :boolean + Beroep :String [0..1] + Type :TypeVerzekeringnemer «business rule» + Woonadres of postbusadres verplicht() :void «domain object» Domein Objecten::Toetsing - Geslaagd :boolean - Meldingen :List<String> «domain object» Domein Objecten::Premiebetaler «domain object» Domein Objecten::Pandnemer + Volgnummer :int + Verpandingsacte :boolean + Verpandingsactedatum :LocalDate «domain object» Domein Objecten::Relatie + Achternaam :String [0..1] + Bedrijfsnaam :String [0..1] + Burgerservicenummer :Burgerservicenummer [0..1] + Email :Email [0..1] + Geboortedatum :LocalDate [0..1] + Geldig tot :LocalDate [0..1] + Geldig vanaf :LocalDate + Geslacht :Geslacht [0..1] + Klantnummer :Relatienummer + KvK nummer :KvKNummer [0..1] + Loonheffingskorting :Boolean [0..1] + Mobiel :Telefoonnummer [0..1] + Overlijdensdatum :LocalDate [0..1] + RDW nummer :RDW Nummer [0..1] + Rechtsvorm :Rechtsvorm [0..1] + Toestand :Relatietoestand + Type :Relatietype + Vast :Telefoonnummer + Voorletters :String [0..1] + Voorvoegsel :String [0..1] «domain object» Domein Objecten::Adres + Adrestype :Adrestype + Huisnummer :Huisnummer [0..1] + Huisnummertoevoeging :String + Land :Land [0..1] + Woonplaats :String [0..1] + Postcode :Postcode [0..1] + Straat :String [0..1] «domain object» Domein Objecten::ORV + Distributiekosten :Bedrag + Totale kosten :Bedrag + Verpandingsvoornemen :boolean + Standaardbegunstiging :boolean = true + getRelatiesBijProduct() :DomainList<Relatie> + getTotaleKosten() :void «business rule» + pandnemer verplicht bij verpandingsvoornemen() :void «domain object» Domein Objecten::Begunstiging + Hoedanigheid :Hoedanigheid + Volgnummer :int + Begunstigde :String «domain object» Domein Objecten::Assurantieadviseur + AANummer :AANummer + Naam :String + Voorvoegsel :String [0..1] + Achtervoegsel :String [0..1] + Telefoonnummer :Telefoonnummer [0..1] + EmailAdres :Email + Status :AA Status + Rayonnummer :Rayonnummer + Verplichtmaatchappijincasso :boolean + Schadeuitkering :Schadeuitkering + HeeftVergunningSchadeZakelijk :boolean + HeeftVergunningSchadeParticulier :boolean + HeeftVergunningSchadeInkomen :boolean + HeeftVergunningSchadeVermogen :boolean + Vergunningplicht :boolean + VergunningVermogen :boolean + getVestiging() :void + vindAdres(Adrestype) :void + getVolledigeNaam() :void + getPostbus() :void «domain object» Domein Objecten::Dossier + Dossiernummer :Dossiernummer «domain object» Domein Objecten::Portefeuille + Portefeuillenummer :Portefeuillenummer + Rekeningnummer :IBAN + NRC rekeningnummer :NRC Rekeningnummer + Incassomethode bij mutatie :InExcassotraject + Incassomethode bij prolongatie :InExcassotraject «domain object» Domein Objecten::Notitie + Titel :String + Tekst :String «domain object» Domein Objecten::Vraag + Identificatie :Vraagidentificatie + Vraagtype :Vraagtype + Vraagtekst :String + Antwoordtype :Antwoordtype + Volgorde :Rangnummer + isToelichtingVerplicht() :boolean «domain object» Domein Objecten::Clausule + Identificatie :ClausuleIdentificatie + Naamgeving :Naamgeving + Tekst :String + Optionaliteit :Optionaliteit + Ingangsdatum :LocalDate + Einddatum :LocalDate Volgnummer hier betekent rangnummer in de component Overeenkomst. «domain object» Domein Objecten::Antwoord + Code :String + Antwoordvolgorde :Rangnummer + Antwoordtekst :String + Waarde :String + ToelichtingVerplicht :boolean + GegevenAntwoord :String + GegevenToelichting :String «domain object» Domein Objecten::Voorwaarden + Code :String + NaamIntern :String + NaamExternKort :String + NaamExternLang :String + Optionaliteit :Optionaliteit + Url :URL 1 1..2 1* 1 * 1 * 1 +verpanding 0..* 11..* 0..1 1 1 1 1 1 11..* 1 1..2 * 1 1 0..1 1 1 0..1 0..1 1 1 +postbusadres 1 1 +woonadres 1 1 1..* 1 +productClausules *
  • 55. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn Presentation Process Domain Services Outside world Pages Grids / Panels Controls Use cases Flow Domain objects Factories / Repositories Enums / Value objects / Tupels / Reference objects Service gateways Service clients Info objects / Search objects ComponentsRelations Dossiers Intermediaries Accounts Rates
  • 57. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 61Component smart use case model
  • 58. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 62Component smart use case modelclass Aanvraag «service interface» OphalenAanvraagService «get» + Ophalen(AanvraagId) :void «service interface» AanvraagService «post» + Opslaan(String) «read» Ophalen Aanvraag Aanvragen «write» Opslaan Aanvraag «write» Deleten Aanvraag «service interface» DeleteService + Delete(AanvraagId) :void class Begunstiging «service interface» BegunstigingService «get» + BepalenBegunstiging(Productidentificatie) :BegunstigingInfo[] A (from Processen) «read» Bepalen Begunstiging Aanvragen
  • 59. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 63Component domain model
  • 60. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 64Business rules on the domain model
  • 61. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn Service interface Process Domain Services Outside world Service interfaces Use cases Flow Domain objects Factories / Repositories Enums / Value objects / Reference objects Service gateways / Table gateways Service clients / Connectors Info objects / Search objects Components DatabasesRelations Dossiers Rates DB2 MongoDB
  • 63. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 69Smart use cases
  • 64. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 70Identifying reuse
  • 65. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 72The smart use case life cycle Define work on use case Write test cases Generate and build use case Run test cases Adjust use case Describe use case Accept use case
  • 66. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 73Smart use case life cycle in real life
  • 67. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 74Lifecycle on a board
  • 68. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 75Definition of Done
  • 69. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 76Writing smart use cases. Using Enterprise Architect
  • 70. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 77Analysis & Design. Wire frame with use case
  • 71. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 78Writing smart use cases. Using Enterprise Architect Alternative flows Exception flows Basic flow
  • 72. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 79Test Design. Testing smart use cases
  • 73. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 80Test scenarios for a smart use case
  • 74. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 81Testing a smart use case. Using Enterprise Architect
  • 75. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 82Writing smart use cases. Using Enterprise Architect Fields on form with smart use cases Smart use case specific business rules and validations
  • 76. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 83Building code. Twitter Bootstrap & JSF
  • 77. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 85Shared libraries?
  • 79. MICROSERVICES USING SMART USE CASES ©2014 .Sander Hoogendoorn.. All Rights Reserved@aahoogendoorn 87Minimal viable product
  • 80. @aahoogendoorn FIRST DO IT THEN DO IT RIGHT THEN DO IT BETTER
  • 81. @aahoogendoorn COMMUNICATION VIA REST IS NOT AS EASY AS IT PROMISES