SlideShare a Scribd company logo
Software Architecting at Scale
a practical walkthrough
Sergio Fernández
Senior Software Development Engineer (Amazon)
Universidad Carlos III de Madrid, 25/11/2020
Ingeniería del Software, Grado en Ingeniería Informática
DISCLAIMER:
The content in this presentation was created for
academic purposes. All the opinions expressed here are
my own and do not necessarily represent those of my
current or past employers.
Sergio
Fernández Some background about myself:
● Asturian Software Engineer
● Graduated from University of Oviedo
● Currently based in Vancouver
● Senior Software Development Engineer at Amazon
● Advocate of open technologies
● Member of the Apache Software Foundation
4
Jan 2006: joined CTIC Foundation
Feb 2008: visited DERI (Ireland)
Aug 2017: joined Amazon (Canada)
May 2012: joined Salzburg Research (Austria)
Mar 2013: founded Redlink GmbH (Austria)
Dec 2006: graduated Bachelor Degree
Jul 2010: graduated Master Degree
Dec 2012: joined ASF
Feb 2015: lecturing at Fachhochschule
Salzburg (Austria)
Oct 2011: lecturing at ESNE
(University of Camilo José Cela)
May 2007: won 1st Free Software
University Spanish Contest
Outline for today
• Software Architecture overview
• Trends in software architectures
• Architecting software at scale
• Professional opportunities
• Q&A
5
Engineer
vs
Architect
Can anybody tell me what’s the difference?
Traditionally architecture is defined as
“the highest level concept of a system in its
environment. The architecture of a software
system (at a given point in time) is its
organization or structure of significant
components interacting through interfaces,
those components being composed of
successively smaller components and
interfaces.”
7
So… why does architecture matter?
https://www.flickr.com/photos/cuppini/48963256981
Martin Fowler defines it
“as a word we use when we
want to talk about design but
want to puff it up to make it
sound important.”
https://martinfowler.com/architecture/
Are Right, a Lot.
Desired
features of
any
software
architecture
● Feasibility
● Performance
● Reliability
● Testability
● Maintainability
● Extensibility
● Agility
The General Problem
https://xkcd.com/974/
Evolution of
Software
Architecture
https://twitter.com/richcampbell/stats/1078727465974067200
Scaling problem
Given a service with the following metrics on c5.2xlarge:
• concurrency=1, latency: p90=20ms, p99=100ms
• concurrency=10, latency: p90=120ms, p99=500ms
• concurrency=20, latency: p90=200ms, p99=700ms
• concurrency=50, latency: p90=800ms, p99=2s
• concurrency=100, latency: p90=1s, p99=3s
How would you scale it to 4,000 TPS (avg.) and 10,000
TPS (max.)?
14
15
Monolithic SOA Microservices
Single Unit Coarse-grained Fine-grained
16
The Rise of
Microservices
Architectura
l Patterns ● Client Server
● Layered
● Pipe and Filter
● Event Driven
● Microservices
● Peer-to-Peer
● ...
Handling increasing complexity
Distributed
overhead ● Continuous Delivery and
dependencies
● Integration testing
● New computation environments:
containers, serverless, etc.
● Data partitioning and consistency
● Messaging: queues, pubsub, etc.
● Logging and monitoring
● Networking: load balancing, service
discovery, etc.
Understanding the tradeoffs
20
“You build it, you run it!”
Werner Vogels, VP & CTO at Amazon.com
an architecture requires structure
Chaos Engineering
AWS Architecture Center: https://aws.amazon.com/architecture/
AWS Builders’ Library: https://aws.amazon.com/builders-library/
Amazon’s
Leadership
Principles
● Customer Obsession
● Ownership
● Invent and Simplify
● Are Right, A Lot
● Learn and Be
Curious
● Hire and Develop the
Best
● Insist on the Highest
Standards
● Think Big
● Bias for Action
● Frugality
● Earn Trust
● Dive Deep
● Have Backbone;
Disagree and
Commit
● Deliver Results
https://www.amazon.jobs/en/principles
www.amazon.jobs
26
Q&A
sergio@wikier.org
web
twitter
email

More Related Content

PPTX
Trends in software architecture: a professional (des)orientation
PDF
Cv
PDF
Textkernel Talks - Neo4j usage in Textkernel
PDF
omar gomaa abo smrh CV
PPSX
Narayan_Profile
DOCX
nadasi_peter_cv_eng_16sept
PDF
Software Crafted And Libraries Available
PDF
01 Introduction to SDA 2.pdf software architecture
Trends in software architecture: a professional (des)orientation
Cv
Textkernel Talks - Neo4j usage in Textkernel
omar gomaa abo smrh CV
Narayan_Profile
nadasi_peter_cv_eng_16sept
Software Crafted And Libraries Available
01 Introduction to SDA 2.pdf software architecture

Similar to Software architecting at scale, a practical walkthrough (20)

