Building a Cloud-based Social Network with Zend Framework and Doctrine 2

Post on 31-Oct-2014

8091 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

Transcript

© 2011 Mayflower GmbH

Thorsten Rinne I 11th October 2011

Building a Cloud-based Social Network with Zend Framework and Doctrine 2

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Team LeadScrum MasterHead of Open Source Labs

@ThorstenRinne2

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Last year a new customer came up with an idea...

3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

A Social Network!

4

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

A Social Network?

5

for friends.Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 6

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 7

for business.

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 8

for videos.

for photos.Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 9

for real estate?Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 10

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

The idea:Connect people, buildings

and businesses.

11

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 12

Business

People

Building

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 12

Business

People

Building

... is living at ...

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 12

Business

People

Building

... is living at ...... is the home of ...

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 12

Business

People

Building

... is an employee of ...... is living at ...... is the home of ...

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 12

Business

People

Building

... is an employee of ...... is living at ...... is the home of ...

... has as employee ...

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 12

Business

People

Building

... is an employee of ...... is living at ...

... has its office at ...

... is the home of ...

... has as employee ...

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 12

Business

People

Building

... is an employee of ...... is living at ...

... has its office at ...

... is the home of ...

... has as employee ...

... is the office location of ...

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

We thought:Nice idea, let‘s start!

13

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

4 Requirements

14

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

1Agile software

development with Scrum

15

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 16

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

1 product owner (customer)

16

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

1 product owner (customer)

16

1 scrum master (myself)

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

1 product owner (customer)

16

1 scrum master (myself)1 development team

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Scrum

CancelGift wrap

Return

Productbacklog

17

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Scrum

CancelGift wrap

Return

Sprint2 weeks

Productbacklog

17

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Scrum

CancelGift wrap

Sprint2 weeks

Return

Sprint goal

Productbacklog

17

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Scrum

CancelGift wrap

Sprint2 weeks

Return

Sprint goal

Sprint backlog

Productbacklog

17

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Scrum

CancelGift wrap

Sprint2 weeks

Return

Sprint goal

Sprint backlog

Potentially shippableproduct increment

Productbacklog

17

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Scrum

CancelGift wrap

Sprint2 weeks

Return

Sprint goal

Sprint backlog

Potentially shippableproduct increment

Productbacklog

Coupons

17

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Scrum

Sprint2 weeks

Return

Sprint goal

Sprint backlog

Potentially shippableproduct increment

Productbacklog

Gift wrapCoupons

Cancel

17

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Scrum

Sprint2 weeks

Return

Sprint goal

Sprint backlog

Potentially shippableproduct increment

Productbacklog

Gift wrapCoupons

Cancel

24 hours

17

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

2Scalability

18

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Classic web architecture

19

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 20

Browser

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 20

Appserver 1 Appserver 2

Browser

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 20

Appserver 1 Appserver 2

DB SlaveDB Master

Browser

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

We built a simple, scalable n-tier architecture.

21

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Frontend NodesBackend Nodes

22

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Frontend Nodes don‘t save anything. Never.

23

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Backend Nodes can be sharded and/or clustered.

24

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

The solution?The cloud.

25

http://www.flickr.com/photos/nirak/644337888/

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 26

http://www.flickr.com/photos/nirak/644337888/

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

3Simplicity

27

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Automate as much as possible

28

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

No new fancy things like Scala, node.js or MongoDB.

29

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 30

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

4Extensibility

31

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Lean StartupWe can kick/create new

features all the time

32

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Lean StartupDecoupled modules and

classes

33

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Architecture

34

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 35

Frontnode 1Varnish nginx

PHP 5.3

Frontnode 2Varnish nginx

PHP 5.3

Backendnode 3RabbitMQ

Apache SolrPHP 5.3

Backendnode 2MySQL Slave

MogileFSMemcached

PHP 5.3

Backendnode 1MySQL Master

MogileFSMemcached

PHP 5.3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Is this scalable?

36

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 37

Frontnode 1Varnish nginx

PHP 5.3

Frontnode 2Varnish nginx

PHP 5.3

Backendnode 3RabbitMQ

Apache SolrPHP 5.3

Backendnode 2MySQL Slave

MogileFSMemcached

PHP 5.3

Backendnode 1MySQL Master

MogileFSMemcached

PHP 5.3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 38

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 39

3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 40

3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 40

3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 40

3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 40

3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 40

3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 40

3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 40

3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 40

3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 40

3

Multiple Frontnodes

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 40

3

Multiple Frontnodes

Backend Sharding

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Infrastructure

41

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

One Ubuntu package to rule them all.

42

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Development VMsJenkins CI ServerSelenium Server

Monitoring ServerTesting Server

43

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Only on production:Frontend Nodes 11.04

Backend Nodes 10.04 LTS

44

http://www.flickr.com/photos/nirak/644337888/

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 45

☁☁ ☁

Mayflower DMZ

Eucalyptus Cloud

amazon AWS

http://www.flickr.com/photos/nirak/644337888/

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 46

☁☁ ☁

Mayflower DMZ

Eucalyptus Cloud

amazon AWSDeveloper Laptopwith Ubuntu VM

