SlideShare a Scribd company logo
Welcome to the world of micro-apps
Combing microservices, smart use cases & web applications
Sander Hoogendoorn | Quby | ditisagile.nl
@aahoogendoorn | Welcome to the world of micro-apps
Next
Sander Hoogendoorn
Independent dad, new agile coach,
programmer, speaker, author, traveler
Currently
Chief Architect Quby
Before
CTO ANVA
CTO Klaverblad Verzekeringen
Global agile thoughtleader Capgemini
sanderhoogendoorn.com
aahoogendoorn
aahoogendoorn
sander@ditisagile.nl
Next
@aahoogendoorn | Welcome to the world of micro-apps
Click here
@aahoogendoorn | Welcome to the world of micro-apps
Click here
As a project manager…
The Times
They Are a-Changin'
Much faster than you think
@aahoogendoorn | Welcome to the world of micro-apps
Continue
Read more …
Moore’s Law
The number of
transistors in a dense
integrated circuit
doubles approximately
every two years.
Click here
1954
Click here
Commodore 64
Read more …
Amazon EC2
Then, in 2006, Amazon launched
its Elastic Compute cloud (EC2) as
a commercial web service that
allows small companies and
individuals to rent computers on
which to run their own computer
applications.
About disruption
@aahoogendoorn | Welcome to the world of micro-apps
Read more …
Complex problems require continuous exploration
Click here
How long did it take to reach 50 million users?
More …
Fintech challenges
@aahoogendoorn | Welcome to the world of micro-apps
Where software development went wrong
Monoliths. Why we like them, Why we hate them
@aahoogendoorn | Welcome to the world of micro-apps
Continue
Monolitths… Adding feature after feature
@aahoogendoorn | Welcome to the world of micro-apps
Read more …
Advantages
A single (layered)
architecture
A single technology
stack
A single code base
maintained by multiple
teams
Read more …
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
Click here
Dependencies will kill you every time
Click here
Click here
Click here
Enter microservices
The world of small component that do one thing only
@aahoogendoorn | Welcome to the world of micro-apps
Continue
Click here
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
@aahoogendoorn | Welcome to the world of micro-apps
Promises and challenges
Of building microservices
@aahoogendoorn | Welcome to the world of micro-apps
Continue
Read more …
Promises
Features not projects
Scalable
Decentralized governance
High performance
Easy to build
Easy to test
Replaceable parts
Individually deployable
Technology independent
Polyglot persistence
Micro-applications
Building a single application versus building micro-applications
@aahoogendoorn | Welcome to the world of micro-apps
Click here
Given sufficient time any group of
programmers will decide to rewrite
the code.Ron Lunde
@aahoogendoorn | Welcome to the world of micro-apps
Lunde’s Law
Front end frameworks 2016
Front end frameworks 2017
Front end frameworks 2018
Click here
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
@aahoogendoorn | Welcome to the world of micro-apps
Product Order Customer Credit card Vendor
A single application?
Web ordering system
Click here
Low availability of “resources”
What if we would build applications with
similar characteristics as services?
@aahoogendoorn | Welcome to the world of micro-apps
Click here
In short, the microservice architectural style is an approach
to developing a suite of small apps, each running in its own process and
communicating with lightweight mechanisms, often an HTTP resource
API.
These micro-apps are built around business capabilities and
independently deployable by fully automated deployment machinery.
There is a bare minimum of centralized management of these apps,
which may be written in different programming languages and use
different data storage technologies.
Martin Fowler
Micro-apps?
@aahoogendoorn | Welcome to the world of micro-apps
Business process (at kite level)
Select
Product
Select
Product
Show
Cart
Check out
Cart
Register
Client
Register
CC
Show
Order
Product Order Customer CC Vendor
Apps, workers and microservices
Validate
CC
Confirm
Order (email)
Read more …
Benefits
A landscape of micro-apps
Micro-apps are built around a
single business capability
Easy to build
East to test
Deploy individually
Allows for frequent change without
regression
Functional reuse
Allows for front end tech to evolve
Optimize for small changes
@aahoogendoorn | Welcome to the world of micro-apps
Monolithical speed of change
Monolith
1.0
Monolith
2.0
Monolith
3.0
Q1 Q2 Q3
Dependencies will kill you
Microservice speed of change
Account
1.0
Product
1.0
Order
1.0
Doc
1.0
Account
20
Account
3.0
Account
4.0
Product
2.0
Product
3.0
Product
4.0
Product
5.0
Product
6..0
Order
2.0
Order
3.0
Doc
2.0
Doc
3.0
Q1 Q2 Q3
Click here
Deploying individual micro-apps
Click here
Microservices
Click here
Micro-apps
Read more …
Challenges
How to model requirements?
How to break up the single app?
What does the architecture look
like?
How to handle communication
between micro-apps and services?
How to unify the user interface?
How to handle navigation?
What can a micro-app API look
like?
Click here
Lessons learned
Pick your guiding
principles
@aahoogendoorn | Welcome to the world of micro-apps
Read more …
Guiding principles
We implement business
processes
We move towards a systems
landscape consisting of micro-
applications and microservices
Requirements are modeled (in
smart use cases)
Micro-applications implement a
single elementary business
process step
Micro-applications and
microservices all have their own
bounded context
Read more …
Guiding principles
Micro-applications do not
have storage, and only talk to
other micro-applications and
microservices
Microservices have their own
storage (in MongoDB), and
only talk to other
microservices
Communication uses a
simple open protocol – JSON
on REST
We avoid transactions as
much as possible
Click here
Lessons learned
Identify
products and features
@aahoogendoorn | Welcome to the world of micro-apps
Different levels of granularity
Fish
Clam
Purpose
Product
Feature
Function
Too low
Cloud
Kite
Sea
Cloud
Kite
Sea
OTOPOP
Smart use cases
OTOPOP
OTOPOP
OTOPOP
OTOPOP
OTOPOP
Click here
Smart use cases - microservices
Click here
Smart use cases – micro-app
Click here
Lessons learned
Apply an
evolutionary
architecture
@aahoogendoorn | Welcome to the world of micro-apps
Click here
It is not the strongest of the architectures
that survives, nor the most complex that
survives. It is the one that is most
adaptable to change.
Charles Darwin
@aahoogendoorn | Welcome to the world of micro-apps
Evolutionary architecture
Service interface
Process
Domain
Data / Services
Outside world
Resources
Representations
Use cases
Flow
Factories, Repositories
Entities, Enums, Value objects
Gateways
StorageRelations Dossiers Intermediaries Storage
Resource (traditional Java)
Resource (functional Java)
User interface
Process
Domain
Data / Services
Outside world
Pages, WebComponents
Grids, Panels, Controls
Use cases
Flow
Factories, Repositories
Entities, Enums, Value objects
Gateways
StorageRelations Dossiers Intermediaries Storage
Page (Angular)
Use case (Typescript)
Repository (Typescript)
Service (Typescript)
Click here
Lessons learned
Separate concerns
with bounded contexts
@aahoogendoorn | Welcome to the world of micro-apps
Bounded contexts
Read more …
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
The bounded context is a central pattern in
domain driven design
Click here
When you model larger domains, it becomes
progressively harder to create this single unified
model
Instead of creating a single unified model, you
create several, all valid within their bounded
context
Eric Evans
Bounded contexts
@aahoogendoorn | Welcome to the world of micro-apps
The single unified domain model
Product
Vendor
Stock
Order
Client
Delivery
Payment
Bounded contexts
Product
Vendor
Stock
Order
Client
Delivery
Payment
Product
More …
Domain object (TypeScript)
Domain object (TypeScript)
Click here
Lessons learned
Avoid point-to-point
contracts
@aahoogendoorn | Welcome to the world of micro-apps
Click here
Communcation breakdown
Presentation
Process
Domain
Services
Outside world
Pages
Grids, Panels, Controls
Use cases
Flow
Factories, Repositories
Entities, Enums, Value objects
Gateways
ComponentsRelations Dossiers Intermediaries RatesAccounts
Service interface
Process
Domain
Data / Services
Outside world
Resources
Representations
Use cases
Flow
Factories, Repositories
Entities, Enums, Value objects
Gateways
StorageRelations Dossiers Intermediaries MongoDB
Micro-app Microservice
Point-to-point contracts
Login
{
id: 42,
firstname: Sander,
lastname: H,
city: Utrecht
}
{
id,
firstname,
lastname,
city
}
Account
{
id,
firstname,
lastname,
city
}
Click here
Be conservative in what you send,
be liberal in what you acceptJon Postel
Postel’s Law
@aahoogendoorn | Welcome to the world of micro-apps
Multiple consumers, same producer
Account
{
id,
firstname,
lastname,
city
}
Login
{
id,
login,
password
}
Manage user
{
id,
firstname,
lastname
}
Click here
Even if you do own the services you
consume, still design your consumers to
treat your services as if they were from
elsewhere and vice versa
Sander
Hoogendoorn
@aahoogendoorn | Welcome to the world of micro-apps
Hoogendoorn’s Law
Click here
Software entities (classes, modules,
functions, microservices, JSON objects, API’s)
should be open for extension, but closed for
modificationBob Martin
Open closed principle
@aahoogendoorn | Welcome to the world of micro-apps
Click here
HTTP Status Codes
Cheat Sheet
1**. Hold on
2**. Here you go
3**. Go away
4**. You fucked up
5**. I fucked up
Click here
Lessons learned
Create RESTful API’s
for your micro-apps
@aahoogendoorn | Welcome to the world of micro-apps
App Use case
App Use case
Parameters
Click here
Navigating micro-apps. Entering
https://integratie.anva.live/home/#/Home
Home
Home
Change
Password
Reset
Password
Manage Account
Find
Account
Manage
Account
Find
Contact
Manage
Contact
Manage Contact
View
Contact
Flows
Angular takes care of the routing
@aahoogendoorn | Welcome to the world of micro-apps
A use case
@aahoogendoorn | Welcome to the world of micro-apps
A use case layer supertype (Step)
@aahoogendoorn | Welcome to the world of micro-apps
Click here
Navigating micro-apps. From use case to use case
Home
Home
Change
Password
Reset
Password
Manage Account
Find
Account
Manage
Account
Find
Contact
Manage
Contact
Manage Contact
View
Contact
Flows https://integratie.anva.live/managecontact/#/FindContact
Flows.start(Flow.FindContact)
A list of use cases (Flow)
A use case provider (Flows)
Navigating use cases
@aahoogendoorn | Welcome to the world of micro-apps
Click here
Navigating micro-apps. Finishing a use case
Flows.ok(this.contact.id)
https://integratie.anva.live/home/#/Home?c=Cancel&backFrom=managecontact.FindContact
Home
Home
Change
Password
Reset
Password
Manage Account
Find
Account
Manage
Account
Find
Contact
Manage
Contact
Manage Contact
View
Contact
Flows
Going back
@aahoogendoorn | Welcome to the world of micro-apps
Click here
In retrospective
Some final thoughts
@aahoogendoorn | Welcome to the world of micro-apps
Read more …
Why micro-apps?
All the benefits from “regular”
microservices
Easy to build
Easy to test
Flexible and frequent deployment
of individual micro-apps
Easy application of domain driven
design
Replaceable apps
Allows for evolving technology
Never stop learning
Continue
@aahoogendoorn | Welcome to the world of micro-apps
And never forget to have fun
@aahoogendoorn | Welcome to the world of micro-apps
Next
Click here
References
and questions
www.sanderhoogendoorn.com
aahoogendoorn
aahoogendoorn
sander@ditisagile.nl
quby.com/careers
@aahoogendoorn | Welcome to the world of micro-apps
We are hiring!

