PHP and the Cloud: The view from the bazaar

2,514 views

Published on

This is used in my talk at MOSC 2010, GeekCamp Singapore 2010 and the Singapore PHP Meetup of July 2010.

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

  • Be the first to like this

No Downloads
Views
Total views
2,514
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

PHP and the Cloud: The view from the bazaar

  1. 1. PHP and the Cloud The view from the bazaar Vito Chin June 2010
  2. 2. About Me• Vito Chin• Software Engineer – Consultancy – Projects – Training, audits• Open­source: – Gmagick PHP Extension• Book – php|architects Guide to PHP in the Cloud 2
  3. 3. About this talk• Branch of Ivo Janschs original “PHP and  the Cloud”• Co­author of php|architects Guide to PHP  in the Cloud• This talk focuses on available open­source  tools within PHP; in extensions and in  userland. 3
  4. 4. PHP• Standing on the shoulders of open­source  giants: 4
  5. 5. PHP• Used by many 5
  6. 6. Cloud 6
  7. 7. Cloud• Gartners Hype Cycle 7
  8. 8. Cloud• Gartners Hype Cycle 8
  9. 9. Cloud“Cloud computing is a model for enabling convenient, on­demand     network access to a shared pool of configurable computing    resources (e.g., networks, servers, storage, applications, and services) 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.” http://csrc.nist.gov/groups/SNS/cloud­computing/ 9
  10. 10. Cloud“Cloud computing is a model for enabling convenient, on­demand     network access to a shared pool of configurable computing    resources (e.g., networks, servers, storage, applications, and services) 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.” http://csrc.nist.gov/groups/SNS/cloud­computing/ 10
  11. 11. PHP and the Cloud• Convenient network access – CURL extension • Connect and communicate to many different types of  servers • http, https, ftp, gopher, telnet, dict, file, and ldap  protocols • Most prevalent within the cloud: HTTP • RESTful services (POST, GET, PUT, DELETE) 11
  12. 12. PHP and the Cloud• Convenient network access – CURL extension $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,"http://api.cloudphp.net/"); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $content = curl_exec($ch); curl_close($ch); 12
  13. 13. PHP and the Cloud• Convenient network access – SOAP extension • SoapClient, SoapServer • Simple Object Access Protocol • WSDL: Web Services Description Language$hello = new SoapClient("http://api.cloudphp.net/Hello.wsdl");$hello->sayHello("world"); 13
  14. 14. Cloud“Cloud computing is a model for enabling convenient, on­demand     network access to a shared pool of configurable computing    resources (e.g., networks, servers, storage, applications, and services) 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.” http://csrc.nist.gov/groups/SNS/cloud­computing/ 14
  15. 15. PHP and the Cloud• Configurable computing resources – Usually, requests sent as POST – Obtain options available – XML with SimpleXML or DOM extension <?xml version="1.0" encoding="UTF-8"?> <books> <book title="PHP in the Cloud" pages="100" /> </books> $xml = simplexml_load_string($content); $title = $xml->book["title"]; $title = $xml->book["pages"]; 15
  16. 16. PHP and the Cloud• Configurable computing resources – JSON extension – json_encode() / json_decode() – Javascript Object Notation – Very popular interchange format: • More compact • Interpret­able by Javascript • AJAX requests 16
  17. 17. PHP and the Cloud• Configurable computing resources – JSON extension { "book":{ "title":"PHP in the Cloud", "pages":"100" } } $json = json_decode($jcontent); echo $json->book->title; echo $json->book->pages; 17
  18. 18. Cloud service models• NIST states 3: – Infrastructure as a Service – Platform as a Service – Software as a Service 18
  19. 19. Infrastructure as a Service• Typically VM instances• Choice of OS• Freedom within the OS• Some custom network features• Instances controlled via API• Specialised or custom Machine Images 19
  20. 20. Infrastructure as a Service• Publicly available examples: – Amazon Elastic Compute Cloud – Rackspace Cloud Servers – Microsoft Azure• PHP API provided by each vendor• Open source PHP alternatives are abundant  (and sometimes better!) 20
  21. 21. PHP and IaaS scenario• Bottlenecks: The IaaS cloud is not a silver  bullet 21
  22. 22. PHP and IaaS scenario• Identifying bottlenecks (xdebug) 22
  23. 23. PHP and IaaS scenario• Bottleneck resolution 23
  24. 24. PHP and IaaS scenario• Cloud Advantages: – Low­cost scalability • Economies of scale • Capital expense to  • operational expense – Utility­like flexibility 24
  25. 25. Platform as a Service• A platform to deploy your application• Scales up and down automatically• Convenient tools and services – Memcache – Mail – Image Processing – Authentication & Authorisation – Task queues 25
  26. 26. PHP and Google AppEngine• Range of scalable services• Officially support only: 26
  27. 27. PHP and Google AppEngine• PHP developers are not really missing out  on features on the GAE.• The question to ask: How important is  Googles scalability to your application? ? 27
  28. 28. PHP and Google AppEngine• Pseudo­PHP via Quercus – Java implementation – Needs to keep up with PHP changes 28
  29. 29. PHP and Google AppEngine• Pseudo­PHP via Quercus – Lacks community involvement: • PHP core and PECL community consists of a large  band of contributors from around the world • Open­source solutions provided by the community  (such as extensions) are well embraced • Many extensions not available 29
  30. 30. PHP and Rackspace Sites• PHP support (but not too perfect)• Automatic scalability• Virtual local storage routed to Cloud files 30
  31. 31. PHP and Rackspace Sites• Downside: – No instant control over supported version – Unsuitable for custom requirements • No shell access • Not able to build custom libraries  – No API 31
  32. 32. Software as a Service• GUI and API Almost always: – Google Apps “There is a PHP wrapper for that” – Salesforce – Twitter – Google Maps – Google Search• API Only: PayflowPro  32
  33. 33. PHP for SaaS• PHPs Bread and Butter• Architectural considerations• Multi­tenancy• Be careful: – Reliability – Security – Deployment – Maintenance 33
  34. 34. PHP for the Cloud• Compatible philosophies – Not a binary Fort X 34
  35. 35. PHP for the Cloud• Compatible philosophies – The Unix Philosophy: Write programs that do  one thing and do it well. Write programs to  work together. Write programs to handle text  streams, because that is a universal interface. 35
  36. 36. What PHP is?• Do one thing and do it well – An easier interface (wrapper) to C (and other)  libraries“Rails is like a rounded rectangle and PHP is like a ball of nails.” Terry Chay 36
  37. 37. What PHP is?• Work together  – Extensions • Gmagick  → GraphicsMagick • CURL  →  libcurl • memcached  →  libmemcached • See pecl.php.net – Web servers • httpd – Browsers and UIs (e.g. GTK) 37
  38. 38. Credits and sources Photos and Images Gartners Hype Cycle illustrative diagram on slide 7 & 8 by Jeremy Kemp on Wikipedia Trees on slide 18 by Gerald_G on http://www.openclipart.org/ Cachegrind generated 22 from xdebug (by Derick Rethans) used to generate visualisation  created with xdebugtoolkit and dot Rack on slide 28 by Steve Jurvetson. Source: http://flickr.com/photos/jurvetson/157722937/ Fort on slide 34 by Jan F. on Wikipedia UNIX License plate on slide 35 from http://www.unix.org/ Old images on slide 28, 30, 33 from http://www.oldbookillustrations.com All other organisational logos are trademark of the respective organisations 38
  39. 39. Questions? 39

×