Agile Development of High Performance Applications
-
Upload
fabian-lange -
Category
Technology
-
view
2.942 -
download
1
description
Transcript of Agile Development of High Performance Applications
![Page 1: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/1.jpg)
codecentric AG
Monitoring Performance from Development through Production
AGILE DEVELOPMENT OF HIGH PERFORMANCE APPLICATIONS
![Page 2: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/2.jpg)
codecentric AG
- Fabian Lange- Head of Competence Center Performance
- Java since its beginning- Agile since its establishment- Performance since waiting got boring
ME AND CODECENTRIC
- codecentric AG- Specialized in
- Perfomance Services- Agile Software Factory
- Always looking for new talent
![Page 3: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/3.jpg)
codecentric AG
TABLE OF CONTENTS
- Chapter One"The curse of non-functional Requirements”
- Chapter Two“Ensuring Great Performance”
- Chapter Three“A Real World Example”
- Chapter Four“The DevOps Revolution"
- Epilogue
![Page 4: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/4.jpg)
codecentric AG
THE CURSE OF NON-FUNCTIONAL REQUIREMENTS
Chapter One
![Page 5: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/5.jpg)
codecentric AG
- Who measures performance …- in production?
- before production?
- during development?
- Who does development …- the waterfall way?
- the agile way?
LET‘S DO A POLL
![Page 6: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/6.jpg)
codecentric AG
- We finally can test functional requirements!
- Many modern practices- TDD
- ATDD
- BDD
TESTING REQUIREMENTS
![Page 7: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/7.jpg)
codecentric AG
- Executable Specifications makes functional testing a breeze!
REQUIREMENTS ARE THE TEST
*** Settings ***Resource ${RESOURCES}/BDD.txtTest Template Branch Manager Change Should not affect Employee *** Keyword ***Branch Manager Change Should not affect Employee [Arguments] ${periodClosed} ${periodOpenAndModified} ${importDay} ${oldManagerValidUntil} ${newManagerValidFrom} Given initialized criteria for bonus commercial And a branch B with branch manager M_OLD and employee E1 And evaluation for E1 for period ${periodClosed} which is closed And evaluation for E1 for period ${periodOpenAndModified} which is open and modified When M_NEW becomes new manager of branch B And import service is called on ${importDay} Then the new branch manager of branch B is M_NEW valid from ${newManagerValidFrom} And branch manager M_OLD manages employee E until ${oldManagerValidUntil} And branch manager M_NEW manages employee E from ${newManagerValidFrom} And Evaluations for E1 still have the same content | *Test* | *Closed Period* | *Open Period* | *Run Import On* | *Old Manager Stops* | *New Manager Starts* || 1 | 1.11.2009 - 30.11.2009 | 1.12.2009 - 31.12.2009 | 11.11.2009 | 30.11.2009 | 1.12.2009 || 2 | 1.11.2009 - 30.11.2009 | 1.12.2009 - 31.12.2009 | 1.11.2009 | 31.10.2009 | 1.11.2009 || 3 | 1.11.2009 - 30.11.2009 | 1.12.2009 - 31.12.2009 | 1.12.2009 | 30.11.2009 | 1.12.2009 |
![Page 8: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/8.jpg)
codecentric AG
PERFORMANCE IS NON-FUNCTIONAL!
- All Non Functional Requirements are not very agile
- They cannot be added later on
- So you need to know about them!
- They form the Definition of Done
![Page 9: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/9.jpg)
codecentric AG
TESTING NON-FUNCTIONAL IS HARD!
- There are no absolute measures
- No production infrastructure
![Page 10: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/10.jpg)
codecentric AG
HOW DO YOU MEASURE PERFORMANCE?
- Relevant Measures are hard to find- Response Time
- For users- System Load
- For planning- Traffic
- For money
- Realistic Measures are hard to obtain- 2 seconds?
- Load avg < 2.8 ?
- Less than 2TB per month?
![Page 11: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/11.jpg)
codecentric AG
HOW DO YOU TEST PERFORMANCE?
- Who ...... has a process for performance tests?
... does loadtests?
... plans for scalability?
... uses a profiler?
... uses a server monitor?
... uses an application monitor?
![Page 12: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/12.jpg)
codecentric AG
„PRODUCTION IS FASTER“
![Page 13: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/13.jpg)
codecentric AG
ENSURING GREAT PERFORMANCE
Chapter Two:
![Page 14: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/14.jpg)
codecentric AG
A TYPICAL PERFORMANCE ANALYSIS PROCESS
- Tom, the boss calls:“We loose customers because of bad performance”
- Lynn from QA does a load test:“Application is slow as a snail”
- Task force is set up- John tries to learn performance tools- Sarah does a microbenchmark and gains 5 ms
Application still slow
Everybody unhappy
![Page 15: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/15.jpg)
codecentric AG
HOW ABOUT…
- Developers care about performance- Good tools are understood and used- Performance is tested regularly- Anomalies are taken care of
Application is running smoothly
Everybody is happy
![Page 16: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/16.jpg)
codecentric AG
CARE ABOUT PERFORMANCE
- Caring is fundamentally important
- Development teams need to extend their scope
- In Scrum teams need to be able to do all the work to get done
![Page 17: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/17.jpg)
codecentric AG
GOOD TOOLS
- Tool paralysis does not help
- Choose 1 or 2 good tools and learn them
- Tools should work everywhere
flickr.c
om/p
hotos/p
mto
rrone/2
381346935
![Page 18: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/18.jpg)
codecentric AG
CONTINUOUSLY TEST PERFORMANCE
- Find a good balance- Automated Checks
- Manual Tests
- Functional tests already provide data
- How about a load test every iteration?
![Page 19: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/19.jpg)
codecentric AG
INVESTIGATE SUSPICIOUS DATA
- Because you care- And you have the tools- And you have the data
- You should investigate findings
“When you have eliminated the impossible,whatever remains, however improbable,must be the truth”
- Sherlock Holmesflickr.com/photos/cayusa/2159980025
![Page 20: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/20.jpg)
codecentric AG
A REAL WORLD EXAMPLEChapter Three
![Page 21: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/21.jpg)
codecentric AG
TEAM CARES ABOUT PERFORMANCE
- Definition of Done includes a lot- spec, design, unit test, code, acceptance tests, documentation,
usability review, code review, stability tests, compatibility tests, interoperability test, load tests, security tests, performance tests…
- Get it right from the beginning- Do not pile up technical debt
- To go well you have to go slow
![Page 22: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/22.jpg)
codecentric AG
– 20% Slowdown due to debt
– Sprint 1– 15 Points delivered
– Sprint 2– 12 Points delivered
– Sprint 3– 9 Points delivered
– Sprint 4– 7 Points delivered
TECHNICAL DEBT / UNDONE WORK
11.04.2023 22
Wrong Definition of Done
– Sprint 1– 12 Points delivered
– Sprint 2– 12 Points delivered
– Sprint 3– 12 Points delivered
– Sprint 4– 12 Points delivered
Better Definition of Done
![Page 23: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/23.jpg)
codecentric AG
WHAT MAKES A GREAT TOOL
- Zero configuration a must for agile
- Very low overhead for clean results
- Single tool for all use cases
- Free!
![Page 24: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/24.jpg)
codecentric AG
APPDYNAMICS LITE DEMO
- Webcasts in our bloghttp://blog.codecentric.de/en/2010/08/easy-performance-analysis-with-appdynamics-lite/
![Page 25: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/25.jpg)
codecentric AG
AUTOMATED WORK
- Monitoring is not only great for production
- Runs in Continuous Integration environments
- Uses automated tests to run
- Provides Trends during iterations
![Page 26: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/26.jpg)
codecentric AG
- Continuous Integration Tools show where to look- Usually already providing information about where to look- Sometimes providing information about how to fix
EASY INVESTIGATION
11.04.2023 26
– JUnit Report
– [Run a debugger]
– Fix it
JUnit
– Business Transaction Overview
– Call Graph
– [Run a profiler]
– Fix it
AppDynamics
![Page 27: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/27.jpg)
codecentric AG
A JUNIT REPORT
![Page 28: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/28.jpg)
codecentric AG
DAILY HEALTH CHECK
![Page 29: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/29.jpg)
codecentric AG
SPOT ON ANSWER
![Page 30: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/30.jpg)
codecentric AG
FIND ANANOMALIES
![Page 31: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/31.jpg)
codecentric AG
INVESTIGATE WITH FULL CALL STACK VISIBILITY
![Page 32: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/32.jpg)
codecentric AG
ALL THE DATA YOU NEED
![Page 33: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/33.jpg)
codecentric AG
MANUAL WORK
- Manual load and scalability tests once an iteration
- Requires close to production configuration
![Page 34: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/34.jpg)
codecentric AG
BASIC LOAD TESTING
![Page 35: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/35.jpg)
codecentric AG
THE DEVOPS REVOLUTIONChapter Four
![Page 36: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/36.jpg)
codecentric AG
DEVOPS THINKS DIFFERENT
- Agile process provides high quality
- Test environments are slow, and often not real
- Done features go to production every day
- Use real users for testing
- Planned rollbacks integral part
com
mon
s.w
ikim
ed
ia.o
rg/w
iki/Fi
le:B
eta
-bad
ge.s
vg
![Page 37: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/37.jpg)
codecentric AG
DEVOPS AND PERFORMANCE
- In the cloud, the only real test is production
- Avoid premature optimization
- Requires great tools
flickr.com/photos/design-dog/1249337589
![Page 38: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/38.jpg)
codecentric AG
HIGH PERFORMANCE APPS GO LIVE EVERY DAY
Epilogue
![Page 39: Agile Development of High Performance Applications](https://reader036.fdocuments.in/reader036/viewer/2022062512/5537f8454a7959016b8b469a/html5/thumbnails/39.jpg)
codecentric AG
- Non-Functional Requirements are known and taken care of
- Performance is monitored in development
- Anomalies are taken care of
- Pre-Release sanity check is performed
- Up- and Downgrade is planned
- New version can go into production
- Productive software is examined around the clock
SUMMARY
flic
kr.c
om
/photo
s/re
dux/4
740529728