SlideShare una empresa de Scribd logo
1 de 14
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

Más contenido relacionado

Más 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 - CloudConnect2012
Munish Gupta
 
Websphere Portal V6.1 Security Overview
Websphere Portal V6.1 Security OverviewWebsphere Portal V6.1 Security Overview
Websphere Portal V6.1 Security Overview
Munish 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 Portal
Munish Gupta
 
Cloud Computing With AWS
Cloud Computing With AWSCloud Computing With AWS
Cloud Computing With AWS
Munish Gupta
 
Web Sphere Portal Security
Web Sphere Portal SecurityWeb Sphere Portal Security
Web Sphere Portal Security
Munish Gupta
 
Best of open source in applications
Best of open source in applicationsBest of open source in applications
Best of open source in applications
Munish Gupta
 

Más 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
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 

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

Notas del editor

  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