SlideShare una empresa de Scribd logo
1 de 69
HOW QUALITIES THAT GO BEYOND FUNCTIONAL
REQUIREMENTS DRIVE INNOVATIONS IN MANAGED
RUNTIMES
THE "-ILITIES" OF
SOFTWARE
ENGINEERING
Monica
@mon_bec
k
THE AGENDA
Discuss “-ilities” aka non-
functional requirements and
dive into Performance with GC
architecture + Scale the Clouds
and provide some awesome
quotes 
Software
Engineering
What are we
building?
How are we
building it?
Software
Engineering
Software
Design &
Development
Software
Architectural
Requirements
Software
Engineering
Functional
Requirements
Qualities
aka “ilities” aka
Non-Functional
Requirements
“ILITIES”?
Ility is an abstract
quality that good
software should
exhibit - Wiktionary
ILLITY ATTRIBUTES
Performance
Security
Scalability
Usability
Portability
Observability
Ility
How?
What?
Performance
What?
I WANT EVERYTHING
TO GO FAST(ER)!
PERFORMAN
CE
WHAT DOES THAT EVEN
MEAN?
Gather your
stakeholders
and define
success!
Success Criteria
for
Performance
Requirements
or
Service Level
Agreements
Footprint
?
Response
Times?
Throughp
ut?
Availabilit
y?
Utilization
?
Capacity?
A pplication
timeline
T0 T1
Stim
u l u s
arriv
al
Respo
nse
sent
A pplication
timeline
T0 T2
T1
Stim
ulus
arriv
al
Respo
nse
sent
A pplication
tim eline
Stim
ulus
arriv
al
Respo
nse
sent
T0 T1
A pplication
timeline
T0 T2
T1
Stim
u l u s
arriv
a l
Respo
nse
sent
A pplication
timeline
T0 T1
A pplication
tim eline
T0 T2
T1
Performance
How?
LET’S
ARCHITECT
A GARBAGE
COLLECTOR
THROUGHPUT AND
LATENCY ARE THE
TWO MAIN DRIVERS
TOWARDS
REFINEMENT IN
GARBAGE
COLLECTION
ALGORITHMS
GC
FACT:
A Simple
GC
Generational
GC Work
Throughp
ut
Maximize
r
Parallel Work
Task
Queues
Generational
Low-
Latency
Optimize
d
Incremental
Marking
Generational
Tunable Work
Units
Parallel
GC
Z GC or
Shenando
ah GC
OPENJDK GCS
G1 GC
OPENJDK GCS
Ility
How?
What?
Scalability
What?
SHOULD I SCALE UP
OR
SHOULD I SCALE OUT?
SCALABILITY
Pros Cons
Bigger system – more processing
power, higher bandwidth, spatial
locality
Hardware layout and data
temporal locality needs could lead
to latency increase and non-
uniformity of access
Almost little to none configuration
changes lead to faster turnaround
time
The workload’s bulk and scale
could render it to work only with
ageing systems
Scaling
Up in
System
Pros Cons
Highly available system -
downtime is non-existent
Study your system’s scaling factor
Grow or shrink the distributed
footprint on demand
Higher footprint would add more
costs (power, space, cooling)
Scaling
Out with
System
Scalability
How?
SCALING THE CLOUD
FOR PERFORMANCE
Core Counts
Scaling
Factor
Max
System
Capacity
- Demand driven
- Highlights
concurrency effects
- Helps with Scaling Up
or Scaling Out
decisions
- Iterative process
- Determines max
throughput
- Helps with
understanding the
number of
concurrent users or
requests that a
system can handle
Incrementing
the worker
threads
0
0.5
1
1.5
2
2.5
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
2 4 8 16 24 32 48 64 96
Normalized Gen 2 Max System Capacity Gen 2 Scaling Factor
Core Counts
Scaling
Factor
Max
System
Capacity
Core Counts
0
0.5
1
1.5
2
2.5
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
2 4 8 16 24 32 48 64 96
Normalized Gen3 Max System Capacity Gen 3 Scaling Factor
Scaling
Factor
Max
System
Capacity
Core Counts
0
0.2
0.4
0.6
0.8
1
1.2
Single JVM Dual JVM Quad JVM
Normalized Gen 3 Max System Capacity
Max
System
Capacity
SCALABILITY
PROJECTIONS
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
2 4 8 16 24 32 48 64 96
Non-Linear
Non-Linear Trendline
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
2 4 8 16 24 32 48 64 96
Non-Linear Linear
Non-Linear Trendline
Linear Trendline
-0.5
0
0.5
1
1.5
2
2.5
3
2 4 8 16 24 32 48 64 96
Non-Linear Linear
Non-Linear Trendline
Linear Trendline
-1
0
1
2
3
4
5
2 4 8 16 24 32 48 64 96
Non-Linear Linear
Non-Linear Trendline
Linear Trendline
-1
0
1
2
3
4
5
2 4 8 16 24 32 48 64 96
Non-Linear Linear
These projections look
crazy, don’t they?
SCALABILIT
Y MODELS
AMDAHL’S LAW
https://wso2.com/blog/research/scalability-modeling-
using-universal-scalability-law/
SCALABILIT
Y MODELS
https://blog.knoldus.com/understanding-laws-of-
scalability-and-the-effects-on-a-distributed-system/
UNIVERSAL
SCALABILITY
LAW
SCALABILIT
Y MODELS
https://blog.knoldus.com/understanding-laws-of-
scalability-and-the-effects-on-a-distributed-system/
A FEW
INNOVATIONS IN
OPENJDK DRIVEN BY
NON - FUNCTIONAL
REQUIREMENTS
Portability
What?
Write Once Run Anywhere...
?
How?
OPENJDK
PORTER’S
GROUP
Linux,
Alpine,
macOS,
Windows
X64,
Arm64,
Apple Si
https://openjdk.org/groups/porters/
WHAT IS AN OPENJDK PORT?
• Windows on Arm64 was a new platform for OpenJDK
• In-order to run Java applications on this new
platform, we need to get the Java Runtime
Environment (JRE) to work on it.
• A JDK is a superset of a JRE as it includes tools and
utilities for development and debugging
• In order to be able to develop in Java, we need to
get the JDK to work on the new platform
Java
HotSpot VM
A JRE
Class
Libraries
Runtime
Execution
Engine
UI Toolkits
Base, Lang,
Util Libs
Usability
What?
Usability
Customer
Experience
User
Experience
Customer Experience =
Capability + Reliability +
Security
- Alan Chan
Managing Director, Global Head
of SRE, JP Morgan Chase & Co
PUTTING IT
ALL
TOGETHER
-ILITIES MAKE US
EFFICIENT
DO MORE WITH
LESS
- John Cunningham
CVP, Software Engineering, Microsoft
THANK
YOU
Microsoft’s commitment to the Java ecosystem
LinkedIn Azure Yammer
Minecraft Realms Bing
* Internal systems. Does not include customer workloads.
Others …
Java is widely used internally at Microsoft
CONTENTION VS
THROTTLING
CONTENTION
THROTTLING
SCALABILITY
LET’S TALK ABOUT CONCURRENCY &
PARALLELISM
This
Photo
by
Unknown
Author
is
licensed
under
CC
BY-NC-ND
Concurrency = Throughput x Response Time
JAVA MUTATORS AND GC THREADS
WORKING TOGETHER
G1 GC Parallel Full GC
GC Background Threads
Java Application Threads
Paus
e
Mark
Start
Paus
e
Mark
End
Pause
Relocat
e Start
Concurrent
Mark/Rema
p
Concurrent
Relocate
Concurrent Prepare
for Relocation
GC Background Threads
CONCURRENCY & PARALLELISM IN
Z GC