More Related Content

What's hot

Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...
Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...
Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...
Manish Kumar Yadav
 
Phân quyền trên file và thư mục trên Ubuntu
Phân quyền trên file và thư mục trên UbuntuPhân quyền trên file và thư mục trên Ubuntu
Phân quyền trên file và thư mục trên Ubuntu
Lương Kiên
 
Đề tài: Tìm hiểu và sử dụng Facebook API, HAY, 9đ
Đề tài: Tìm hiểu và sử dụng Facebook API, HAY, 9đĐề tài: Tìm hiểu và sử dụng Facebook API, HAY, 9đ
Đề tài: Tìm hiểu và sử dụng Facebook API, HAY, 9đ
Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Silverlight - What Is It And How Can We Use It
Silverlight - What Is It And How Can We Use ItSilverlight - What Is It And How Can We Use It
Silverlight - What Is It And How Can We Use ItVenketash (Pat) Ramadass
 
Pp đồ án opencart
Pp đồ án opencartPp đồ án opencart
Pp đồ án opencartPhu Van
 
Xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị android
Xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị androidXây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị android
Xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị android
Trần Võ Khôi Nguyên
 
Nmap Hacking Guide
Nmap Hacking GuideNmap Hacking Guide
Nmap Hacking Guide
Aryan G
 
