Web Architecture
& Ruby
https://bit.ly/arch-lrug
equivalent@eq8.eu
www.eq8.eu
equivalent8
equivalent
Talk Outline
From perspective of AWS
Online Store (Responsibilities)
Product list
Basket
Orders
Payment gateway
Admin
Auth
Monolith means many things
Monolith - Codebase
Monolith Server
Monolith - Con.
Monolith - Scale
Microservices
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.��-- James Lewis and Martin Fowler
https://martinfowler.com/microservices/#what�
Microservices
Classic LB
Scaling ALB
Communication
Authentication
JWT
https://bit.ly/arch-lrug
How much code should be inside MicroService?
Option A:
Just enough to execute one task
Option B:
Enough so that microservice
is self-governed
How much code should be inside MicroService?
Option A:
Just enough to execute one task
Option B:
Enough so that microservice
is self-governed
Where is admin?
“God” MicroService ?
“God” MicroService ?
Service related Admin
Like cells in your body
Super Cool
Source: Mastering Chaos - A Netflix Guide to Microservices by Josh Evans https://goo.gl/EmPXiG
Conway’s Law
Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization's communication structure.
Organization
Two-Pizza Team
Too Big ?
Split !
Why is not everyone doing it ?
Microservices - cost
Every service needs:
Employee cost:
Multiple environments
Production
Staging
QA
Reasonable solutions exist
With containers you can run multiple services on one VM
Microservices
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.��-- James Lewis and Martin Fowler
https://martinfowler.com/microservices/#what��
Serverless
AWS Lambda
AWS Lambda
What AWS S3 is to storage, AWS Lambda is to compute
It’s called FaaS
Serverless
Our App
How much code should be inside Serverless?
Option A:
Just enough to execute one task
Option B:
Enough so that microservice
is self-governed
Serverless
No Ruby :(
Please help to request Ruby FaaS
https://www.serverless-ruby.org
https://bit.ly/arch-lrug
Serverless Ruby ?
https://bit.ly/arch-lrug
Monolith is not Dead !
Hybrid solutions
Bounded contexts in Monolith
Web Architecture
& Ruby
https://bit.ly/arch-lrug
equivalent@eq8.eu
www.eq8.eu
equivalent8
equivalent