Más contenido relacionado

Similar a The ilities of software engineering.pptx

When Architecture Meets Data
When Architecture Meets DataWhen Architecture Meets Data
When Architecture Meets DataEoin Woods
 
[WSO2 API Day Chicago 2019] Sustainable Competitive Advantage
[WSO2 API Day Chicago 2019] Sustainable Competitive Advantage [WSO2 API Day Chicago 2019] Sustainable Competitive Advantage
[WSO2 API Day Chicago 2019] Sustainable Competitive Advantage WSO2
 
Enterprise Customer Cloud Consumption – Operating in a Hybrid Model – Alex Ne...
Enterprise Customer Cloud Consumption – Operating in a Hybrid Model – Alex Ne...Enterprise Customer Cloud Consumption – Operating in a Hybrid Model – Alex Ne...
Enterprise Customer Cloud Consumption – Operating in a Hybrid Model – Alex Ne...Amazon Web Services
 
AI for Software Engineering
AI for Software EngineeringAI for Software Engineering
AI for Software EngineeringMiroslaw Staron
 
5 Years Of Building SaaS On AWS
5 Years Of Building SaaS On AWS5 Years Of Building SaaS On AWS
5 Years Of Building SaaS On AWSChristian Beedgen
 
Tech foundations-slides
Tech foundations-slidesTech foundations-slides
Tech foundations-slidestranquynh93
 
