http://www.egeniq.com                                             info@egeniq.com                                         ...
Contents           WARNING           This is not Yet Another           “Store files on Amazon S3” talk.                   ...
What is the Cloud?                     3
What is the Cloud?                     4
Gartner’s Hype Cycle                       5
Gartner’s Hype Cycle                       6
Gartner’s Hype Cycle on Clouds                                 7
Clouds According to NIST “Cloud computing is a model for enabling convenient, on-demand     network access to a shared poo...
NIST: Five CharacteristicsThings that are considered cloud:‣   On-demand, self-service‣   Broad network access‣   Resource...
NIST: Three Service ModelsCloud applications are:‣ Software as a Service‣ Platform as a Service‣ Infrastructure as a Servi...
NIST: Four Deployment Models‣   Private cloud‣   Community cloud‣   Public cloud‣   Hybrid cloud                          ...
Infrastructure as a Service                              12
Application LayersStandard layers in a typical application:        Application     System Software          Storage    Ope...
Infrastructure as a ServiceParts of the infrastructure offered as service to your app:                      Application   ...
Infrastructure as a Service‣ Pitfalls:  • Vendor lock-in  • Security  • Integrity of the service provider‣ Advantages:  • ...
Infrastructure as a Service                              16
The Hardware/OS Layer‣ Typically offered as Virtual Machine images‣ Gives ‘throw hardware at the problem’ a new dimension‣...
Example: The Rackspace Cloud‣ The RackspaceCloud is what used to be called Mosso‣ Powerful API for managing your cloud‣ Ea...
The Rackspace Cloud in PHP                             19
The Rackspace Cloud in PHP                             20
Clouds for Development‣ Private Cloud: • Flexible development environments • Easy to simulate large scale environments • E...
Example: Terremark’s Infinicloud                                   22
Terremark’s InfiniCloud                          23
IaaS ArchitecturePrepare your app to run on IaaS                                  24
Horizontal Scalability‣ If you run your app on multiple servers today, would it work?‣ Typical problem areas:  • Sessions ...
Horizontal Scalability‣ Danga - http://www.danga.com/  • People behind LiveJournal / SixApart  • Creators of tools to help...
Elasticity‣ Fewer bottlenecks  • More elasticity  • Easier to scale                      27
Elasticity             28
Elasticity             29
Abstraction ‣ Abstract services where possible                                      30
Abstraction‣ Con: • Common denominator functionality • Adds some overhead‣ Pro: • Reduce vendor lock-in • Increase flexibi...
Abstraction‣ Zend’s SimpleCloud • http://simplecloud.org • Good attempt at generic cloud abstraction                      ...
Characteristics Of Your Application‣   Service oriented‣   Stateless‣   Low coupling‣   Modularity‣   Interoperability    ...
Infra as a Service = SLA Hell?‣ Find out service levels of infrastructure components‣ Get proper support‣ Create “What if....
Platform as a Service                        35
Platform as a ServiceComplete platform offered as a service:         Application      System Software           Storage   ...
Platform as a Service‣ Platform scales up and down as necessary‣ Same pitfalls and advantages as IaaS, plus: • Don’t worry...
Platform as a Service                        38
Google AppEngine‣ http://code.google.com/appengine/‣ Python and Java‣ Able to run PHP via Quercus (Java PHP interpreter) •...
The Rackspace Cloud ‘Sites’                              40
Rackspace’s TrueHybrid‣ Platform selects the best operating system for your site‣ Magically blends Windows and Linux, ASP....
Other Platforms for PHP‣ NING • http://ning.com • Social Network PaaS‣ Force.com • Salesforce cloud platform • Business ap...
Software as a Service                        43
Software as a ServiceEverything in the cloud:         Application      System Software           Storage     Operating Sys...
Software as a Service‣ Complete applications or application components‣ Popular phrase: “We are moving our ... to the clou...
Software as a Service                        46
Example: Salesforce‣ Gives access to all your data in Salesforce using SOAP‣ PHP library available‣ Documentation abundant...
Example: SalesforceSource adapted from tutorial at http://www.mikesimonds.com                                             ...
Example: Google Apps‣ Many features available through Zend_Gdata_* in ZF • Information retrieval • Document storage • Cale...
Example: Google Apps                       50
General SaaS suggestions‣ Want to work with X from PHP? • Google ‘X php api’ or ‘X php tutorial’ • You’re almost never the...
The ‘Warcraft Effect’      Clouds are living entities that change when you’re not looking                                 ...
Creating SaaS                53
Creating SaaS‣ In 2 years Cloud Infrastructure will be a commodity  • It’ll be all about application development‣ Building...
Multi-Tenancy evolutionSource: http://msdn.microsoft.com/en-us/library/aa479069.aspx                                      ...
Multi-tenant Databases                         56
Multi-tenant Databases                         57
Things to think about‣   Privacy‣   Shared data‣   Collaboration‣   Interoperability‣   Vendor lock                       ...
Putting it all together   Cloud Computing In Practice                                 59
A Hybrid IT Cloud                    60
A Hybrid IT Cloud                    61
SummaryIf you were sleeping, wake up now!                                     62
Summary‣ What is the Cloud? • The cloud = IaaS + PaaS + SaaS‣ If you have trouble remembering: • Cloud = Platform, Infrast...
Summary‣ With your next PHP application: • See if you can run it on a Cloud Platform • See if you can run parts on Cloud I...
Food for ThoughtLet’s leave you with something to think about                                                65
Food for ThoughtAre you worried about this?                                         Cloud                               Cl...
Food for ThoughtThen what about this?                                    Financial System                             Bank...
http://www.egeniq.com                                   info@egeniq.com                                           @egeniqT...
CreditsPictures used (under Creative Commons Attribution licenses)Cloud (slide 3):  http://flickr.com/photos/kables/632497...
Upcoming SlideShare
Loading in...5
×

