Software Architecture
Puja Pramudya
Dosen Praktisi | Head Engineering eFishery
Agenda
- What is Architecture
- Microservice
- Container
- Cloud
Disclaimer
This is not scientific presentation merely collection of finding from the fields
Astronauts Do Not
Launched With Finger
Crossed
- Chris Hadfield
Everything Must Be Engineered
● Engineer to Meet the Purpose
● Engineer to Eliminate Failures
● Engineer to Fail Gracefully
● Engineer to Recover Fast
What is Architecture
Software Architecture
The set of structures needed to reason
about a software system and the
discipline of creating such structures
and systems. Each structure
comprises software elements, relations
among them, and properties of both
elements and relations
- Clements et al, Documenting
Software Architecture
Dropbox Case
Mid 2007, the beginning
The Server
Clients
Late 2007, the beginning
S3
DB
The Server
Clients
Early 2008
S3
DB
notserver metaserver Blockserver
Clients
Early 2012 S3
DB
memcache
notserver metaserver Blockserver
LB
Clients
That is Microservice
What is Microservice
Independently releasable services that are
modeled around a business domain
Key Concept of Microservice
● Independent deployability
● Modeled Around a business domain
● Owning their own state
● Size
● Flexibility
Independent deployability
● Making change to a microservice,
deploy and release that change
our users without having deploy
any other microservice
Modeled Around a Business Domain
● 3-Tier architecture
Modeled Around a Business Domain
● End-to-end slices of business
functionality
Owning their own state
Size
● How big the
microservice be ?
● At least 2 pizza
team : 6-9 engineers
○ Per business
domain
Flexibility
● Microservice buy dev team options
○ Organizational
○ Technical
○ Scale
○ Robustness
Alignment of Architecture & Org
Alignment of Architecture & Org
Stock Purchase Profile
Functionality Functionality Functionality
Customer
Stock Purchase Profile
flow team
team
Enabling Technology
● Log aggregation & distribution tracing
● Containers & Kubernetes
● Event Streaming
● Public Cloud and Serverless
Log Aggregation & Tracing
Container & Kubernetes
● Ship our service as
containerized bundle
● Deploy them to “server
farm”
Event Streaming
Public Cloud & Serverless
Now, let see it in action
Reference
Software Architecture
Puja Pramudya
Dosen Praktisi | Head Engineering eFishery