SlideShare a Scribd company logo
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 EvolveDesign for evolution There will always be one more “feature” 
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
Designing For Evolution Manage State Carefully “State-full” Memory is a “scarce” resource Web Applications are “State-full”. Worry about “OOM”
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
Data
Application DataMost Systems are I/O bound In most cases I/O throughput defines “perceived” performance
Application DataMake data “Shardable” “Shardable” data will allow you to scale out your data demands as the application grows.
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.
Operations
OperationsUtilization is very spiky Plan for peak loads, but try to distribute processing over time  to minimize over-provisioning.
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.
OperationsHave a failover plan Plan and “TEST” backup systems.  Look for and prevent domino effects of failure
Thank You! Q & A

More Related Content

What's hot

Power Apps - With great power comes great responsibility
Power Apps -  With great power comes great responsibilityPower Apps -  With great power comes great responsibility
Power Apps - With great power comes great responsibility
Sriram Hariharan
 
Microsoft Flow - Easy Desktop Integration
Microsoft Flow - Easy Desktop IntegrationMicrosoft Flow - Easy Desktop Integration
Microsoft Flow - Easy Desktop Integration
Daniel Toomey
 
Microsoft PowerApps
Microsoft PowerAppsMicrosoft PowerApps
Microsoft PowerApps
Rene Modery
 
Systems of Intelligence: The Biggest Change in Enterprise Applications in 50 ...
Systems of Intelligence: The Biggest Change in Enterprise Applications in 50 ...Systems of Intelligence: The Biggest Change in Enterprise Applications in 50 ...
Systems of Intelligence: The Biggest Change in Enterprise Applications in 50 ...
WikibonCommunity
 
Cloud presentation
Cloud presentationCloud presentation
Cloud presentation
Pyvot
 
Introduction to Power Platform
Introduction to Power PlatformIntroduction to Power Platform
Introduction to Power Platform
Praveen Nair
 
PowerApps 101 Presentation SharePoint Saturday Netherlands 2019
PowerApps 101 Presentation SharePoint Saturday Netherlands 2019PowerApps 101 Presentation SharePoint Saturday Netherlands 2019
PowerApps 101 Presentation SharePoint Saturday Netherlands 2019
Rebekka Aalbers-de Jong
 
2 Build Apps for Any Devices With Power Apps
2 Build Apps for Any Devices With Power Apps2 Build Apps for Any Devices With Power Apps
2 Build Apps for Any Devices With Power Apps
Kumton Suttiraksiri
 
Coveo - Data Wranglers DC Meetup - 18 July 2017
Coveo - Data Wranglers DC Meetup - 18 July 2017Coveo - Data Wranglers DC Meetup - 18 July 2017
Coveo - Data Wranglers DC Meetup - 18 July 2017
Anant Corporation
 
Scaling Cloud Web & Data Technologies
Scaling Cloud Web & Data TechnologiesScaling Cloud Web & Data Technologies
Scaling Cloud Web & Data Technologies
Anant Corporation
 
Automating your tasks with microsoft flow
Automating your tasks with microsoft flowAutomating your tasks with microsoft flow
Automating your tasks with microsoft flow
Dipti Chhatrapati
 
Power Platform (Power Automate)
Power Platform (Power Automate)Power Platform (Power Automate)
Power Platform (Power Automate)
OluwatobiYusuf2
 
October2019 release
October2019 releaseOctober2019 release
October2019 release
Berkovich Consulting
 
Microsoft PowerApps and Flow
Microsoft PowerApps and FlowMicrosoft PowerApps and Flow
Microsoft PowerApps and Flow
Steve Knutson
 

What's hot (14)

Power Apps - With great power comes great responsibility
Power Apps -  With great power comes great responsibilityPower Apps -  With great power comes great responsibility
Power Apps - With great power comes great responsibility
 
