0% found this document useful (0 votes)
38 views

06-Software Architecture

The document discusses software architecture and microservices. It begins by defining software architecture as the set of structures needed to reason about a software system, including elements, relations, and properties. It then uses Dropbox as a case study to illustrate how their architecture evolved from a monolithic server to a microservices architecture with independent services like databases, block servers, and clients. The key concepts of microservices are defined as independent deployability, modeling around business domains, owning their own state, appropriate size, and flexibility. Alignment of architecture and organizational structure is also discussed. Enabling technologies for microservices like containers, Kubernetes, event streaming, and public clouds are covered.

Uploaded by

Serese Reme
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
38 views

06-Software Architecture

The document discusses software architecture and microservices. It begins by defining software architecture as the set of structures needed to reason about a software system, including elements, relations, and properties. It then uses Dropbox as a case study to illustrate how their architecture evolved from a monolithic server to a microservices architecture with independent services like databases, block servers, and clients. The key concepts of microservices are defined as independent deployability, modeling around business domains, owning their own state, appropriate size, and flexibility. Alignment of architecture and organizational structure is also discussed. Enabling technologies for microservices like containers, Kubernetes, event streaming, and public clouds are covered.

Uploaded by

Serese Reme
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

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

You might also like