JavaBeer_Clean architecture_update.v2.pptx
JavaBeer_Clean architecture_update.v2.pptxJavaBeer_Clean architecture_update.v2.pptx
JavaBeer_Clean architecture_update.v2.pptxssuser78ac77
 
Microservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature TeamsMicroservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature TeamsGiulio Roggero
 
Scaling Your Architecture for the Long Term
Scaling Your Architecture for the Long TermScaling Your Architecture for the Long Term
Scaling Your Architecture for the Long TermRandy Shoup
 
Apex Trigger Debugging: Solving the Hard Problems
Apex Trigger Debugging: Solving the Hard ProblemsApex Trigger Debugging: Solving the Hard Problems
Apex Trigger Debugging: Solving the Hard ProblemsSalesforce Developers
 
Evolving big microservice architectures
Evolving big microservice architecturesEvolving big microservice architectures
Evolving big microservice architecturesNikolay Stoitsev
 
Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...
Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...
Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...CA Technologies
 
Scaling DevOps Adoption
Scaling DevOps AdoptionScaling DevOps Adoption
Scaling DevOps AdoptionMark Rendell
 
Requirements Management Using Innoslate
Requirements Management Using InnoslateRequirements Management Using Innoslate
Requirements Management Using InnoslateElizabeth Steiner
 
Extending Jenkins to the Mainframe. A Simpler Approach.
Extending Jenkins to the Mainframe.  A Simpler Approach.Extending Jenkins to the Mainframe.  A Simpler Approach.
Extending Jenkins to the Mainframe. A Simpler Approach.DevOps.com
 
jVoiD - the enterprise ecommerce Java by Schogini
jVoiD - the enterprise ecommerce Java by SchoginijVoiD - the enterprise ecommerce Java by Schogini
jVoiD - the enterprise ecommerce Java by SchoginiSchogini Systems Pvt Ltd
 
Low-Latency Data Processing in the Era of Serverless @XP Days
Low-Latency Data Processing in the Era of Serverless @XP DaysLow-Latency Data Processing in the Era of Serverless @XP Days
Low-Latency Data Processing in the Era of Serverless @XP DaysNazarii Cherkas
 

Similar a The ilities of software engineering.pptx (20)

When Architecture Meets Data
When Architecture Meets DataWhen Architecture Meets Data
When Architecture Meets Data
 
Introduction to Chaos Engineering
Introduction to Chaos EngineeringIntroduction to Chaos Engineering
Introduction to Chaos Engineering
 
[WSO2 API Day Chicago 2019] Sustainable Competitive Advantage
[WSO2 API Day Chicago 2019] Sustainable Competitive Advantage [WSO2 API Day Chicago 2019] Sustainable Competitive Advantage
[WSO2 API Day Chicago 2019] Sustainable Competitive Advantage
 