Microsoft Flow - Easy Desktop Integration
Microsoft Flow - Easy Desktop IntegrationMicrosoft Flow - Easy Desktop Integration
Microsoft Flow - Easy Desktop Integration
 
Microsoft PowerApps
Microsoft PowerAppsMicrosoft PowerApps
Microsoft PowerApps
 
Systems of Intelligence: The Biggest Change in Enterprise Applications in 50 ...
Systems of Intelligence: The Biggest Change in Enterprise Applications in 50 ...Systems of Intelligence: The Biggest Change in Enterprise Applications in 50 ...
Systems of Intelligence: The Biggest Change in Enterprise Applications in 50 ...
 
Cloud presentation
Cloud presentationCloud presentation
Cloud presentation
 
Introduction to Power Platform
Introduction to Power PlatformIntroduction to Power Platform
Introduction to Power Platform
 
PowerApps 101 Presentation SharePoint Saturday Netherlands 2019
PowerApps 101 Presentation SharePoint Saturday Netherlands 2019PowerApps 101 Presentation SharePoint Saturday Netherlands 2019
PowerApps 101 Presentation SharePoint Saturday Netherlands 2019
 
2 Build Apps for Any Devices With Power Apps
2 Build Apps for Any Devices With Power Apps2 Build Apps for Any Devices With Power Apps
2 Build Apps for Any Devices With Power Apps
 
Coveo - Data Wranglers DC Meetup - 18 July 2017
Coveo - Data Wranglers DC Meetup - 18 July 2017Coveo - Data Wranglers DC Meetup - 18 July 2017
Coveo - Data Wranglers DC Meetup - 18 July 2017
 
Scaling Cloud Web & Data Technologies
Scaling Cloud Web & Data TechnologiesScaling Cloud Web & Data Technologies
Scaling Cloud Web & Data Technologies
 
Automating your tasks with microsoft flow
Automating your tasks with microsoft flowAutomating your tasks with microsoft flow
Automating your tasks with microsoft flow
 
Power Platform (Power Automate)
Power Platform (Power Automate)Power Platform (Power Automate)
Power Platform (Power Automate)
 
October2019 release
October2019 releaseOctober2019 release
October2019 release
 
Microsoft PowerApps and Flow
Microsoft PowerApps and FlowMicrosoft PowerApps and Flow
Microsoft PowerApps and Flow
 

Similar to Lessons learnt developing web applications

Sharepoint 2010 architecture, ha and dr (tig)
Sharepoint 2010 architecture, ha and dr (tig)Sharepoint 2010 architecture, ha and dr (tig)
Sharepoint 2010 architecture, ha and dr (tig)
Tihomir Ignatov
 
Enterprise Mashup Infrastructure Kapow Mashup Server
Enterprise Mashup Infrastructure   Kapow Mashup ServerEnterprise Mashup Infrastructure   Kapow Mashup Server
Enterprise Mashup Infrastructure Kapow Mashup Server
Andreas Krohn
 
The Recent Pronouncement Of The World Wide Web (Www) Had
The Recent Pronouncement Of The World Wide Web (Www) HadThe Recent Pronouncement Of The World Wide Web (Www) Had
The Recent Pronouncement Of The World Wide Web (Www) Had
Deborah Gastineau
 
Sap Interview Questions - Part 1
Sap Interview Questions - Part 1Sap Interview Questions - Part 1
Sap Interview Questions - Part 1
ReKruiTIn.com
 
Delivering value with cloud computing & model-driven code generation
Delivering value with cloud computing & model-driven code generationDelivering value with cloud computing & model-driven code generation
Delivering value with cloud computing & model-driven code generation
Codemotion
 
Data engineering design patterns
Data engineering design patternsData engineering design patterns
Data engineering design patterns
Valdas Maksimavičius
 
Data APIs as a Foundation for Systems of Engagement
Data APIs as a Foundation for Systems of EngagementData APIs as a Foundation for Systems of Engagement
Data APIs as a Foundation for Systems of Engagement
Victor Olex
 