PPTX
NISI Agile Software Architecture Slide Deck
PPTX
L02 Architecture
PPT
Chapter1
PDF
Software architecture, Patterns for Scale
PDF
Democratising Software Architecture
PPTX
Software Engineering Architectural Design
PPTX
DOC
PPTX
Clean sw 3_architecture
ODP
Software Patterns
PPT
Cs 1023 lec 13 web (week 4)
PDF
Software Design Quality Management: Software Architecture
PPTX
Software architecture in practice
PPTX
Software Architecture: Why not just design?
PPTX
Software Architecture: Introduction to the abstraction (May 2014_Split)
PDF
Clean Architecture A Craftsman’s Guide to Software Structure and Design by Ro...
PDF
Systems and Software Architecture: an introduction to architectural modelling
PPTX
UNIT-3_SE_PPT1.pptx software engineering
PDF
L02 What is Software Architecture?
PDF
O.Savchenko FWDays workshop Software Architecture
NISI Agile Software Architecture Slide Deck
L02 Architecture
Chapter1
Software architecture, Patterns for Scale
Democratising Software Architecture
Software Engineering Architectural Design
Clean sw 3_architecture
Software Patterns
Cs 1023 lec 13 web (week 4)
Software Design Quality Management: Software Architecture
Software architecture in practice
Software Architecture: Why not just design?
Software Architecture: Introduction to the abstraction (May 2014_Split)
Clean Architecture A Craftsman’s Guide to Software Structure and Design by Ro...
Systems and Software Architecture: an introduction to architectural modelling
UNIT-3_SE_PPT1.pptx software engineering
L02 What is Software Architecture?
O.Savchenko FWDays workshop Software Architecture
Ad

More from Sergio Fernández (20)

PDF
Introduction to Apache Beam (incubating) - DataCamp Salzburg - 7 dec 2016
PDF
Moven - Apache Big Data Europe 2016 - SSIX Project
PDF
Geospatial Querying in Apache Marmotta - Apache Big Data North America 2016
PDF
Presentation of GSoC 2016 at Fachhochschule Salzburg
PDF
Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015
PDF
Semantics on services: the story so far (SALAD2015 keynote at ESWC2015)
PDF
Redlink, The Data Linking API
PDF
Towards a Commons RDF Library - ApacheCon Europe 2014
PDF
Linked Data track at ApacheCon Europe 2014
PDF
Introduction to LDP in Apache Marmotta
PDF
Towards a Commons RDF Java library
PDF
GET / LDP/1.0; 500 Internal Server Error
PDF
PDF
MICO Development Infrastructure
PDF
Apache Marmotta (incubating)
ODP
Incubating Apache Linda (ApacheCon Europe 2012)
PDF
Barra libre en proyectos de software... pero sólo hasta media noche
PDF
Demos CTIC
PDF
trioo, estudio e implementación de modelos de datos RDF en lenguajes orientad...
PDF
TRIOO, Keeping the Semantics of Data Safe and Sound into Object-Oriented Soft...
Introduction to Apache Beam (incubating) - DataCamp Salzburg - 7 dec 2016
Moven - Apache Big Data Europe 2016 - SSIX Project
Geospatial Querying in Apache Marmotta - Apache Big Data North America 2016
Presentation of GSoC 2016 at Fachhochschule Salzburg
Geospatial querying in Apache Marmotta - ApacheCon Big Data Europe 2015
Semantics on services: the story so far (SALAD2015 keynote at ESWC2015)
Redlink, The Data Linking API
Towards a Commons RDF Library - ApacheCon Europe 2014
Linked Data track at ApacheCon Europe 2014
Introduction to LDP in Apache Marmotta
Towards a Commons RDF Java library
GET / LDP/1.0; 500 Internal Server Error
MICO Development Infrastructure
Apache Marmotta (incubating)
Incubating Apache Linda (ApacheCon Europe 2012)
Barra libre en proyectos de software... pero sólo hasta media noche
Demos CTIC
trioo, estudio e implementación de modelos de datos RDF en lenguajes orientad...
TRIOO, Keeping the Semantics of Data Safe and Sound into Object-Oriented Soft...
Ad

Recently uploaded (20)

PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
AI in Product Development-omnex systems
PDF
Nekopoi APK 2025 free lastest update
PPTX
ai tools demonstartion for schools and inter college
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
PPTX
Introduction to Artificial Intelligence
PPTX
Essential Infomation Tech presentation.pptx
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Digital Strategies for Manufacturing Companies
PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
System and Network Administraation Chapter 3
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Softaken Excel to vCard Converter Software.pdf
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
2025 Textile ERP Trends: SAP, Odoo & Oracle
Operating system designcfffgfgggggggvggggggggg
Upgrade and Innovation Strategies for SAP ERP Customers
AI in Product Development-omnex systems
Nekopoi APK 2025 free lastest update
ai tools demonstartion for schools and inter college
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
EN-Survey-Report-SAP-LeanIX-EA-Insights-2025.pdf
Introduction to Artificial Intelligence
Essential Infomation Tech presentation.pptx
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Digital Strategies for Manufacturing Companies
Odoo POS Development Services by CandidRoot Solutions
System and Network Administraation Chapter 3
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Adobe Illustrator 28.6 Crack My Vision of Vector Design
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Softaken Excel to vCard Converter Software.pdf

Software architecting at scale, a practical walkthrough

Editor's Notes

  • #8: There is no highest level concept of a system. Customers have a different concept than developers. Customers do not care at all about the structure of significant components. So, perhaps an architecture is the highest level concept that developers have of a system in its environment. Let’s forget the developers who just understand their little piece. Architecture is the highest level concept of the expert developers. What makes a component significant? It is significant because the expert developers say so.
  • #11: architectures in software require to be agile, because architectures need to continuously evolve and adapt
  • #13: Open-Close Principle
  • #14: The trend goes to small components to maximize the features described before: smaller is easier to test and scale. Labra will describe in detail the different architectures.
  • #22: “The traditional model is that you take your software to the wall that separates development and operations, and throw it over and then forget about it. Not at Amazon. You build it, you run it. This brings developers into contact with the day-to-day operation of their software. It also brings them into day-to-day contact with the customer. This customer feedback loop is essential for improving the quality of the service.” -- Werner Vogels in “A conversation with Werner Vogels” in ACM Queue, May 2006