lessons learnt developing web applications
DESCRIPTION
Lessons Learnt Developing Web Applications. Satyadeep Musuvathy Architect, Yahoo!. Balance. If even one of the legs is in-correct, the stool tends to topple. Balance between System, Data and Operations. Systems. Systems Evolve Design for evolution. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Lessons Learnt Developing Web Applications](https://reader035.vdocuments.mx/reader035/viewer/2022062309/568151c9550346895dc00080/html5/thumbnails/1.jpg)
Lessons Learnt Developing Web
ApplicationsSatyadeep Musuvathy
Architect, Yahoo!
![Page 2: Lessons Learnt Developing Web Applications](https://reader035.vdocuments.mx/reader035/viewer/2022062309/568151c9550346895dc00080/html5/thumbnails/2.jpg)
Balance
Balance between System, Data and Operations
If even one of the legs is in-correct, the stool tends to topple
![Page 3: Lessons Learnt Developing Web Applications](https://reader035.vdocuments.mx/reader035/viewer/2022062309/568151c9550346895dc00080/html5/thumbnails/3.jpg)
Systems
![Page 4: Lessons Learnt Developing Web Applications](https://reader035.vdocuments.mx/reader035/viewer/2022062309/568151c9550346895dc00080/html5/thumbnails/4.jpg)
Systems EvolveDesign for evolution
There will always be one more “feature”
![Page 5: Lessons Learnt Developing Web Applications](https://reader035.vdocuments.mx/reader035/viewer/2022062309/568151c9550346895dc00080/html5/thumbnails/5.jpg)
Designing For Evolution Have clear separation of concerns
API, Savvy?
Your web page, Sir
I canz do business
Separate Web and API interaction from the business logic
![Page 6: Lessons Learnt Developing Web Applications](https://reader035.vdocuments.mx/reader035/viewer/2022062309/568151c9550346895dc00080/html5/thumbnails/6.jpg)
Designing For Evolution Manage State Carefully
State A
State B
State C
Web Applications are “State-full”. Worry about “OOM”
Memory is a “scarce” resource
“State-full”
![Page 7: Lessons Learnt Developing Web Applications](https://reader035.vdocuments.mx/reader035/viewer/2022062309/568151c9550346895dc00080/html5/thumbnails/7.jpg)
Designing For Evolution Aggressively differentiate sync and a-sync jobs
Vs.
Synchronous
Asynchronous
Design and scale the synchronous aspects separately from the asynchronous jobs – Not all operations need to be synchronous
![Page 8: Lessons Learnt Developing Web Applications](https://reader035.vdocuments.mx/reader035/viewer/2022062309/568151c9550346895dc00080/html5/thumbnails/8.jpg)
Data
![Page 9: Lessons Learnt Developing Web Applications](https://reader035.vdocuments.mx/reader035/viewer/2022062309/568151c9550346895dc00080/html5/thumbnails/9.jpg)
Application DataMost Systems are I/O bound
In most cases I/O throughput defines “perceived” performance
![Page 10: Lessons Learnt Developing Web Applications](https://reader035.vdocuments.mx/reader035/viewer/2022062309/568151c9550346895dc00080/html5/thumbnails/10.jpg)
Application DataMake data “Shardable”
“Shardable” data will allow you to scale out your data demands as the application grows.
![Page 11: Lessons Learnt Developing Web Applications](https://reader035.vdocuments.mx/reader035/viewer/2022062309/568151c9550346895dc00080/html5/thumbnails/11.jpg)
Application DataConsider multiple stores for data
Grid Database
Consider shipping copy of the data to Grid or dedicated machines for batch or “secondary” tasks.
“Divide and Conquer”
![Page 12: Lessons Learnt Developing Web Applications](https://reader035.vdocuments.mx/reader035/viewer/2022062309/568151c9550346895dc00080/html5/thumbnails/12.jpg)
Operations
![Page 13: Lessons Learnt Developing Web Applications](https://reader035.vdocuments.mx/reader035/viewer/2022062309/568151c9550346895dc00080/html5/thumbnails/13.jpg)
OperationsUtilization is very spiky
Plan for peak loads, but try to distribute processing over time to minimize over-provisioning.
![Page 14: Lessons Learnt Developing Web Applications](https://reader035.vdocuments.mx/reader035/viewer/2022062309/568151c9550346895dc00080/html5/thumbnails/14.jpg)
OperationsConstantly monitor systems
Constantly monitor the system for CPU, Memory, Disk and I/O
Have system “raise” events for critical issues rather then parsing log files.
![Page 15: Lessons Learnt Developing Web Applications](https://reader035.vdocuments.mx/reader035/viewer/2022062309/568151c9550346895dc00080/html5/thumbnails/15.jpg)
OperationsHave a failover plan
Plan and “TEST” backup systems. Look for and prevent domino effects of failure
![Page 16: Lessons Learnt Developing Web Applications](https://reader035.vdocuments.mx/reader035/viewer/2022062309/568151c9550346895dc00080/html5/thumbnails/16.jpg)
Q & A
Thank You!