Enterprise Customer Cloud Consumption – Operating in a Hybrid Model – Alex Ne...
Enterprise Customer Cloud Consumption – Operating in a Hybrid Model – Alex Ne...Enterprise Customer Cloud Consumption – Operating in a Hybrid Model – Alex Ne...
Enterprise Customer Cloud Consumption – Operating in a Hybrid Model – Alex Ne...
 
AI for Software Engineering
AI for Software EngineeringAI for Software Engineering
AI for Software Engineering
 
5 Years Of Building SaaS On AWS
5 Years Of Building SaaS On AWS5 Years Of Building SaaS On AWS
5 Years Of Building SaaS On AWS
 
Tech foundations-slides
Tech foundations-slidesTech foundations-slides
Tech foundations-slides
 
JavaBeer_Clean architecture_update.v2.pptx
JavaBeer_Clean architecture_update.v2.pptxJavaBeer_Clean architecture_update.v2.pptx
JavaBeer_Clean architecture_update.v2.pptx
 
Microservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature TeamsMicroservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature Teams
 
Scaling Your Architecture for the Long Term
Scaling Your Architecture for the Long TermScaling Your Architecture for the Long Term
Scaling Your Architecture for the Long Term
 
Apex Trigger Debugging: Solving the Hard Problems
Apex Trigger Debugging: Solving the Hard ProblemsApex Trigger Debugging: Solving the Hard Problems
Apex Trigger Debugging: Solving the Hard Problems
 
Evolving big microservice architectures
Evolving big microservice architecturesEvolving big microservice architectures
Evolving big microservice architectures
 
Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...
Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...
Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...
 
Scaling DevOps Adoption
Scaling DevOps AdoptionScaling DevOps Adoption
Scaling DevOps Adoption
 
Requirements Management Using Innoslate
Requirements Management Using InnoslateRequirements Management Using Innoslate
Requirements Management Using Innoslate
 
Microevent
MicroeventMicroevent
Microevent
 
Extending Jenkins to the Mainframe. A Simpler Approach.
Extending Jenkins to the Mainframe.  A Simpler Approach.Extending Jenkins to the Mainframe.  A Simpler Approach.
Extending Jenkins to the Mainframe. A Simpler Approach.
 
jVoiD - the enterprise ecommerce Java by Schogini
jVoiD - the enterprise ecommerce Java by SchoginijVoiD - the enterprise ecommerce Java by Schogini
jVoiD - the enterprise ecommerce Java by Schogini
 
AMIS Oracle OpenWorld en Code One Review 2018 - Blockchain, Integration, Serv...
AMIS Oracle OpenWorld en Code One Review 2018 - Blockchain, Integration, Serv...AMIS Oracle OpenWorld en Code One Review 2018 - Blockchain, Integration, Serv...
AMIS Oracle OpenWorld en Code One Review 2018 - Blockchain, Integration, Serv...
 
Low-Latency Data Processing in the Era of Serverless @XP Days
Low-Latency Data Processing in the Era of Serverless @XP DaysLow-Latency Data Processing in the Era of Serverless @XP Days
Low-Latency Data Processing in the Era of Serverless @XP Days
 

Más de Monica Beckwith

Enabling Java: Windows on Arm64 - A Success Story!
Enabling Java: Windows on Arm64 - A Success Story!Enabling Java: Windows on Arm64 - A Success Story!
Enabling Java: Windows on Arm64 - A Success Story!Monica Beckwith
 
Applying Concurrency Cookbook Recipes to SPEC JBB
Applying Concurrency Cookbook Recipes to SPEC JBBApplying Concurrency Cookbook Recipes to SPEC JBB
Applying Concurrency Cookbook Recipes to SPEC JBBMonica Beckwith
 
Intro to Garbage Collection
Intro to Garbage CollectionIntro to Garbage Collection
Intro to Garbage CollectionMonica Beckwith
 
