SlideShare une entreprise Scribd logo
1  sur  14
Télécharger pour lire hors ligne
Developing Scalable Apps for
      deploying on IaaS Cloud
              Munish K Gupta




1
Who am I?

    • Current Avatar
       • Practice Lead – Architecture for High Performance Applications
         (AHiPA) @ Wipro Technologies
       • Work with lot of open source stuff – Play Framework, Akka,
         Scala, mongodb, redis, LAMP stack
    • Previous Avatar
       • Chief Architect for ideaken.com
       • Worked @ Wipro, Sapient, MindTree and Siemens


    • My Blogs
       • http://www.techspot.co.in
       • http://www.akkaessentails.in


2
Expectation(s)
    • This session will not solve your problems !

    • My goals are
        • To make you think harder about your problems
        • Help you evaluate possible solutions

    • Agenda
        • Patterns that help improve Scalability of Application
        • Best Practices when building scalable applications




3
High Performance Applications – Impact Factors


                                                                           • Topology of the
                     Reduce                                                  Solution
                     Latency                                               • Single Point of
                                                        Solution             Failure(s)
                                                      Architecture         • Chosen Product
                                                                             Stack
                                                                           • Integration Strategy



                                                                 • Application Design
                    Application                                  • Choice of
                   requirements                 Application        Frameworks
                                                Architecture     • Standards
                                                                   Enforcement
                                                                 • Build & Release
      High
                                  Scalability
    Availability
                                                                           • Hardware Choices
                                                                             made
                                                                           • Hardware/Software
                                                      Deployment             Sizing
                                                      Architecture         • System
                                                                             Configuration(s)
                                                                           • Hosting Environment
                                                                           • Application/System
                                                                             Monitoring
                                                                           • Capacity Planning


4
What is Scalability?

    Scalability means ability of an application to handle growing amount
    of data and concurrency in an efficient manner without impacting
    performance.




5
Darshini Model


                     • Stateful
                     • Synchronous
                     • No Load
                       Balancing
                     • No failover




6
McDonald’s Model


                       • Load Balanced
                       • Stateless
                       • Asynchronous
                       • Event Driven /
                         Message based
                       • Partition by
                         function




7
Go Stateless!

    • State == Sessions !



              Local
             Sessions



       Centralized
        Session



               No
             Sessions




8
Load Balancing
                                               Load Balanced the DB
                                               Servers with active sync

                                                           Load Balanced the
                                                           DB Servers using
                                                           Master-Slave
                                                           replications mode




                                                                  Amazon
                                                                   RDS
                                                                  or SQL
                                                                   Azure
                                                                  options
         Adding more web server and application servers


9
Go Asynchronous !

     • Break down the request into parts – Go      Event Driven
       all the way !                               Architecture
     • Isolate those that can be executed in non
       blocking mode (asynchronously)
     • Queue the information needed to
       complete the Task (messages)
     • Process the queues on the background
       thread (non blocking)




10
Best Practices

     • Partition by Function - Shard/Segment your Application..
       Spread Out !
     • Think Horizontal, Not Vertical
        • Scale Out
        • Use commodity equipment
        • Hardware and Memory is cheap - Add plenty of RAM and use 64bit
          hardware
     • Design application with failure in mind
     • Use caching wherever possible !
     • Bring homogeneity in your application
        • Do not have too many moving parts
        • Think Simplicity
     • Define the QoS for your application



11
Best Practices

     • Continuous Application Monitoring
     • Test your ability to scale !
     • Do not underestimate the importance of Processes & related
       documentation
        •   Configuration Management
        •   Release Management
        •   Change Management
        •   Source Control
        •   Issue Tracking
        •   Coding Standards
     • Minimize human intervention
     • Learn from Others !



12
Summary

     •   What is Scalability?
     •   Factors that impact Application Scalability
     •   Darshini vs McDonald Model
     •   Scalability Patterns and Best Practices




         You can read all the books in the world about riding a
          bicycle, but you will not be able to ride one until you
                    get on it and fall off a few times.
13
Munish K Gupta
     write2munish (at) gmail dot com

       Twitter
       @write2munish
                           Blog(s)
                 www.techspot.co.in