Power BI dataflows と Power Platform Data Integration の使いどころ
Power BI dataflows と Power Platform Data Integration の使いどころPower BI dataflows と Power Platform Data Integration の使いどころ
Power BI dataflows と Power Platform Data Integration の使いどころ
Yugo Shimizu
 
Discussion post· The proper implementation of a database is es.docx
Discussion post· The proper implementation of a database is es.docxDiscussion post· The proper implementation of a database is es.docx
Discussion post· The proper implementation of a database is es.docx
madlynplamondon
 
It112 SharePoint 2010 Mythbusters
It112 SharePoint 2010MythbustersIt112 SharePoint 2010Mythbusters
It112 SharePoint 2010 Mythbusters
Spencer Harbar
 
Microsoft Cloud-Native Workshop Slides
Microsoft Cloud-Native Workshop SlidesMicrosoft Cloud-Native Workshop Slides
Microsoft Cloud-Native Workshop Slides
VMware Tanzu
 
Data vault what's Next: Part 2
Data vault what's Next: Part 2Data vault what's Next: Part 2
Data vault what's Next: Part 2
Empowered Holdings, LLC
 
SnapLogic Elastic Integration Platform as a Service (iPaaS)
SnapLogic Elastic Integration Platform as a Service (iPaaS)SnapLogic Elastic Integration Platform as a Service (iPaaS)
SnapLogic Elastic Integration Platform as a Service (iPaaS)
Darren Cunningham
 
SnapLogic Overview: Are You Feeling SMACT?
SnapLogic Overview: Are You Feeling SMACT?SnapLogic Overview: Are You Feeling SMACT?
SnapLogic Overview: Are You Feeling SMACT?
SnapLogic
 
Symphony Driver Essay
Symphony Driver EssaySymphony Driver Essay
Symphony Driver Essay
Angie Jorgensen
 
Mashing Up Taking Enterprise Mashups To The Next Level Presentation
Mashing Up  Taking Enterprise Mashups To The Next Level  PresentationMashing Up  Taking Enterprise Mashups To The Next Level  Presentation
Mashing Up Taking Enterprise Mashups To The Next Level Presentation
jward5519
 
Best Practices For Building and Operating A Managed Data Lake - StampedeCon 2016
Best Practices For Building and Operating A Managed Data Lake - StampedeCon 2016Best Practices For Building and Operating A Managed Data Lake - StampedeCon 2016
Best Practices For Building and Operating A Managed Data Lake - StampedeCon 2016
StampedeCon
 
Improve your Tech Quotient
Improve your Tech QuotientImprove your Tech Quotient
Improve your Tech Quotient
Tarence DSouza
 
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
Kai Wähner
 
Presentation from SMBNation Spring 2011
Presentation from SMBNation Spring 2011Presentation from SMBNation Spring 2011
Presentation from SMBNation Spring 2011
Robert Crane
 

Similar to Lessons learnt developing web applications (20)

Sharepoint 2010 architecture, ha and dr (tig)
Sharepoint 2010 architecture, ha and dr (tig)Sharepoint 2010 architecture, ha and dr (tig)
Sharepoint 2010 architecture, ha and dr (tig)
 
Enterprise Mashup Infrastructure Kapow Mashup Server
Enterprise Mashup Infrastructure   Kapow Mashup ServerEnterprise Mashup Infrastructure   Kapow Mashup Server
Enterprise Mashup Infrastructure Kapow Mashup Server
 
The Recent Pronouncement Of The World Wide Web (Www) Had
The Recent Pronouncement Of The World Wide Web (Www) HadThe Recent Pronouncement Of The World Wide Web (Www) Had
The Recent Pronouncement Of The World Wide Web (Www) Had
 
Sap Interview Questions - Part 1
Sap Interview Questions - Part 1Sap Interview Questions - Part 1
Sap Interview Questions - Part 1
 