OpenJDK Concurrent Collectors
OpenJDK Concurrent CollectorsOpenJDK Concurrent Collectors
OpenJDK Concurrent CollectorsMonica Beckwith
 
OPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORS
OPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORSOPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORS
OPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORSMonica Beckwith
 
The Performance Engineer's Guide to Java (HotSpot) Virtual Machine
The Performance Engineer's Guide to Java (HotSpot) Virtual MachineThe Performance Engineer's Guide to Java (HotSpot) Virtual Machine
The Performance Engineer's Guide to Java (HotSpot) Virtual MachineMonica Beckwith
 
Garbage First Garbage Collector: Where the Rubber Meets the Road!
Garbage First Garbage Collector: Where the Rubber Meets the Road!Garbage First Garbage Collector: Where the Rubber Meets the Road!
Garbage First Garbage Collector: Where the Rubber Meets the Road!Monica Beckwith
 
JFokus Java 9 contended locking performance
JFokus Java 9 contended locking performanceJFokus Java 9 contended locking performance
JFokus Java 9 contended locking performanceMonica Beckwith
 
Java Performance Engineer's Survival Guide
Java Performance Engineer's Survival GuideJava Performance Engineer's Survival Guide
Java Performance Engineer's Survival GuideMonica Beckwith
 
The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - Th...
The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - Th...The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - Th...
The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - Th...Monica Beckwith
 
The Performance Engineer's Guide To HotSpot Just-in-Time Compilation
The Performance Engineer's Guide To HotSpot Just-in-Time CompilationThe Performance Engineer's Guide To HotSpot Just-in-Time Compilation
The Performance Engineer's Guide To HotSpot Just-in-Time CompilationMonica Beckwith
 
Java 9: The (G1) GC Awakens!
Java 9: The (G1) GC Awakens!Java 9: The (G1) GC Awakens!
Java 9: The (G1) GC Awakens!Monica Beckwith
 
Game of Performance: A Song of JIT and GC
Game of Performance: A Song of JIT and GCGame of Performance: A Song of JIT and GC
Game of Performance: A Song of JIT and GCMonica Beckwith
 
Way Improved :) GC Tuning Confessions - presented at JavaOne2015
Way Improved :) GC Tuning Confessions - presented at JavaOne2015Way Improved :) GC Tuning Confessions - presented at JavaOne2015
Way Improved :) GC Tuning Confessions - presented at JavaOne2015Monica Beckwith
 
GC Tuning Confessions Of A Performance Engineer - Improved :)
GC Tuning Confessions Of A Performance Engineer - Improved :)GC Tuning Confessions Of A Performance Engineer - Improved :)
GC Tuning Confessions Of A Performance Engineer - Improved :)Monica Beckwith
 
GC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance EngineerGC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance EngineerMonica Beckwith
 
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...Monica Beckwith
 

Más de Monica Beckwith (20)

A G1GC Saga-KCJUG.pptx
A G1GC Saga-KCJUG.pptxA G1GC Saga-KCJUG.pptx
A G1GC Saga-KCJUG.pptx
 
ZGC-SnowOne.pdf
ZGC-SnowOne.pdfZGC-SnowOne.pdf
ZGC-SnowOne.pdf
 
QCon London.pdf
QCon London.pdfQCon London.pdf
QCon London.pdf
 
Enabling Java: Windows on Arm64 - A Success Story!
Enabling Java: Windows on Arm64 - A Success Story!Enabling Java: Windows on Arm64 - A Success Story!
Enabling Java: Windows on Arm64 - A Success Story!
 
Applying Concurrency Cookbook Recipes to SPEC JBB
Applying Concurrency Cookbook Recipes to SPEC JBBApplying Concurrency Cookbook Recipes to SPEC JBB
Applying Concurrency Cookbook Recipes to SPEC JBB
 
Intro to Garbage Collection
Intro to Garbage CollectionIntro to Garbage Collection
Intro to Garbage Collection
 