14             www.akkaessentials.in

Contenu connexe

Plus de Munish Gupta

Patterns for Building High Performance Applications in Cloud - CloudConnect2012
Patterns for Building High Performance Applications in Cloud - CloudConnect2012Patterns for Building High Performance Applications in Cloud - CloudConnect2012
Patterns for Building High Performance Applications in Cloud - CloudConnect2012Munish Gupta
 
Websphere Portal V6.1 Security Overview
Websphere Portal V6.1 Security OverviewWebsphere Portal V6.1 Security Overview
Websphere Portal V6.1 Security OverviewMunish Gupta
 
Web2.0 Ajax and REST in WebSphere Portal
Web2.0 Ajax and REST in WebSphere PortalWeb2.0 Ajax and REST in WebSphere Portal
Web2.0 Ajax and REST in WebSphere PortalMunish Gupta
 
Cloud Computing With AWS
Cloud Computing With AWSCloud Computing With AWS
Cloud Computing With AWSMunish Gupta
 
Web Sphere Portal Security
Web Sphere Portal SecurityWeb Sphere Portal Security
Web Sphere Portal SecurityMunish Gupta
 
Best of open source in applications
Best of open source in applicationsBest of open source in applications
Best of open source in applicationsMunish Gupta
 

Plus de Munish Gupta (7)

Patterns for Building High Performance Applications in Cloud - CloudConnect2012
Patterns for Building High Performance Applications in Cloud - CloudConnect2012Patterns for Building High Performance Applications in Cloud - CloudConnect2012
Patterns for Building High Performance Applications in Cloud - CloudConnect2012
 
Websphere Portal V6.1 Security Overview
Websphere Portal V6.1 Security OverviewWebsphere Portal V6.1 Security Overview
Websphere Portal V6.1 Security Overview
 
Web2.0 Ajax and REST in WebSphere Portal
Web2.0 Ajax and REST in WebSphere PortalWeb2.0 Ajax and REST in WebSphere Portal
Web2.0 Ajax and REST in WebSphere Portal
 
Cloud Computing With AWS
Cloud Computing With AWSCloud Computing With AWS
Cloud Computing With AWS
 
Evolution Of Java
Evolution Of JavaEvolution Of Java
Evolution Of Java
 
Web Sphere Portal Security
Web Sphere Portal SecurityWeb Sphere Portal Security
Web Sphere Portal Security
 
Best of open source in applications
Best of open source in applicationsBest of open source in applications
Best of open source in applications
 

Dernier

The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Will Schroeder
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaborationbruanjhuli
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 

Dernier (20)

The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
Apres-Cyber - The Data Dilemma: Bridging Offensive Operations and Machine Lea...
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online CollaborationCOMPUTER 10: Lesson 7 - File Storage and Online Collaboration
COMPUTER 10: Lesson 7 - File Storage and Online Collaboration
 
20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 