Php Development In The Cloud

4,772

Published on

An overview of cloud computing for PHP developers.

This is a slightly updated version of my earlier 'PHP and the Cloud' slides, mostly to reflect my new company's layout.

Published in: Technology
1 Comment
6 Likes
Statistics
Notes
No Downloads
Views
Total Views
4,772
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
184
Comments
1
Likes
6
Embeds 0
No embeds

No notes for slide

Php Development In The Cloud

  1. 1. http://www.egeniq.com info@egeniq.com @egeniqPHP Development In The Cloud Ivo Jansch February 2011
  2. 2. Contents WARNING This is not Yet Another “Store files on Amazon S3” talk. 2
  3. 3. What is the Cloud? 3
  4. 4. What is the Cloud? 4
  5. 5. Gartner’s Hype Cycle 5
  6. 6. Gartner’s Hype Cycle 6
  7. 7. Gartner’s Hype Cycle on Clouds 7
  8. 8. Clouds According to NIST “Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model promotes availability and is composed of five essential characteristics, three service models, and four deployment models.” National Institute of Standards and Technology http://csrc.nist.gov/groups/SNS/cloud-computing/ 8
  9. 9. NIST: Five CharacteristicsThings that are considered cloud:‣ On-demand, self-service‣ Broad network access‣ Resource pooling‣ Rapid elasticity‣ Measured service 9
  10. 10. NIST: Three Service ModelsCloud applications are:‣ Software as a Service‣ Platform as a Service‣ Infrastructure as a Service 10
  11. 11. NIST: Four Deployment Models‣ Private cloud‣ Community cloud‣ Public cloud‣ Hybrid cloud 11
  12. 12. Infrastructure as a Service 12
  13. 13. Application LayersStandard layers in a typical application: Application System Software Storage Operating System Hardware Network 13
  14. 14. Infrastructure as a ServiceParts of the infrastructure offered as service to your app: Application System Software Storage Operating System Hardware Network 14
  15. 15. Infrastructure as a Service‣ Pitfalls: • Vendor lock-in • Security • Integrity of the service provider‣ Advantages: • Easily scalable • Move from capital expense to operational expense • Metered use • Don’t worry about hardware... 15
  16. 16. Infrastructure as a Service 16
  17. 17. The Hardware/OS Layer‣ Typically offered as Virtual Machine images‣ Gives ‘throw hardware at the problem’ a new dimension‣ Elastic load balancing divides traffic over instances 17
  18. 18. Example: The Rackspace Cloud‣ The RackspaceCloud is what used to be called Mosso‣ Powerful API for managing your cloud‣ Easy access in PHP through Aleksey Korzun’s PHP API: • http://github.com/AlekseyKorzun/php-cloudservers‣ Concepts • Images (various operating systems) • Flavors (configuration: mem, cpu, disk) 18
  19. 19. The Rackspace Cloud in PHP 19
  20. 20. The Rackspace Cloud in PHP 20
  21. 21. Clouds for Development‣ Private Cloud: • Flexible development environments • Easy to simulate large scale environments • Easy to set up multiple clusters 21
  22. 22. Example: Terremark’s Infinicloud 22
  23. 23. Terremark’s InfiniCloud 23
  24. 24. IaaS ArchitecturePrepare your app to run on IaaS 24
  25. 25. Horizontal Scalability‣ If you run your app on multiple servers today, would it work?‣ Typical problem areas: • Sessions • Files 25
  26. 26. Horizontal Scalability‣ Danga - http://www.danga.com/ • People behind LiveJournal / SixApart • Creators of tools to help make software horizontally scalable • Memcache - distributed caching, session clustering ‣ http://github.com/andreiz/php-memcached • MogileFS - distributed file storage ‣ http://projects.usrportage.de/index.fcgi/php-mogilefs • Gearman - distributed parallel job processing / message queue ‣ http://pecl.php.net/package/gearman/ 26
  27. 27. Elasticity‣ Fewer bottlenecks • More elasticity • Easier to scale 27
  28. 28. Elasticity 28
  29. 29. Elasticity 29
  30. 30. Abstraction ‣ Abstract services where possible 30
  31. 31. Abstraction‣ Con: • Common denominator functionality • Adds some overhead‣ Pro: • Reduce vendor lock-in • Increase flexibility • Save development time • No need to learn different APIs • Promotes competition between providers 31
  32. 32. Abstraction‣ Zend’s SimpleCloud • http://simplecloud.org • Good attempt at generic cloud abstraction 32
  33. 33. Characteristics Of Your Application‣ Service oriented‣ Stateless‣ Low coupling‣ Modularity‣ Interoperability 33
  34. 34. Infra as a Service = SLA Hell?‣ Find out service levels of infrastructure components‣ Get proper support‣ Create “What if...” scenarios • What if Amazon is down? • What if SupaDupaCloudStore goes bankrupt?‣ Who owns the data?‣ Pay attention to license agreements 34
  35. 35. Platform as a Service 35
  36. 36. Platform as a ServiceComplete platform offered as a service: Application System Software Storage Operating System Hardware Network 36
  37. 37. Platform as a Service‣ Platform scales up and down as necessary‣ Same pitfalls and advantages as IaaS, plus: • Don’t worry about scalability 37
  38. 38. Platform as a Service 38
  39. 39. Google AppEngine‣ http://code.google.com/appengine/‣ Python and Java‣ Able to run PHP via Quercus (Java PHP interpreter) • http://www.webdigi.co.uk/blog/2009/run-php-on-the-google-app-engine/ • http://www.caucho.com/resin-3.0/quercus/‣ Technology needs to prove itself • Example sites running on Quercus: ‣ http://www.webmonkey.com/ ‣ http://www.style.com/stylefile/ 39
  40. 40. The Rackspace Cloud ‘Sites’ 40
  41. 41. Rackspace’s TrueHybrid‣ Platform selects the best operating system for your site‣ Magically blends Windows and Linux, ASP.NET and PHP 41
  42. 42. Other Platforms for PHP‣ NING • http://ning.com • Social Network PaaS‣ Force.com • Salesforce cloud platform • Business applications‣ PHPFog • http://phpfog.com • Cloud platform for PHP apps • Quite young, looks very promising 42
  43. 43. Software as a Service 43
  44. 44. Software as a ServiceEverything in the cloud: Application System Software Storage Operating System Hardware Network 44
  45. 45. Software as a Service‣ Complete applications or application components‣ Popular phrase: “We are moving our ... to the cloud”‣ Examples: • Gmail • Google Apps (office apps, calendar, email) • Salesforce for CRM‣ Often built on IaaS • Dropbox file sharing (makes use of Amazon S3 for storage) • Jungledisk backups (same) 45
  46. 46. Software as a Service 46
  47. 47. Example: Salesforce‣ Gives access to all your data in Salesforce using SOAP‣ PHP library available‣ Documentation abundant • http://developer.force.com/‣ Salesforce was SaaS way before term ‘cloud’ was coined‣ Most developer friendly SaaS • Documentation • Sandbox functionality (paid) 47
  48. 48. Example: SalesforceSource adapted from tutorial at http://www.mikesimonds.com 48
  49. 49. Example: Google Apps‣ Many features available through Zend_Gdata_* in ZF • Information retrieval • Document storage • Calendering • Account Configuration 49
  50. 50. Example: Google Apps 50
  51. 51. General SaaS suggestions‣ Want to work with X from PHP? • Google ‘X php api’ or ‘X php tutorial’ • You’re almost never the first to want to work with it‣ Cloud apps are easier to work with than most desktop/ noncloud apps.‣ Testing • You don’t want to jeopardize your production data • See if there is a sandbox feature (Salesforce has one) • If not, create test accounts 51
  52. 52. The ‘Warcraft Effect’ Clouds are living entities that change when you’re not looking 52
  53. 53. Creating SaaS 53
  54. 54. Creating SaaS‣ In 2 years Cloud Infrastructure will be a commodity • It’ll be all about application development‣ Building an application for multiple users/customers‣ Things to pay attention to: • Reliability (one customer getting in the way of another) • Security (competitors seeing each other’s data) • Deployment • Maintenance 54
  55. 55. Multi-Tenancy evolutionSource: http://msdn.microsoft.com/en-us/library/aa479069.aspx 55
  56. 56. Multi-tenant Databases 56
  57. 57. Multi-tenant Databases 57
  58. 58. Things to think about‣ Privacy‣ Shared data‣ Collaboration‣ Interoperability‣ Vendor lock 58
  59. 59. Putting it all together Cloud Computing In Practice 59
  60. 60. A Hybrid IT Cloud 60
  61. 61. A Hybrid IT Cloud 61
  62. 62. SummaryIf you were sleeping, wake up now! 62
  63. 63. Summary‣ What is the Cloud? • The cloud = IaaS + PaaS + SaaS‣ If you have trouble remembering: • Cloud = Platform, Infrastructure & Software as a Service 63
  64. 64. Summary‣ With your next PHP application: • See if you can run it on a Cloud Platform • See if you can run parts on Cloud Infrastructure • See if you can use Software as a Service components • See if you can offer it as a service • Keep your architecture ‘cloud ready’‣ Think about clouds! • In a couple of years, we’ll all be doing it 64
  65. 65. Food for ThoughtLet’s leave you with something to think about 65
  66. 66. Food for ThoughtAre you worried about this? Cloud Cloud Provider Where’s my data?! 66
  67. 67. Food for ThoughtThen what about this? Financial System Bank Where’s my money?! Our money has been in the cloud since the 18th century! 67
  68. 68. http://www.egeniq.com info@egeniq.com @egeniqThank you! Questions? http://www.egeniq.com ivo@egeniq.com @ijansch
  69. 69. CreditsPictures used (under Creative Commons Attribution licenses)Cloud (slide 3): http://flickr.com/photos/kables/6324973/Cat + harddisk: http://flickr.com/photos/sirmildredpierce/42928070/ (adapted)Rubber Band Man: http://flickr.com/photos/thenovys/3791884189/Clipart used (royalty free and public domain) http://www.clker.com/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×