1 / 16

Lessons Learnt Developing Web Applications

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.

devon
Download Presentation

Lessons Learnt Developing Web Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lessons Learnt Developing Web Applications Satyadeep Musuvathy Architect, Yahoo!

  2. Balance If even one of the legs is in-correct, the stool tends to topple Balance between System, Data and Operations

  3. Systems

  4. Systems EvolveDesign for evolution There will always be one more “feature” 

  5. Designing For Evolution Have clear separation of concerns I canz do business API, Savvy? Your web page, Sir Separate Web and API interaction from the business logic

  6. Designing For Evolution Manage State Carefully “State-full” Memory is a “scarce” resource Web Applications are “State-full”. Worry about “OOM”

  7. Designing For Evolution Aggressively differentiate sync and a-sync jobs Vs. Asynchronous Synchronous Design and scale the synchronous aspects separately from the asynchronous jobs – Not all operations need to be synchronous

  8. Data

  9. Application DataMost Systems are I/O bound In most cases I/O throughput defines “perceived” performance

  10. Application DataMake data “Shardable” “Shardable” data will allow you to scale out your data demands as the application grows.

  11. Application DataConsider multiple stores for data Grid Database “Divide and Conquer” Consider shipping copy of the data to Grid or dedicated machines for batch or “secondary” tasks.

  12. Operations

  13. OperationsUtilization is very spiky Plan for peak loads, but try to distribute processing over time to minimize over-provisioning.

  14. 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.

  15. OperationsHave a failover plan Plan and “TEST” backup systems. Look for and prevent domino effects of failure

  16. Q & A Thank You!

More Related