Cloud Computing & Scaling Web Apps

859 views
759 views

Published on

Intro to cloud computing and a basic how to scale web applications.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
859
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • KEY SOUNDBITE: “Just like the landline phone or the power socket on \nthe wall, Cloud Computing is using the same model for IT—inexpensive, pay as \nyou go, operates on a base infrastructure and just works.”\n
  • \n
  • KEY SOUNDBITE: “Just like the landline phone or the power socket on \nthe wall, Cloud Computing is using the same model for IT—inexpensive, pay as \nyou go, operates on a base infrastructure and just works.”\n
  • Historically, industry shifts are driven by new needs and new economics\nWe are in this shift right now …a new era in IT that finally addresses complexity rather than adding it. \n
  • Key Talking Points: We see 3 different basic types of cloud computing today. \n\nApplication or Information are the best known, highly visible as consumer web sites and in general are focused on the delivery of information.\n\nPros: Usually very inexpensive to use. In case of commercial centered solutions many are driven by ad revenues.\n\nCons: Not customizable. Limited ability to integrate with internal systems and limited application coverage for business purposes.\n\nKey Talking Points: Second type of cloud computing is least well known and is focused on delivering software development environments and runtimes as a service. A consumer of such a service would write an application using the using the service and then make use of the supplied runtime environment for that application. \n\nPros: Facilitates rapid development\n\nCons:Not compatible with existing applications thus creating need to rewrite applications before they can make use of such service\n\nFinally, the 3rd type of cloud computing is focused on providing the most generalizable solution and that is basic infrastructure as a service. These solutions provide to the consumer storage, networking and computing capacity as a service, sometimes in very high granularities of billing such as hourly.\n\nA vast majority of these solutions are based on virtualization.\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • But the decision for enterprises on how far to leverage computing platforms in the cloud will be much more complicated. The economics will increasingly make more sense to run business applications on these new platforms now that major competition has emerged in the PaaS marketplace that will put major downward pressure on already strikingly low costs to operate. But the issues around governance, security, privacy, and control will be hard to overcome. Make no mistake however, these platforms offer not only major cost savings but non-trivial productivity boosts as they competitively strive to be the cheapest and lowest barrier place online to run your business applications and engage your employees, customers, and partners.\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Cloud Computing & Scaling Web Apps

    1. 1. #RUBYFUZACONFERENCE FEB 2011
    2. 2. Who am I?• Cofounder/CTO of RSAWEB & other companies in RAMPGroup• Chief Architect / Product owner of RSAWEBCloud.com• Twitter: @markslingsby• mark@rsaweb.co.za
    3. 3. Content• Intro to Cloud/Iaas/Paas• Infrastructure Evolution• RSAWEBCloud.com (a Ruby project)• Scaling•
    4. 4. The Goal IT as a Service Just like the Telephone or Electricity • Inexpensive, pay as you go • Usage and consumption based • Always up and Available • Reliable • Choice of providers
    5. 5. The Evolution of Applications Cloud Web PC/Client-Server Mainframe 4
    6. 6. Different types of Cloud Computing 3 Main Types: SaaS = Application/Information – Sometimes referred to as Software-as-a-Service, a wide ranging services delivered via varied business models normally available as public offering. PaaS = Development – Sometimes referred to as Platform-as-a-Service, application development platforms enable application authoring and runtime environment. IaaS = Infrastructure – Sometimes referred to as elastic compute clouds or Infrastructure-as-a- Service, virtual hardware made available for varied uses. 2 Main Deployment External – Accessible Internal – Behind over the internet for corporate firewall for use Environments general consumption by limited, pre- determined audience
    7. 7. Turning commonality into a utility
    8. 8. as a Service examples Application/ Information (SaaS) Development (PaaS) Infrastructure (IaaS)
    9. 9. What is IaaS?• Utility computing service and billing model.• Automation of administrative tasks.• Dynamic scaling.• Desktop virtualization.• Policy-based services.• Internet connectivity.
    10. 10. Evolution of Iaas?
    11. 11.  Client owned hardwareThe Dark Ages:  Client managed maintenance  Weeks to set up Colocation  Weeks to order and configure  Redundancy expensive to setup
    12. 12.  Leased hardware The Present:  Managed maintenance  Days to set upDedicated Servers  Days to order and configure  Redundancy expensive to setup
    13. 13.  Pooled hardware resources The Future:   Hardware on demand Instant set upCloud Servers  Minutes to order and configure  Inherent redundancy
    14. 14. RSAWEBCloud.com Dedicate Virtual CloudDesign Goal Simple, Low cost Low cost Flexiblity, Scalability FrontEndDedicated Resources d Baremetal, YES Virtualised, Maybe Virtualised, YES (Rails)High Availability No No (possible but $$) YesFault Tolerant No No Yes *Disk Storage On machine On machine SAN / Block StorageScalability None Medium HighAdvantages Full access to Flexibility Flexibility hardwareDisadvantages Not flexible Customers perception Provider must be goodAccess Root Root RootProvision time Days to weeks Hours SecondsAPI Access (Create VM, Stop, None None YESStart)Add more disk space None Limited YesShared disk space between Limited Limited Yesservers
    15. 15. The advantages of using Cloud Hosting or IaaS• Performance• Scalability and flexibility• High availability & Redundancy• Integrated management Control Panel• Pay as you use model
    16. 16. Challenges to using aaS• Governance• Security• Privacy• Control
    17. 17. Why Cloud makes sense
    18. 18. Scalable Capacity
    19. 19. RSAWEBCloud.com FrontEnd (Rails)
    20. 20. RSAWEBCloud.com FrontEnd (Rails)
    21. 21. RSAWEBCloud.com
    22. 22. RSAWEBCloud.com FrontEnd MyRSAWEB (Rails) (billing etc)
    23. 23. RSAWEBCloud.com FrontEnd MyRSAWEB (Rails) (billing etc) Cloud Cloud Node 1 Manager Manager Node 2 Node 3 ..... Storage Storage SAN SAN Node X
    24. 24. RSAWEBCloud.com FrontEnd MyRSAWEB (Rails) (billing etc) Cloud Cloud Node 1 Manager Manager Node 2 Node 3 ..... Storage Storage SAN SAN Node X
    25. 25. Why RSAWEBCloud?
    26. 26. Why RSAWEBCloud?Hows it different to AWS
    27. 27. Why RSAWEBCloud?Hows it different to AWS• Persistent storage (no loss of data or state)
    28. 28. Why RSAWEBCloud?Hows it different to AWS• Persistent storage (no loss of data or state)• Public IP remains bound to machine of choice
    29. 29. Why RSAWEBCloud?Hows it different to AWS• Persistent storage (no loss of data or state)• Public IP remains bound to machine of choice• Can run SQL DB’s with HA (and it works!)
    30. 30. Why RSAWEBCloud?Hows it different to AWS• Persistent storage (no loss of data or state)• Public IP remains bound to machine of choice• Can run SQL DB’s with HA (and it works!)• Infinitely easier to migrate existing apps
    31. 31. Challenges for developers
    32. 32. Challenges for developers• Works great on my machine
    33. 33. Challenges for developers• Works great on my machine• Works great in testing
    34. 34. Challenges for developers• Works great on my machine• Works great in testing• Why is it slow & unresponsive live?
    35. 35. Challenges for developers• Works great on my machine• Works great in testing• Why is it slow & unresponsive live?• Why is the server grinding to a halt?
    36. 36. Challenges for developers
    37. 37. Challenges for developers• Dev’s get stuck with designing the infrastructure layer too
    38. 38. Challenges for developers• Dev’s get stuck with designing the infrastructure layer too• How do we solve this?
    39. 39. Challenges for developers
    40. 40. Challenges for developers• Go through optimisations etc..
    41. 41. Challenges for developers• Go through optimisations etc..• but then what?
    42. 42. Challenges for developers• Go through optimisations etc..• but then what?• Upgrade the server?
    43. 43. Challenges for developers• Go through optimisations etc..• but then what?• Upgrade the server?• Limits
    44. 44. Challenges for developers• Go through optimisations etc..• but then what?• Upgrade the server?• Limits• Budget approvals
    45. 45. Scaling OUT
    46. 46. Scaling OUT• Architecture structure is vital• How do you scale s i d e w a y s?
    47. 47. Scaling OUT Shared IP / Carp
    48. 48. Scaling OUT Shared IP / Carp Load Load Balancer Balancer
    49. 49. Scaling OUT Shared IP / Carp Load Load Balancer Balancer Web Server Web Server Web Server Web Serve
    50. 50. Scaling OUT Shared IP / Carp Load Load Balancer Balancer Web Server Web Server Web Server Web Serve NosQL DB NoSQL DB NoSQL DB
    51. 51. Scaling OUT Shared IP / Carp Load Load Balancer Balancer Web Server Web Server Web Server Web Serve MySQL DB NosQL DB MySQL DB NoSQL DB NoSQL DB
    52. 52. Scaling OUT Shared IP / Carp Load Load Balancer Balancer Web Server Web Server Web Server Web Serve MySQL DB NosQL DB MySQL DB NoSQL DB NoSQL DB MySQL Slave(s)
    53. 53. Scaling OUT Shared IP / Carp Load Load Memcache Balancer Balancer Web Server Web Server Web Server Web Serve MySQL DB NosQL DB MySQL DB NoSQL DB NoSQL DB MySQL Slave(s)
    54. 54. Scaling OUT - Critical must do’s
    55. 55. Scaling OUT - Critical must do’s1. Think asynchronously
    56. 56. Scaling OUT - Critical must do’s1. Think asynchronously2. Think vertically
    57. 57. Scaling OUT - Critical must do’s1. Think asynchronously2. Think vertically3. Keep data types separate
    58. 58. Scaling OUT - Critical must do’s1. Think asynchronously2. Think vertically3. Keep data types separate4. Separate hot & cold data
    59. 59. Scaling OUT - Critical must do’s1. Think asynchronously2. Think vertically3. Keep data types separate4. Separate hot & cold data5. Memory ROCKS!
    60. 60. Scaling OUT - how??? - Difficulty of migration depends on Existing existing complexity - May need DB refactoring / migration Apps - Sessions can be sorted in Memcache - Loadbalancer & multiple webservers, app needs to handle different IP’s - Add slave SQL Db’s for read performance - Add a monitoring server to start & deploy new servers as needed - Puppet / Chef
    61. 61. Scaling OUT - how??? - Files can be stored on centralised storage New - Sessions can be sorted in Memcache - Loadbalancer & multiple webservers Apps - Add slave SQL Db’s for read performance - Add a monitoring server to start & deploy new servers - Use NoSQL where appropriate - Puppet / Chef
    62. 62. Scaling OUT - how??? - Monitor load - Nagios - Do something about it Managing - Autoprovision with Chef/Puppet - Continue to monitor load - Deploy & Recover on demand
    63. 63. Scaling OUT - how??? Managing
    64. 64. ClosingChat to us about:• Cloud• Scaling• High volume sites/apps• 1 month off:• Or signup for 7 day trial www.rsawebcloud.com Twitter: @markslingsby

    ×