Php Development In The Cloud

Post on 14-Jun-2015

4.711 views 0 download

Tags:

description

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.

Transcript of Php Development In The Cloud

http://www.egeniq.cominfo@egeniq.com

@egeniq

February 2011Ivo Jansch

PHP Development In The Cloud

Contents

WARNING

This is not Yet Another “Store files on Amazon S3” talk.

2

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 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

NIST: Five Characteristics

Things that are considered cloud:

‣ On-demand, self-service

‣ Broad network access

‣ Resource pooling

‣ Rapid elasticity

‣ Measured service

9

NIST: Three Service Models

Cloud applications are:

‣ Software as a Service

‣ Platform as a Service

‣ Infrastructure as a Service

10

NIST: Four Deployment Models

‣ Private cloud

‣ Community cloud

‣ Public cloud

‣ Hybrid cloud

11

Infrastructure as a Service

12

Standard layers in a typical application:

Application Layers

13

Network

Hardware

Operating System

Storage

System Software

Application

Infrastructure as a Service

Parts of the infrastructure offered as service to your app:

14

Network

Hardware

Operating System

Storage

System Software

Application

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

Infrastructure as a Service

16

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

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

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• Easy to set up multiple clusters

21

Example: Terremark’s Infinicloud

22

Terremark’s InfiniCloud

23

IaaS Architecture Prepare 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

• Files

25

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

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 flexibility

• Save development time

• No need to learn different APIs

• Promotes competition between providers

31

Abstraction

‣ Zend’s SimpleCloud• http://simplecloud.org

• Good attempt at generic cloud abstraction

32

Characteristics Of Your Application

‣ Service oriented

‣ Stateless

‣ Low coupling

‣ Modularity

‣ Interoperability

33

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

Platform as a Service

35

Complete platform offered as a service:

Platform as a Service

36

Network

Hardware

Operating System

Storage

System Software

Application

Platform as a Service

‣ Platform scales up and down as necessary

‣ Same pitfalls and advantages as IaaS, plus:• Don’t worry about scalability

37

Platform as a Service

38

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

The Rackspace Cloud ‘Sites’

40

Rackspace’s TrueHybrid

‣ Platform selects the best operating system for your site

‣ Magically blends Windows and Linux, ASP.NET and PHP

41

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

Software as a Service

43

Software as a Service

Everything in the cloud:

44

Network

Hardware

Operating System

Storage

System Software

Application

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

Software as a Service

46

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

Example: Salesforce

48

Source adapted from tutorial at http://www.mikesimonds.com

Example: Google Apps

‣ Many features available through Zend_Gdata_* in ZF• Information retrieval

• Document storage

• Calendering

• Account Configuration

49

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 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

The ‘Warcraft Effect’

Clouds are living entities that change when you’re not looking

52

Creating SaaS

53

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

Multi-Tenancy evolution

Source: http://msdn.microsoft.com/en-us/library/aa479069.aspx

55

Multi-tenant Databases

56

Multi-tenant Databases

57

Things to think about

‣ Privacy

‣ Shared data

‣ Collaboration

‣ Interoperability

‣ Vendor lock

58

Putting it all togetherCloud 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, Infrastructure & Software as a Service

63

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

Food for ThoughtLet’s leave you with something to think about

65

Food for Thought

Are you worried about this?

66

Cloud

Where’s my data?!

Cloud Provider

Food for Thought

Then what about this?

67

Financial System

Where’s my money?!

Bank

Our money has been in the cloud since the 18th century!

Thank you! Questions?

http://www.egeniq.cominfo@egeniq.com

@egeniq

http://www.egeniq.comivo@egeniq.com

@ijansch

Credits

Pictures 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/