Developing Scalable Apps for deploying on IaaS Cloud CDC April 2012

  • 1. Developing Scalable Apps for deploying on IaaS Cloud Munish K Gupta 1
  • 2. Who am I? • Current Avatar • Practice Lead – Architecture for High Performance Applications (AHiPA) @ Wipro Technologies • Work with lot of open source stuff – Play Framework, Akka, Scala, mongodb, redis, LAMP stack • Previous Avatar • Chief Architect for ideaken.com • Worked @ Wipro, Sapient, MindTree and Siemens • My Blogs • http://www.techspot.co.in • http://www.akkaessentails.in 2
  • 3. Expectation(s) • This session will not solve your problems ! • My goals are • To make you think harder about your problems • Help you evaluate possible solutions • Agenda • Patterns that help improve Scalability of Application • Best Practices when building scalable applications 3
  • 4. High Performance Applications – Impact Factors • Topology of the Reduce Solution Latency • Single Point of Solution Failure(s) Architecture • Chosen Product Stack • Integration Strategy • Application Design Application • Choice of requirements Application Frameworks Architecture • Standards Enforcement • Build & Release High Scalability Availability • Hardware Choices made • Hardware/Software Deployment Sizing Architecture • System Configuration(s) • Hosting Environment • Application/System Monitoring • Capacity Planning 4
  • 5. What is Scalability? Scalability means ability of an application to handle growing amount of data and concurrency in an efficient manner without impacting performance. 5
  • 6. Darshini Model • Stateful • Synchronous • No Load Balancing • No failover 6
  • 7. McDonald’s Model • Load Balanced • Stateless • Asynchronous • Event Driven / Message based • Partition by function 7
  • 8. Go Stateless! • State == Sessions ! Local Sessions Centralized Session No Sessions 8
  • 9. Load Balancing Load Balanced the DB Servers with active sync Load Balanced the DB Servers using Master-Slave replications mode Amazon RDS or SQL Azure options Adding more web server and application servers 9
  • 10. Go Asynchronous ! • Break down the request into parts – Go Event Driven all the way ! Architecture • Isolate those that can be executed in non blocking mode (asynchronously) • Queue the information needed to complete the Task (messages) • Process the queues on the background thread (non blocking) 10
  • 11. Best Practices • Partition by Function - Shard/Segment your Application.. Spread Out ! • Think Horizontal, Not Vertical • Scale Out • Use commodity equipment • Hardware and Memory is cheap - Add plenty of RAM and use 64bit hardware • Design application with failure in mind • Use caching wherever possible ! • Bring homogeneity in your application • Do not have too many moving parts • Think Simplicity • Define the QoS for your application 11
  • 12. Best Practices • Continuous Application Monitoring • Test your ability to scale ! • Do not underestimate the importance of Processes & related documentation • Configuration Management • Release Management • Change Management • Source Control • Issue Tracking • Coding Standards • Minimize human intervention • Learn from Others ! 12
  • 13. Summary • What is Scalability? • Factors that impact Application Scalability • Darshini vs McDonald Model • Scalability Patterns and Best Practices You can read all the books in the world about riding a bicycle, but you will not be able to ride one until you get on it and fall off a few times. 13
  • 14. Munish K Gupta write2munish (at) gmail dot com Twitter @write2munish Blog(s) www.techspot.co.in 14 www.akkaessentials.in

Notes de l'éditeur

  1. The below and following notes on the template slides are to guide you only. In your final presentation, you may delete these notes and add relevant notes if any.Title slide:Title– should not exceed beyond 3 lines, font size 30-34, Arial Bold (Font size for the title of the PPT can vary between 30-34, Arial, Bold depending on the amount of text, however should not be smaller than 30 font size)Name should not exceed beyond 1 line, Designation; font size to remain at 16, Arial normalPlease keep the title slide simple, just the logo, title and name and designation to appear. No other graphic elements or any design, photograph, image can be added to this slide, alignment to remain the same
  2. Blank slideyou may use this to insert or show screenshots etcIf content is added in this slide you will need to use bulleted text
  3. Vertical Image slide – Use this slide for a vertical image with text that flows in a running paragraphText– font size 20, ArialClick on the icon to add image, the size of the image will be automatically determined once inserted, do not alter the size of the imageIn the text box on the right the font size should not be beyond 20, Arial normal, and ensure the maximum content used is aligned to the size of the image, content should not exceed beyond the size of the image
  4. Vertical Image slide – Use this slide for a vertical image with bulleted textText– font size 20, ArialClick on the icon to add image, the size of the image will be automatically determined once inserted, do not alter the size of the imageIn the text box on the right the font size should not be beyond 20, Arial normal, and ensure the maximum content used is aligned to the size of the image, content should not exceed beyond the size of the image
  5. Horizontal Image slide – Horizontal image with text that flows in a running paragraphTitle – font size 20, ArialClick on the icon to add image, the size of the image will be automatically determined once inserted, do not alter the size of the imageIn the text box below the image the font size should not be beyond 18, Arial normal, and ensure the maximum content used is aligned to 5 lines, content should not exceed beyond the image size
  6. Horizontal Image slide – Horizontal image with bulleted textTitle – font size 20, ArialClick on the icon to add image, the size of the image will be automatically determined once inserted, do not alter the size of the imageIn the text box below the bulleted text should not be beyond one lineFont size should be 20, Arial normal and should not exceed beyond 4 bullet points