Delivering value with cloud computing & model-driven code generation
Delivering value with cloud computing & model-driven code generationDelivering value with cloud computing & model-driven code generation
Delivering value with cloud computing & model-driven code generation
 
Data engineering design patterns
Data engineering design patternsData engineering design patterns
Data engineering design patterns
 
Data APIs as a Foundation for Systems of Engagement
Data APIs as a Foundation for Systems of EngagementData APIs as a Foundation for Systems of Engagement
Data APIs as a Foundation for Systems of Engagement
 
Power BI dataflows と Power Platform Data Integration の使いどころ
Power BI dataflows と Power Platform Data Integration の使いどころPower BI dataflows と Power Platform Data Integration の使いどころ
Power BI dataflows と Power Platform Data Integration の使いどころ
 
Discussion post· The proper implementation of a database is es.docx
Discussion post· The proper implementation of a database is es.docxDiscussion post· The proper implementation of a database is es.docx
Discussion post· The proper implementation of a database is es.docx
 
It112 SharePoint 2010 Mythbusters
It112 SharePoint 2010MythbustersIt112 SharePoint 2010Mythbusters
It112 SharePoint 2010 Mythbusters
 
Microsoft Cloud-Native Workshop Slides
Microsoft Cloud-Native Workshop SlidesMicrosoft Cloud-Native Workshop Slides
Microsoft Cloud-Native Workshop Slides
 
Data vault what's Next: Part 2
Data vault what's Next: Part 2Data vault what's Next: Part 2
Data vault what's Next: Part 2
 
SnapLogic Elastic Integration Platform as a Service (iPaaS)
SnapLogic Elastic Integration Platform as a Service (iPaaS)SnapLogic Elastic Integration Platform as a Service (iPaaS)
SnapLogic Elastic Integration Platform as a Service (iPaaS)
 
SnapLogic Overview: Are You Feeling SMACT?
SnapLogic Overview: Are You Feeling SMACT?SnapLogic Overview: Are You Feeling SMACT?
SnapLogic Overview: Are You Feeling SMACT?
 
Symphony Driver Essay
Symphony Driver EssaySymphony Driver Essay
Symphony Driver Essay
 
Mashing Up Taking Enterprise Mashups To The Next Level Presentation
Mashing Up  Taking Enterprise Mashups To The Next Level  PresentationMashing Up  Taking Enterprise Mashups To The Next Level  Presentation
Mashing Up Taking Enterprise Mashups To The Next Level Presentation
 
Best Practices For Building and Operating A Managed Data Lake - StampedeCon 2016
Best Practices For Building and Operating A Managed Data Lake - StampedeCon 2016Best Practices For Building and Operating A Managed Data Lake - StampedeCon 2016
Best Practices For Building and Operating A Managed Data Lake - StampedeCon 2016
 
Improve your Tech Quotient
Improve your Tech QuotientImprove your Tech Quotient
Improve your Tech Quotient
 
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
Enterprise Integration Patterns Revisited (again) for the Era of Big Data, In...
 
Presentation from SMBNation Spring 2011
Presentation from SMBNation Spring 2011Presentation from SMBNation Spring 2011
Presentation from SMBNation Spring 2011
 

Recently uploaded

Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
Federico Razzoli
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 

Recently uploaded (20)

Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 

Lessons learnt developing web applications