Filenet API PDF
Filenet API PDFFilenet API PDF
Filenet API PDF
Guang Ying Yuan
 
Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Công cụ và phương pháp phát hiện lỗ hổng bảo mật web applicationCông cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
ducmanhkthd
 
Kong Mesh入門編
Kong Mesh入門編Kong Mesh入門編
Kong Mesh入門編
WenhanShi1
 
Đồ án tốt nghiệp Xây dựng ứng dụng fastfood trên nền android
Đồ án tốt nghiệp Xây dựng ứng dụng fastfood trên nền androidĐồ án tốt nghiệp Xây dựng ứng dụng fastfood trên nền android
Đồ án tốt nghiệp Xây dựng ứng dụng fastfood trên nền android
laonap166
 
Hướng dẫn xây dựng mô hình mạng với vmware
Hướng dẫn xây dựng mô hình mạng với vmwareHướng dẫn xây dựng mô hình mạng với vmware
Hướng dẫn xây dựng mô hình mạng với vmware
laonap166
 
bao cao linux
bao cao linuxbao cao linux
bao cao linuxbinhnv186
 
[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam
[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam
[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam
Tran Van Cuong
 
Báo cáo thực tập tốt nghiệp xây dựng website bằng laravel
Báo cáo thực tập tốt nghiệp xây dựng website bằng laravelBáo cáo thực tập tốt nghiệp xây dựng website bằng laravel
Báo cáo thực tập tốt nghiệp xây dựng website bằng laravel
jackjohn45
 
Đề tài tìm hiểu WCF
Đề tài tìm hiểu WCFĐề tài tìm hiểu WCF
Đề tài tìm hiểu WCF
Tỏi Lý Sơn
 
API Governance
API Governance API Governance
API Governance
Sunil Kuchipudi
 
Chương 8_Bảo mật và an ninh mạng
Chương 8_Bảo mật và an ninh mạngChương 8_Bảo mật và an ninh mạng
Chương 8_Bảo mật và an ninh mạng
Hoa Le
 
BÁO CÁO THỰC TẬP - GIỮA KỲ
BÁO CÁO THỰC TẬP - GIỮA KỲBÁO CÁO THỰC TẬP - GIỮA KỲ
BÁO CÁO THỰC TẬP - GIỮA KỲ
kakawpah0911
 

What's hot (20)

Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...
Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...
Clustering, Server setup and Hybrid deployment setup using Anypoint Runtime M...
 
Phân quyền trên file và thư mục trên Ubuntu
Phân quyền trên file và thư mục trên UbuntuPhân quyền trên file và thư mục trên Ubuntu
Phân quyền trên file và thư mục trên Ubuntu
 
Đề tài: Tìm hiểu và sử dụng Facebook API, HAY, 9đ
Đề tài: Tìm hiểu và sử dụng Facebook API, HAY, 9đĐề tài: Tìm hiểu và sử dụng Facebook API, HAY, 9đ
Đề tài: Tìm hiểu và sử dụng Facebook API, HAY, 9đ
 
Silverlight - What Is It And How Can We Use It
Silverlight - What Is It And How Can We Use ItSilverlight - What Is It And How Can We Use It
Silverlight - What Is It And How Can We Use It
 
Pp đồ án opencart
Pp đồ án opencartPp đồ án opencart
Pp đồ án opencart
 
Xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị android
Xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị androidXây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị android
Xây dựng ứng dụng hỗ trợ học tiếng anh trên thiết bị android
 
Nmap Hacking Guide
Nmap Hacking GuideNmap Hacking Guide
Nmap Hacking Guide
 
Filenet API PDF
Filenet API PDFFilenet API PDF
Filenet API PDF
 
Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Công cụ và phương pháp phát hiện lỗ hổng bảo mật web applicationCông cụ và phương pháp phát hiện lỗ hổng bảo mật web application
Công cụ và phương pháp phát hiện lỗ hổng bảo mật web application
 
Kong Mesh入門編
Kong Mesh入門編Kong Mesh入門編
Kong Mesh入門編
 
Đồ án tốt nghiệp Xây dựng ứng dụng fastfood trên nền android
Đồ án tốt nghiệp Xây dựng ứng dụng fastfood trên nền androidĐồ án tốt nghiệp Xây dựng ứng dụng fastfood trên nền android
Đồ án tốt nghiệp Xây dựng ứng dụng fastfood trên nền android
 
Mang vpn
Mang vpnMang vpn
Mang vpn
 
Hướng dẫn xây dựng mô hình mạng với vmware
Hướng dẫn xây dựng mô hình mạng với vmwareHướng dẫn xây dựng mô hình mạng với vmware
Hướng dẫn xây dựng mô hình mạng với vmware
 
bao cao linux
bao cao linuxbao cao linux
bao cao linux
 
[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam
[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam
[14HCB-PTTKHTTT]- Quản Lý Siêu Thị Điện Thoại Phương Nam
 
Báo cáo thực tập tốt nghiệp xây dựng website bằng laravel
Báo cáo thực tập tốt nghiệp xây dựng website bằng laravelBáo cáo thực tập tốt nghiệp xây dựng website bằng laravel
Báo cáo thực tập tốt nghiệp xây dựng website bằng laravel
 
Đề tài tìm hiểu WCF
Đề tài tìm hiểu WCFĐề tài tìm hiểu WCF
Đề tài tìm hiểu WCF
 
API Governance
API Governance API Governance
API Governance
 
Chương 8_Bảo mật và an ninh mạng
Chương 8_Bảo mật và an ninh mạngChương 8_Bảo mật và an ninh mạng
Chương 8_Bảo mật và an ninh mạng
 
BÁO CÁO THỰC TẬP - GIỮA KỲ
BÁO CÁO THỰC TẬP - GIỮA KỲBÁO CÁO THỰC TẬP - GIỮA KỲ
BÁO CÁO THỰC TẬP - GIỮA KỲ
 

Similar to 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
Sander Hoogendoorn
 
Cloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondCloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyond
Ugo Landini
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright Future
Kelly Goetsch
 
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 Architecture for e-Commerce
Microservices Architecture for e-CommerceMicroservices Architecture for e-Commerce
Microservices Architecture for e-Commerce
Divante
 
Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...
Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...
Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...
Kai Wähner
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
Araf Karsh Hamid
 
Building cloud-ready Microservices
Building cloud-ready MicroservicesBuilding cloud-ready Microservices
Building cloud-ready Microservices
veredflis
 
NEAR Protocol at the Decentralized Summit 2019
NEAR Protocol at the Decentralized Summit 2019NEAR Protocol at the Decentralized Summit 2019
NEAR Protocol at the Decentralized Summit 2019
Erik Trautman
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
Faren faren
 
Microservices - Peixe Urbano Tech Talks
Microservices - Peixe Urbano Tech TalksMicroservices - Peixe Urbano Tech Talks
Microservices - Peixe Urbano Tech Talks
Pedro Mendes
 
FEVR - Micro Frontend
FEVR - Micro FrontendFEVR - Micro Frontend
FEVR - Micro Frontend
Miki Lombardi
 
Microservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterMicroservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They Matter
Alexander Arda
 
Evolving your Architecture to MicroServices
Evolving your Architecture to MicroServicesEvolving your Architecture to MicroServices
Evolving your Architecture to MicroServices
Hector Tapia
 
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and MicroservicesRedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
Redis Labs
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
Miki Lombardi
 
Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!
Ken Owens
 
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
WSO2
 
Moving from A and B to 150 microservices, the journey, and learnings
Moving from A and B to 150 microservices, the journey, and learningsMoving from A and B to 150 microservices, the journey, and learnings
Moving from A and B to 150 microservices, the journey, and learnings
Geshan Manandhar
 

Similar to Welcome to the world of micro-apps (20)

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
 
Cloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyondCloudify your applications: microservices and beyond
Cloudify your applications: microservices and beyond
 
Microservices + Oracle: A Bright Future
Microservices + Oracle: A Bright FutureMicroservices + Oracle: A Bright Future
Microservices + Oracle: A Bright Future
 
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 Architecture for e-Commerce
Microservices Architecture for e-CommerceMicroservices Architecture for e-Commerce
Microservices Architecture for e-Commerce
 
Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...
Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...
Cloud Native Middleware Microservices - Lessons Learned with Docker, Kubernet...
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
Building cloud-ready Microservices
Building cloud-ready MicroservicesBuilding cloud-ready Microservices
Building cloud-ready Microservices
 
NEAR Protocol at the Decentralized Summit 2019
NEAR Protocol at the Decentralized Summit 2019NEAR Protocol at the Decentralized Summit 2019
NEAR Protocol at the Decentralized Summit 2019
 
Microservices architecture
Microservices architectureMicroservices architecture
Microservices architecture
 
Microservices - Peixe Urbano Tech Talks
Microservices - Peixe Urbano Tech TalksMicroservices - Peixe Urbano Tech Talks
Microservices - Peixe Urbano Tech Talks
 
FEVR - Micro Frontend
FEVR - Micro FrontendFEVR - Micro Frontend
FEVR - Micro Frontend
 
Microservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They MatterMicroservices - How Microservices Have Changed and Why They Matter
Microservices - How Microservices Have Changed and Why They Matter
 
Evolving your Architecture to MicroServices
Evolving your Architecture to MicroServicesEvolving your Architecture to MicroServices
Evolving your Architecture to MicroServices
 
20161220 - microservice
20161220 - microservice20161220 - microservice
20161220 - microservice
 
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and MicroservicesRedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
RedisConf18 - Common Redis Use Cases for Cloud Native Apps and Microservices
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
 
Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!Enabling application portability with the greatest of ease!
Enabling application portability with the greatest of ease!
 
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
[WSO2 API Day Dallas 2019] Extending Service Mesh with API Management
 
Moving from A and B to 150 microservices, the journey, and learnings
Moving from A and B to 150 microservices, the journey, and learningsMoving from A and B to 150 microservices, the journey, and learnings
Moving from A and B to 150 microservices, the journey, and learnings
 

More from 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 history
Sander 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 time
Sander 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
 
Building Better Software Faster
Building Better Software FasterBuilding Better Software Faster
Building Better Software Faster
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 microservices
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 hell
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 lessons
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 lessons
Sander 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 hell
Sander 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
 
Modeling Microservices
Modeling MicroservicesModeling Microservices
Modeling Microservices
Sander 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
 
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
Sander Hoogendoorn
 
Scaling agile from the ground up
Scaling agile from the ground upScaling agile from the ground up
Scaling agile from the ground up
Sander 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 lessons
Sander Hoogendoorn
 
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
Sander 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 lessons
Sander Hoogendoorn
 

More from 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...
 
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.
 
Building Better Software Faster
Building Better Software FasterBuilding Better Software Faster
Building Better Software Faster
 
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.
 
Modeling Microservices
Modeling MicroservicesModeling Microservices
Modeling Microservices
 
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...
 
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
 
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
 
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
 
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
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
Kumud Singh
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
Mind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AIMind map of terminologies used in context of Generative AI
Mind map of terminologies used in context of Generative AI
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 

Welcome to the world of micro-apps

  • 1. Welcome to the world of micro-apps Combing microservices, smart use cases & web applications Sander Hoogendoorn | Quby | ditisagile.nl @aahoogendoorn | Welcome to the world of micro-apps Next
  • 2. Sander Hoogendoorn Independent dad, new agile coach, programmer, speaker, author, traveler Currently Chief Architect Quby Before CTO ANVA CTO Klaverblad Verzekeringen Global agile thoughtleader Capgemini sanderhoogendoorn.com aahoogendoorn aahoogendoorn sander@ditisagile.nl Next @aahoogendoorn | Welcome to the world of micro-apps
  • 3. Click here @aahoogendoorn | Welcome to the world of micro-apps
  • 4. Click here As a project manager…
  • 5. The Times They Are a-Changin' Much faster than you think @aahoogendoorn | Welcome to the world of micro-apps Continue
  • 6. Read more … Moore’s Law The number of transistors in a dense integrated circuit doubles approximately every two years.
  • 9. Read more … Amazon EC2 Then, in 2006, Amazon launched its Elastic Compute cloud (EC2) as a commercial web service that allows small companies and individuals to rent computers on which to run their own computer applications.
  • 10. About disruption @aahoogendoorn | Welcome to the world of micro-apps Read more …
  • 11. Complex problems require continuous exploration
  • 12. Click here How long did it take to reach 50 million users?
  • 13. More … Fintech challenges @aahoogendoorn | Welcome to the world of micro-apps
  • 14. Where software development went wrong Monoliths. Why we like them, Why we hate them @aahoogendoorn | Welcome to the world of micro-apps Continue
  • 15. Monolitths… Adding feature after feature @aahoogendoorn | Welcome to the world of micro-apps
  • 16. Read more … Advantages A single (layered) architecture A single technology stack A single code base maintained by multiple teams
  • 17. Read more … 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
  • 18. Click here Dependencies will kill you every time
  • 22. Enter microservices The world of small component that do one thing only @aahoogendoorn | Welcome to the world of micro-apps Continue
  • 23. Click here 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 @aahoogendoorn | Welcome to the world of micro-apps
  • 24. Promises and challenges Of building microservices @aahoogendoorn | Welcome to the world of micro-apps Continue
  • 25. Read more … Promises Features not projects Scalable Decentralized governance High performance Easy to build Easy to test Replaceable parts Individually deployable Technology independent Polyglot persistence
  • 26. Micro-applications Building a single application versus building micro-applications @aahoogendoorn | Welcome to the world of micro-apps
  • 27. Click here Given sufficient time any group of programmers will decide to rewrite the code.Ron Lunde @aahoogendoorn | Welcome to the world of micro-apps Lunde’s Law
  • 31. Click here 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 @aahoogendoorn | Welcome to the world of micro-apps
  • 32. Product Order Customer Credit card Vendor A single application? Web ordering system
  • 33. Click here Low availability of “resources”
  • 34. What if we would build applications with similar characteristics as services? @aahoogendoorn | Welcome to the world of micro-apps
  • 35. Click here In short, the microservice architectural style is an approach to developing a suite of small apps, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These micro-apps are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these apps, which may be written in different programming languages and use different data storage technologies. Martin Fowler Micro-apps? @aahoogendoorn | Welcome to the world of micro-apps
  • 36. Business process (at kite level) Select Product Select Product Show Cart Check out Cart Register Client Register CC Show Order Product Order Customer CC Vendor Apps, workers and microservices Validate CC Confirm Order (email)
  • 37. Read more … Benefits A landscape of micro-apps Micro-apps are built around a single business capability Easy to build East to test Deploy individually Allows for frequent change without regression Functional reuse Allows for front end tech to evolve
  • 38. Optimize for small changes @aahoogendoorn | Welcome to the world of micro-apps
  • 39. Monolithical speed of change Monolith 1.0 Monolith 2.0 Monolith 3.0 Q1 Q2 Q3
  • 41. Microservice speed of change Account 1.0 Product 1.0 Order 1.0 Doc 1.0 Account 20 Account 3.0 Account 4.0 Product 2.0 Product 3.0 Product 4.0 Product 5.0 Product 6..0 Order 2.0 Order 3.0 Doc 2.0 Doc 3.0 Q1 Q2 Q3
  • 45. Read more … Challenges How to model requirements? How to break up the single app? What does the architecture look like? How to handle communication between micro-apps and services? How to unify the user interface? How to handle navigation? What can a micro-app API look like?
  • 46. Click here Lessons learned Pick your guiding principles @aahoogendoorn | Welcome to the world of micro-apps
  • 47. Read more … Guiding principles We implement business processes We move towards a systems landscape consisting of micro- applications and microservices Requirements are modeled (in smart use cases) Micro-applications implement a single elementary business process step Micro-applications and microservices all have their own bounded context
  • 48. Read more … Guiding principles Micro-applications do not have storage, and only talk to other micro-applications and microservices Microservices have their own storage (in MongoDB), and only talk to other microservices Communication uses a simple open protocol – JSON on REST We avoid transactions as much as possible
  • 49. Click here Lessons learned Identify products and features @aahoogendoorn | Welcome to the world of micro-apps
  • 50. Different levels of granularity Fish Clam Purpose Product Feature Function Too low Cloud Kite Sea Cloud Kite Sea OTOPOP
  • 52. Click here Smart use cases - microservices
  • 53. Click here Smart use cases – micro-app
  • 54. Click here Lessons learned Apply an evolutionary architecture @aahoogendoorn | Welcome to the world of micro-apps
  • 55. Click here It is not the strongest of the architectures that survives, nor the most complex that survives. It is the one that is most adaptable to change. Charles Darwin @aahoogendoorn | Welcome to the world of micro-apps Evolutionary architecture
  • 56. Service interface Process Domain Data / Services Outside world Resources Representations Use cases Flow Factories, Repositories Entities, Enums, Value objects Gateways StorageRelations Dossiers Intermediaries Storage
  • 59. User interface Process Domain Data / Services Outside world Pages, WebComponents Grids, Panels, Controls Use cases Flow Factories, Repositories Entities, Enums, Value objects Gateways StorageRelations Dossiers Intermediaries Storage
  • 64. Click here Lessons learned Separate concerns with bounded contexts @aahoogendoorn | Welcome to the world of micro-apps
  • 66. Read more … 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 The bounded context is a central pattern in domain driven design
  • 67. Click here When you model larger domains, it becomes progressively harder to create this single unified model Instead of creating a single unified model, you create several, all valid within their bounded context Eric Evans Bounded contexts @aahoogendoorn | Welcome to the world of micro-apps
  • 68. The single unified domain model Product Vendor Stock Order Client Delivery Payment
  • 73. Click here Lessons learned Avoid point-to-point contracts @aahoogendoorn | Welcome to the world of micro-apps
  • 74. Click here Communcation breakdown Presentation Process Domain Services Outside world Pages Grids, Panels, Controls Use cases Flow Factories, Repositories Entities, Enums, Value objects Gateways ComponentsRelations Dossiers Intermediaries RatesAccounts Service interface Process Domain Data / Services Outside world Resources Representations Use cases Flow Factories, Repositories Entities, Enums, Value objects Gateways StorageRelations Dossiers Intermediaries MongoDB Micro-app Microservice
  • 75. Point-to-point contracts Login { id: 42, firstname: Sander, lastname: H, city: Utrecht } { id, firstname, lastname, city } Account { id, firstname, lastname, city }
  • 76. Click here Be conservative in what you send, be liberal in what you acceptJon Postel Postel’s Law @aahoogendoorn | Welcome to the world of micro-apps
  • 77. Multiple consumers, same producer Account { id, firstname, lastname, city } Login { id, login, password } Manage user { id, firstname, lastname }
  • 78. Click here Even if you do own the services you consume, still design your consumers to treat your services as if they were from elsewhere and vice versa Sander Hoogendoorn @aahoogendoorn | Welcome to the world of micro-apps Hoogendoorn’s Law
  • 79. Click here Software entities (classes, modules, functions, microservices, JSON objects, API’s) should be open for extension, but closed for modificationBob Martin Open closed principle @aahoogendoorn | Welcome to the world of micro-apps
  • 80. Click here HTTP Status Codes Cheat Sheet 1**. Hold on 2**. Here you go 3**. Go away 4**. You fucked up 5**. I fucked up
  • 81. Click here Lessons learned Create RESTful API’s for your micro-apps @aahoogendoorn | Welcome to the world of micro-apps
  • 85. Click here Navigating micro-apps. Entering https://integratie.anva.live/home/#/Home Home Home Change Password Reset Password Manage Account Find Account Manage Account Find Contact Manage Contact Manage Contact View Contact Flows
  • 86. Angular takes care of the routing @aahoogendoorn | Welcome to the world of micro-apps
  • 87. A use case @aahoogendoorn | Welcome to the world of micro-apps
  • 88. A use case layer supertype (Step) @aahoogendoorn | Welcome to the world of micro-apps
  • 89. Click here Navigating micro-apps. From use case to use case Home Home Change Password Reset Password Manage Account Find Account Manage Account Find Contact Manage Contact Manage Contact View Contact Flows https://integratie.anva.live/managecontact/#/FindContact Flows.start(Flow.FindContact)
  • 90. A list of use cases (Flow)
  • 91. A use case provider (Flows)
  • 92. Navigating use cases @aahoogendoorn | Welcome to the world of micro-apps
  • 93. Click here Navigating micro-apps. Finishing a use case Flows.ok(this.contact.id) https://integratie.anva.live/home/#/Home?c=Cancel&backFrom=managecontact.FindContact Home Home Change Password Reset Password Manage Account Find Account Manage Account Find Contact Manage Contact Manage Contact View Contact Flows
  • 94. Going back @aahoogendoorn | Welcome to the world of micro-apps
  • 95. Click here In retrospective Some final thoughts @aahoogendoorn | Welcome to the world of micro-apps
  • 96. Read more … Why micro-apps? All the benefits from “regular” microservices Easy to build Easy to test Flexible and frequent deployment of individual micro-apps Easy application of domain driven design Replaceable apps Allows for evolving technology
  • 97. Never stop learning Continue @aahoogendoorn | Welcome to the world of micro-apps
  • 98. And never forget to have fun @aahoogendoorn | Welcome to the world of micro-apps Next