OpenJDK Concurrent Collectors
OpenJDK Concurrent CollectorsOpenJDK Concurrent Collectors
OpenJDK Concurrent Collectors
 
OPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORS
OPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORSOPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORS
OPENJDK: IN THE NEW AGE OF CONCURRENT GARBAGE COLLECTORS
 
The Performance Engineer's Guide to Java (HotSpot) Virtual Machine
The Performance Engineer's Guide to Java (HotSpot) Virtual MachineThe Performance Engineer's Guide to Java (HotSpot) Virtual Machine
The Performance Engineer's Guide to Java (HotSpot) Virtual Machine
 
Garbage First Garbage Collector: Where the Rubber Meets the Road!
Garbage First Garbage Collector: Where the Rubber Meets the Road!Garbage First Garbage Collector: Where the Rubber Meets the Road!
Garbage First Garbage Collector: Where the Rubber Meets the Road!
 
JFokus Java 9 contended locking performance
JFokus Java 9 contended locking performanceJFokus Java 9 contended locking performance
JFokus Java 9 contended locking performance
 
Java Performance Engineer's Survival Guide
Java Performance Engineer's Survival GuideJava Performance Engineer's Survival Guide
Java Performance Engineer's Survival Guide
 
The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - Th...
The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - Th...The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - Th...
The Performance Engineer's Guide To (OpenJDK) HotSpot Garbage Collection - Th...
 
The Performance Engineer's Guide To HotSpot Just-in-Time Compilation
The Performance Engineer's Guide To HotSpot Just-in-Time CompilationThe Performance Engineer's Guide To HotSpot Just-in-Time Compilation
The Performance Engineer's Guide To HotSpot Just-in-Time Compilation
 
Java 9: The (G1) GC Awakens!
Java 9: The (G1) GC Awakens!Java 9: The (G1) GC Awakens!
Java 9: The (G1) GC Awakens!
 
Game of Performance: A Song of JIT and GC
Game of Performance: A Song of JIT and GCGame of Performance: A Song of JIT and GC
Game of Performance: A Song of JIT and GC
 
Way Improved :) GC Tuning Confessions - presented at JavaOne2015
Way Improved :) GC Tuning Confessions - presented at JavaOne2015Way Improved :) GC Tuning Confessions - presented at JavaOne2015
Way Improved :) GC Tuning Confessions - presented at JavaOne2015
 
GC Tuning Confessions Of A Performance Engineer - Improved :)
GC Tuning Confessions Of A Performance Engineer - Improved :)GC Tuning Confessions Of A Performance Engineer - Improved :)
GC Tuning Confessions Of A Performance Engineer - Improved :)
 
GC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance EngineerGC Tuning Confessions Of A Performance Engineer
GC Tuning Confessions Of A Performance Engineer
 
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
Garbage First Garbage Collector (G1 GC) - Migration to, Expectations and Adva...
 

Último

Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptxthe ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptxhumanexperienceaaa
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝soniya singh
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Dr.Costas Sachpazis
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxpurnimasatapathy1234
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCall Girls in Nagpur High Profile
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Christo Ananth
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxupamatechverse
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 

Último (20)

Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptxthe ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
the ladakh protest in leh ladakh 2024 sonam wangchuk.pptx
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur EscortsCall Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
Call Girls Service Nagpur Tanvi Call 7001035870 Meet With Nagpur Escorts
 
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
Model Call Girl in Narela Delhi reach out to us at 🔝8264348440🔝
 
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
Sheet Pile Wall Design and Construction: A Practical Guide for Civil Engineer...
 
Microscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptxMicroscopic Analysis of Ceramic Materials.pptx
Microscopic Analysis of Ceramic Materials.pptx
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
Roadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and RoutesRoadmap to Membership of RICS - Pathways and Routes
Roadmap to Membership of RICS - Pathways and Routes
 
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service NashikCollege Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
College Call Girls Nashik Nehal 7001305949 Independent Escort Service Nashik
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANJALI) Dange Chowk Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
Call for Papers - African Journal of Biological Sciences, E-ISSN: 2663-2187, ...
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
Introduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptxIntroduction to IEEE STANDARDS and its different types.pptx
Introduction to IEEE STANDARDS and its different types.pptx
 
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
Call Girls in Nagpur Suman Call 7001035870 Meet With Nagpur Escorts
 