Editor's Notes

  1. If even one of the legs is not balanced, the stool will topple.
  2. Now let’s talk about systems
  3. The fundamental idea is to design for “Evolution”.There will always be one more feature!  Not only do systems evolve, but teams do too. You want to make it easier for new people to join in and reduce the amount of harm individual errors can bring to the system.
  4. Separate the “web” part from the “business logic” for the application.Most solutions will have mechanisms for humans (Web Apps) and machines (Web-Service/API) to interact with the data. One way to test this is to see that they are running of the same implementation of business logic. In fact, formalize the interface between the “web” part and business logic. You should be able to run them on two different machines with minor changes (say adding a marshalling layer).This will allow you to evolve each part independently as needs change. Note: you might start with both on the same machine, but unless you design it this way, difficult to scale later. Taking this idea further, one option is to get the business layer to server out JSON or XML data and build a rich Ajax based front end onthat data. GMail is a prominent example of this architecture.Look at "OData" as an emerging standard to help with this in a moreformalized manner.
  5. Web applications are "statefull". Worry about the amount of informationin one session. This more than anything will limit the number of"sessions" one can support concurrently on a given host.Remember most users will just close the browser instead of "logging out". This will mean that most session are reaped by timeoutand hence will consume resource (read memory) long after the userhas gone away. In fact the most scarce resource you have to manage is not "CPU", butactually memory. This will mean that you could get more millage byrunning more "UI" centric processes in dedicated boxes with far fewerbusiness layers servers service both the UI and API layers. This is one of the reasons why process-per-request model systems likePHP etc., are very good, because you can run a lot of these processeson a machine and when the reques is done, you can just throw thememory away when the process dies. This also means that you will haveto keep the session data in an external store and not worry aboutmemory overhead of the same.You can also do the external session store on Java based systems, butnot the default.
  6. Differentiate aggressively between stuff that "has to be done now“ within the synchronous flow of a request, versus stuff that can be scheduled for later (asynchronous processing). You can then scale for just the synchronous part of the system independent of the other stuff, which can run on more dedicated batch processing stacks like Hadoop etc. The more stuff you can do as asynchronous operations, the better you can scale your infrastructure and the higher will be the utilization for the same. Synchronous traffic is highly spiky, and you want to scale a smaller set of hardware for this as opposed to the rest of the system.
  7. Next to memory, the next scarce resource is I/O bandwidth. In facta major part of "perceived" application performance is I/O throughput.Define your data flows accordingly. Small things like compressing the data between the web-app and thebrowser will have drastic impact on perceived performance of yourapplication. This also means that it is cheaper to perform more computation closerto the data and then forward the smaller result sets for upstreamprocessing that sending more data up and trying to filter or computeat the front-end server layer.
  8. Design your databases so that it is 'shardable'. You don't have to dothis from day 1, but unless you plan for it, very difficult to dolater. This will become important as your data starts outgrowingcapabilities of a single instance. This will also allow you to scale the data layer independent of theother layers in the stack.Worry about your index behavior at the database level. Databasesystems like oracle etc will dynamically change the query plans basedon the perceived load. This can really bite you unless you look outfor it. Typical solutions involve either adding addition index's orhints to your queries to pick the correct set of indexes. This willespecially happen on complex join related queries.
  9. Think of possibilities of having different stores of data fordifferent needs. For example, you might have your code information inan RDBMS database, but for large analysis or batch jobs, it might becheaper to ship a 'flattened' copy over to a hadoop cluster to processit rather than loading the database. On the same note, If you have multiple kinds of applications working onrelated data sets, see if you can partition the processing acrossclusters of database servers. Only makes sense if you have huge datasets being worked on.
  10. This is frequently under-rated, but unless you have an idea of howyour current system is behaving, it will be very difficult to knowwhat parts needs scaling or are under performing.
  11. Remember, traffic usage patterns are very spiky. It is not uncommonfor the high's to be 10x or more than the normal. You need to plan forthe high's. But if you just plan for 10x hardware across the boardthis will be very in-efficient. This is why you need to plan forscaling each layer independently to get better return on investment. For example, you might notice that there are certain days in your week or certain weeks in a month when the usage is really high. You might want to plan your data intensive operations around these times so as to better spread the load on your data and business logic layers.
  12. Have mechanism to look at CPU, I/O, disk space, memory utilizationetc. Far cheaper to act to changes if you have an idea of yourgrowth and usage profile rather than react on every outage.
  13. A good failover mechanism is your friend. Have a failover process andtest it! An untested failover is not a failover :-)