(Git repo + completesoftware stack)

http://www.flickr.com/photos/nirak/644337888/

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 47

☁☁ ☁

Mayflower DMZ

Eucalyptus Cloud

amazon AWSGitorious ServerJenkins CI Server

Puppet MasterSelenium Server

http://www.flickr.com/photos/nirak/644337888/

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 48

☁☁ ☁

Mayflower DMZ

Eucalyptus Cloud

amazon AWS

2 Frontnodes3 Backendnodes

Development MonitorStaging Monitor

http://www.flickr.com/photos/nirak/644337888/

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 49

☁☁ ☁

Mayflower DMZ

Eucalyptus Cloud

amazon AWS2 Frontnodes2 Backendnodes

DrupalLive Monitor

http://www.flickr.com/photos/nirak/644337888/

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 50

Configuration Management done with

http://www.flickr.com/photos/nirak/644337888/

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 51

Configuration changes are on every VM in 5 Minutes.

#WIN

http://www.flickr.com/photos/nirak/644337888/

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Application

52

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Do you remember?

53

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 54

Frontend 1Varnish nginx

PHP 5.3

Frontend 2Varnish nginx

PHP 5.3

Backendnode 3RabbitMQ

Apache SolrPHP 5.3

Backendnode 2MySQL Slave

MogileFSMemcached

PHP 5.3

Backendnode 1MySQL Master

MogileFSMemcached

PHP 5.3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 55

Backendnode 3RabbitMQ

Apache SolrPHP 5.3

Backendnode 2MySQL Slave

MogileFSMemcached

PHP 5.3

Backendnode 1MySQL Master

MogileFSMemcached

PHP 5.3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 55

Backendnode 3RabbitMQ

Apache SolrPHP 5.3Backendnode 2MySQL Slave

MogileFSMemcached

PHP 5.3

Backendnode 1MySQL Master

MogileFSMemcached

PHP 5.3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 56

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Various transformations such as lowercasing, removing plurals, or stemming to increase relevancy.

57

Apache Solr XML REST API

ProfilesDE

Lucene Core

ProfilesEN

Lucene Core

Profilesi18n

Lucene Core

Autosuggest

Lucene Core

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Search queries tokenized with a LL(1) Parser

implemented in PHP.58

Search string: „mapolis“

LL(1) parser

„q=mapolis&sort=name desc&fl=name,id,country“

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Indexing is done with asynchronous jobs with

RabbitMQ.59

MySQL ApacheSolr

Profile informationautosuggestions

user generated content

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 60

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Why do we need a message broker?

61

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Example:Editing your profile

62

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 63

PHPApplication QueueExchange PHP CLI

Script

Publish Routes Consumes

MySQL ApacheSolr

sync

async

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Why RabbitMQ?

64

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 65

Backendnode 3RabbitMQ

Apache SolrPHP 5.3

Backendnode 2MySQL Slave

MogileFSMemcached

PHP 5.3

Backendnode 1MySQL Master

MogileFSMemcached

PHP 5.3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 65

Backendnode 3RabbitMQ

Apache SolrPHP 5.3

Backendnode 2MySQL Slave

MogileFSMemcached

PHP 5.3

Backendnode 1MySQL Master

MogileFSMemcached

PHP 5.3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

MogileFSan open source distributed filesystem

66

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Application levelNo single point of failureAutomatic file replicationShared nothing architectureLocal filesystem agnostic

67

Storage Nodes(mogstored)

Storage Nodes(mogstored)

Trackers(mogilefsd)Trackers

(mogilefsd)

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 68

Client(API: Perl)

Trackers(mogilefsd)

Storage Nodes(mogstored)

Tracker‘s database(MySQL)

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 69

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 70

Application

Host 1 Host 2

MySQLMaster

MySQLSlave

Replication

R/W

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 70

Application

Host 1 Host 2

MySQLMaster

MySQLSlave

Keepalive

Replication

R/WW

R

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Some notes on our database architecture.

71

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

We use MySQL as key/value storage.

72

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

We implemented all relations in the application.

73

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

We already prepared the database design for sharding

74

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Benefits:Very simple, scalable and

flexible architecture

75

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Drawbacks:More complexity in the

PHP code. But that‘s okay.

76

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 77

Frontend 1Varnish nginx

PHP 5.3

Frontend 2Varnish nginx

PHP 5.3

Backendnode 3RabbitMQ

Apache SolrPHP 5.3

Backendnode 2MySQL Slave

MogileFSMemcached

PHP 5.3

Backendnode 1MySQL Master

MogileFSMemcached

PHP 5.3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 78

Frontend 1Varnish nginx

PHP 5.3

Frontend 2Varnish nginx

PHP 5.3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 78

Frontend 1Varnish nginx

PHP 5.3

Frontend 2Varnish nginx

PHP 5.3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 79

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Doctrine 2is a data-mapper,not ActiveRecord.

80

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

We use Doctrine 2 as ORM.And we think it‘s great.

81

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

ORM with Doctrine 2

82