The ilities of software engineering.pptx

Notas del editor

  1. Jakub’s talk had cat photos and it was awesome and brought a smile to my face, so here I have my cats and dogs. I hope they bring smile to yours as well
  2. So let’s start from the very beginning – Functionality – what it does Operation – how it does it – The ability of a software to execute and evolve
  3. Functionality – what it does Operation – how it does it – The ability of a software to execute and evolve
  4. Functionality – what it does Operation – how it does it – The ability of a software to execute and evolve
  5. Say you’d like to buy a car or a truck – and you’d like to be able to tow a trailer – now that becomes a desired attribute for useability and enables scalability
  6. In this talk, I’d like to walk a few of this attributes with you Security – e.g. Transport Layer Security (TLS 1.3 vs 1.0) Observability: ability to understand complex systems internal state based on workloads, e.g. JFR
  7. and together we can investigate the What the How. First we will dive into designing a GC for performance, then we will look at Scalability and investigate VMs for either scale out or scale up purposes
  8. let’s dive in deeper to performance requirements by trying to define the attributes first
  9. so what’s the first thing that people talk about when discussing performance? Say if you ask your end user “what needs to happen inorder for our system to be performant?” what would their answer look like?
  10. Let’s get some clarity on that
  11. But make sure you define what fast means to your customer. Refine definition This is gathering details wrt nfr.
  12. Footprint is the space that is needed to run your software.It's both about the memory footprint and also the physical resources Responsiveness: If I send a stimulus now, how much time ’til I get a response back? Throughput: How can I maximize the operations per second of my system? Availability is the uptime and Mean Time Between Failure of the system Let’s start with what we mean by response time.
  13. If I send a stimulus now, how much time ’til I get a response back?
  14. How can I maximize the operations per second of my system?
  15. Work done is Throughput = operations per second. (transactional DB) transactions per second, (query DB): requests per second
  16. Now that we know some of the attributes, let’s try to understand the how
  17. Before we start with our GC architecture, let me give you a fact that will help clarify why I chose GC for the perf requirement exercise.
  18. So, what do we know – we know that the GC will need to do some GC work and then we also know the weak generational hypothesis that most objects will die young.
  19. No concurrency == app has max utilization of resources and that should give it good throughput
  20. Regions == smaller work units. More granularity. All concurrent work needs maintenance barriers. With that we have successfully architected two GCs
  21. Next ility
  22. What’s the age-old question that everyone wants to know?
  23. Now that we know some of the attributes, let’s try to understand what they stand for and then let’s dive in deeper to performance requirements by investigating the how
  24. Normalized =(C18-MIN(C18:C25))/(MAX(C18:C25)-MIN(C18:C25))
  25. At 1, it looks like it could handle the number of concurrent users or requests to fit in with the other cores At 2 and at 3, we see concurrency effects Normalized =(C18-MIN(C18:C25))/(MAX(C18:C25)-MIN(C18:C25))
  26. Single JVM for gen 3 performs just as well as dual JVM on Gen 2 – so basically Gen 2 will benefit from scale out and Gen 3 will benefit from scaling up to the max cores.
  27. Gene Amdahl shows that there is a fraction of the workload which cannot be parallelized, called serial fraction i.e. no matter how many cores are allocated for the program, only a single core will be executing the serial portion of the program. We use σ to denote this serial fraction of workload. Hence (1-σ) becomes the parallel fraction of workload. σ takes values in the range (0, 1). Continuous validity of single processor
  28. Universal Scalability Law (USL) is an extension of Amdahl’s law. It accounts for the additional overhead due to interprocess communication that happens application software level, middleware level, operating system level, and hardware level. Three Cs: Concurrency (gamma), Contention (alpha), Coherency (beta)
  29. Universal Scalability Law (USL) is an extension of Amdahl’s law. It accounts for the additional overhead due to interprocess communication. Interprocess communication happens at multiple levels within the system: application software level, middleware level, operating system level, and hardware level.
  30. J/ava is portable. What does it mean for openjdk?
  31. Executables (In the bin/ subdirectory) An implementation of the Java Runtime Environment (JRE). The JRE includes a Java Virtual Machine (JVM™), class libraries, and other files that support the execution of programs written in the Java programming language. This directory also includes tools and utilities that will help you develop, execute, debug, and document programs written in the Java programming language. For further information, see the tools documentation at https://docs.oracle.com/en/java/javase/12/tools/tools-and-command-reference.html Configuration files (In the conf/ subdirectory) Files that contain user-configurable options. Files in this directory can be edited to change the JDK's access permissions, configure security algorithms, and set the Java Cryptography Extension Policy Files which might be used to limit the JDK's cryptographic strength. C header Files (In the include/ subdirectory) C-language header files that support native-code programming with the Java Native Interface and the Java Virtual Machine (JVM) Debugger Interface. Compiled Java Modules (in the jmods/ subdirectory) Compiled modules used by jlink to create custom runtimes. Copyright and License files (in the legal/ subdirectory) License and copyright files for each module. Includes third party notices as .md (markdown)files. Additional Libraries (In the lib/ subdirectory) Additional class libraries and support files required by the JDK. These files are not intended for external use.
  32. In the opening keynote we heard about project Amber and how removing the boiler plate is making the Java language much more usable. So let’s briefly look at Usability
  33. Usability is user-friendliness be it about language level boiler plate removal or having GC with minimal to none command line options or if your error messages like nullpointerexceptions in JDK14 User Experience is perception and reaction to a feature – like some people may prefer Java 19 over Kotlin due to the “User Experience” Customer experience is about the total journey – you will have various touchpoints with your customer. I have this awesome quote by Alan who is the head of SRE @JP Morgan https://www.testingtime.com/en/blog/usability-ux-and-cx-compared/
  34. 'nfr' needs more love and appreciation from engineers and products. at the end of the day "customer experience = capability + reliability + security" - all are equally critical. a lot of manpower and brainpower are drained today due to support work and manual toils. to make a platform more reliable, those time/resources/power will be reinvested to innovation and creation...and better products.
  35. As we say our goodbyes today, I’d like to leave you with a few thoughts -
  36. Throughout this conference and this talk there was a theme of efficiency. So I’d like to say that Ilities are Qualities that make us efficient. So, I hope you internalize them.
  37. They are asking you to be efficient. Measure in all dimensions Efficiency is defined as the ratio between speed up and the number of processors E(p) = S(p)/P
  38. Concurrency is one of those requirements that might as well be specified with f
  39. Microsoft ported OpenJDK to Windows on Arm to support Azure servers, Minecraft, and other scenarios. Minecraft coming soon to Windows on Arm devices. LinkedIn hundreds of thousands of JVMs powering every feature of the service. Bing: indexing services powered by OpenJDK. Bing is the search engine on Windows, behind “Search results” in the Start menu. Minecraft Realms: Microsoft-hosted servers of Minecraft for world-wide community of Minecraft players. Yammer: creators of Java frameworks like Dropwizard. Powers certain features behind Office 365/MS Teams. Azure: infrastructure control plane leverages some Java-based services for resource provisioning orchestration. Nuance and Metaswitch: Recent Microsoft acquisitions heavily invested in Java technologies
  40. Let’s get some clarity on that
  41. Concurrency is one of those requirements that might as well be specified with f
  42. Concurrency is one of those requirements that might as well be specified with f
  43. Concurrency is one of those requirements that might as well be specified with f
  44. Concurrency is one of those requirements that might as well be specified with
  45. Concurrency is one of those requirements that might as well be specified with f