/** * @Entity * @Table(name="role") * */class Mapolis_Entity_Role{ /** * @Id * @Column(name="id", type="integer") * @generatedValue(strategy="IDENTITY") */ protected $_roleId;

/** * @Column(name="parent_id", type="integer") * @var int */ protected $_parentId;

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Working with objects

83

/** * Saves the personal interests of user. * * @param Mapolis_Entity_Person $profile * * @return void */public function savePersonalInterests( Mapolis_Entity_Person $profile){ $this->getManager() ->getRepository(self::ENTITY_PERSON) ->update($profile);}

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 84

★ Transactional write-behind (batch writes)★ Very fast for small UnitOfWorks

Working with objects/** * Deletes a building. * * @param Mapolis_Entity_Building $building * * @return boolean */ public function deleteBuilding($building) { $this->getManager()->remove($building); return $this->getManager()->flush(); }

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 85

Working with objects/** * Show recent invitations * * @return array of $count recent invitations */public function recent($inviter, $count = 5){ $invitations = $this->getManager() ->getRepository(self::ENTITY_INVITATION) ->findBy( array('_inviterId' => $inviter), array('_modified' => 'DESC'), $count ); return $invitations;}

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 86

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Why did we choose Zend Framework?

87

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

60 colleagues using Zend Framework in other projects.

88

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

We use Zend Framework more like a component

library.

89

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

We use Doctrine 2 instead of Zend_Db_Table.

90

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

We built our own Autoloader.

91

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

What did we use fromZend Framework?

92

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Zend_ApplicationZend_Controller

Zend_ViewZend_Validate

Zend_TranslationZend_LocaleZend_Cache

93

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 94

Frontnode 1Varnish nginx

PHP 5.3

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

PHP 5.3 from Ubuntu 11.04

95

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 96

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 97

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

HTTP Request

98

mapolis Core

mapolis Drupal

nginx on port 81 nginx on port 81

Varnish HTTP accelerator

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

HTTP Request

98

mapolis Core

mapolis Drupal

nginx on port 81 nginx on port 81

Varnish HTTP accelerator

GET mapolis.com 80

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

HTTP Request

98

mapolis Core

mapolis Drupal

nginx on port 81 nginx on port 81

Varnish HTTP accelerator

GET mapolis.com 80

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

HTTP Request

98

mapolis Core

mapolis Drupal

nginx on port 81 nginx on port 81

Varnish HTTP accelerator

GET mapolis.com 80

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

HTTP Request

99

mapolis Core

mapolis Drupal

nginx on port 81 nginx on port 81

Varnish HTTP accelerator

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

HTTP Request

99

mapolis Core

mapolis Drupal

nginx on port 81 nginx on port 81

Varnish HTTP accelerator

GET mapolis.com/de/start 80

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

HTTP Request

99

mapolis Core

mapolis Drupal

nginx on port 81 nginx on port 81

Varnish HTTP accelerator

GET mapolis.com/de/start 80

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

HTTP Request

99

mapolis Core

mapolis Drupal

nginx on port 81 nginx on port 81

Varnish HTTP accelerator

GET mapolis.com/de/start 80

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Frontend

100

⊕Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 101

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 102

JavaScript Framework

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 103

Supported browsers

789

(10)

3.67

(latest)

14(latest)

5.05.1

(latest)(iOS)

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Development

104

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

The Team:1 Scrum Master

2 DevOps4 PHP/JS Developers1 Frontend Developer

105

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Development Tools

106

Used IDE:Zend Studio, PhpStorm, vi and Textmate

Database change management:Liquibase

CSS helper:SASS / Compass

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Development LaptopUbuntu VM withLocal Git repo

Complete software stack

ant <everything>107

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Some ant commands

108

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Some ant commands

108

$ ant db-development

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Some ant commands

108

$ ant db-development

$ ant sync

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Some ant commands

108

$ ant db-development

$ ant sync

$ ant phpunit

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Some ant commands

108

$ ant db-development

$ ant sync

$ ant phpunit

$ ant jslint

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Some ant commands

108

$ ant db-development

$ ant sync

$ ant phpunit

$ ant jslint

$ ant deb

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Some ant commands

108

$ ant db-development

$ ant sync

$ ant phpunit

$ ant jslint

$ ant deb

$ ant build-vm

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Typical commit workflow

109

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Typical commit workflow

109

$ vi Foo.php$ ant phpunit$ ant jslint$ git add Foo.php$ git commit -m ”Bar”$ git pull$ git push

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

<target name="phpunit" depends="db-test" description="Run all tests"> <exec executable="phpunit" failonerror="true"> <arg line="--configuration ${basedir}/tests/phpunit-verbose.xml ${basedir}/tests/AllTests.php" /> </exec></target>

110

ant phpunit

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

One click deployment111

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

And how does it look now?

112

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I 113

Building a Cloud-based social network I Mayflower GmbH I 11th October 2011 I

Questions?

114

Thank you very much!

© 2011 Mayflower GmbH

Contact Thorsten Rinnethorsten.rinne@mayflower.de+49 89 242054-31@ThorstenRinne

Mayflower GmbHMannhardtstr. 680538 MünchenGermany

Please rate me @ http://joind.in/talk/view/3884

top related