SlideShare a Scribd company logo
1 of 72
Download to read offline
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  
with	
  Windows	
  Azure
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Who	
  ?
• Thomas	
  Rabaix	
  
– Software	
  Architect	
  @	
  
– Symfony	
  Expert	
  
– Sonata	
  Project	
  lead	
  dev	
  
– Social	
  
– https://github.com/rande	
  
– https://twitter.com/th0masr
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Why	
  ?!

MICROSOFT	
  AZURE
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Industrialisation
•
•
•
•
•

Respect	
  Standards	
  
Don’t	
  reinvent	
  the	
  wheel	
  
Create	
  a	
  valid	
  workflow	
  
Never	
  break	
  the	
  workflow	
  
Automate	
  the	
  workflow	
  
• Be	
  lazy
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

It’s	
  all	
  about	
  code

LIBRARIES
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Libraries
• Foundation	
  behind	
  projects	
  
• How	
  easy	
  a	
  library	
  can	
  be	
  reused	
  ?	
  
• How	
  easy	
  a	
  library	
  can	
  be	
  integrated	
  into	
  your	
  
project?
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

PHP	
  FIG

PHP	
  FRAMEWORK	
  INTEROP	
  GROUP
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Group	
  Members
• Agavi	
  ~	
  David	
  Zülke	
  (@dzuelke)	
  

• Laravel	
  ~	
  Taylor	
  Otwell	
  (@taylorotwell)	
  

• AWS	
  SDK	
  for	
  PHP	
  (Amazon	
  Web	
  Services)	
  ~	
  Michael	
  
Dowling	
  (@mtdowling)	
  

• Lithium	
  ~	
  Nate	
  Abele	
  (@nateabele)	
  

• Apache	
  log4php	
  ~	
  Ivan	
  Habunek	
  (@ihabunek)	
  

• phpBB	
  ~	
  Nils	
  Adermann	
  (@naderman)	
  

• Assetic	
  and	
  Buzz	
  ~	
  Kris	
  Wallsmith	
  (@kriswallsmith)	
  

• phpDocumentor	
  ~	
  Mike	
  van	
  Riel	
  (@mvriel)	
  

• Aura	
  Project	
  and	
  Solar	
  Framework	
  ~	
  Paul	
  M.	
  Jones	
  
(@pmjones)	
  

• PPI	
  Framework	
  ~	
  Paul	
  Dragoonis	
  (@dr4goonis)	
  

• CakePHP	
  ~	
  Larry	
  Masters	
  (@PhpNut)	
  

• PyroCMS	
  ~	
  Phil	
  Sturgeon	
  (@philsturgeon)	
  

• PEAR	
  ~	
  Brett	
  Bieber	
  (@saltybeagle)	
  

• Propel	
  ~	
  William	
  Durand	
  (@couac)	
  

• Composer	
  and	
  Packagist	
  ~	
  Jordi	
  Boggiano	
  (@seldaek)	
   • SabreDAV	
  ~	
  Evert	
  Pot	
  (@evertp)	
  
• Contao	
  Open	
  Source	
  CMS	
  ~	
  Leo	
  Feyer	
  (@leofeyer)	
  
• SugarCRM	
  ~	
  John	
  Mertic	
  (@jmertic)	
  
• Doctrine	
  ~	
  Guilherme	
  Blanco	
  (@guilhermeblanco)	
  
• Symfony2	
  ~	
  Bernhard	
  Schussek	
  (@webmozart)	
  
• Drupal	
  ~	
  Larry	
  Garfield	
  (@Crell)	
  

• eZ	
  Publish	
  ~	
  Andre	
  Romcke	
  (@andrerom)	
  
• TYPO3	
  Flow	
  ~	
  Karsten	
  Dambekalns	
  (@kdambekalns)	
  
• Jackalope	
  ~	
  Lukas	
  Kahwe	
  Smith	
  (@lsmith)	
  
• Joomla	
  ~	
  Don	
  Gilbert	
  (@dilbert4life)	
  

• The	
  community	
  at	
  large	
  ~	
  Cal	
  Evans	
  (@CalEvans)	
  
• Yii	
  framework	
  ~	
  Alexander	
  Makarov@sam_dark)	
  
• Zend	
  Framework	
  2	
  ~	
  Pádraic	
  Brady	
  (@padraicb)	
  
• Zikula	
  ~	
  Karma	
  Dordrak	
  (@zikuladrak)
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

PSR	
  #0	
  -­‐	
  Autoloading	
  Standard
• Are	
  you	
  still	
  using	
  include	
  in	
  your	
  project	
  ?	
  
• Defines	
  how	
  class	
  can	
  be	
  loaded	
  
• <Vendor Name>(<Namespace>)*<Class Name>
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

PSR	
  #1	
  /	
  #2	
  –	
  Coding	
  Standard
• Understanding	
  syntax	
  vs	
  understanding	
  code	
  
• Same	
  syntax	
  across	
  libraries
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

PSR	
  #3	
  –	
  LoggerInterface
• Every	
  projects	
  need	
  logs	
  
• Need	
  a	
  common	
  interface	
  to	
  write	
  log	
  
• You	
  don’t	
  want	
  to	
  write	
  a	
  wrapper	
  for	
  each	
  library
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Industrialisation
• Industrialisation	
  is	
  about	
  using	
  standards	
  
• Share	
  the	
  same	
  rules	
  	
  
• if	
  as	
  a	
  vendor	
  you	
  want	
  your	
  code	
  to	
  be	
  used	
  
• if	
  as	
  a	
  recruiter	
  want	
  new	
  people	
  to	
  get	
  into	
  a	
  
project	
  quickly
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

It’s	
  PHP	
  code	
  after	
  all

FRAMEWORKS	
  (AND	
  ALIKE)
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Select	
  your	
  own
•
•
•
•
•
•
•
•
•
•

Zend	
  Framework	
  
Laravel	
  
Symfony2	
  
Silex	
  
CakePHP	
  
CodeIgniter	
  
Wordpress	
  
Drupal	
  
ezPublish	
  
Insert	
  your	
  favorite	
  solution

14
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

A	
  revolution	
  in	
  the	
  PHP	
  world

COMPOSER
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Composer
• …	
  is	
  a	
  dependency	
  manager	
  tracking	
  local	
  
dependencies	
  of	
  your	
  projects	
  and	
  libraries.	
  
• …	
  is	
  2	
  years	
  old	
  only	
  
• …	
  is	
  a	
  revolution	
  in	
  the	
  PHP	
  world	
  	
  
– 18	
  894	
  packages	
  	
  
– 89	
  689	
  007	
  installed	
  packages	
  (since	
  2012-­‐04-­‐13)	
  
!

Default	
  definitions	
  available	
  on	
  packagist.org
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Composer
•
•
•
•
•

99%	
  of	
  packages	
  are	
  hosted	
  on	
  Github	
  
Github	
  has	
  downtime	
  or	
  rate	
  limits	
  
Repositories	
  can	
  disappear	
  
Need	
  speed	
  
Security	
  Policies	
  
!

• Mirror	
  Packagist's	
  definitions	
  and	
  Github’s	
  
repositories!	
  
https://github.com/ekino/php-­‐mirroring
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

23
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Running	
  the	
  code

PHP	
  ENVIRONMENTS
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Too	
  many	
  environments
• How	
  many	
  php	
  runtimes	
  do	
  you	
  have	
  ?	
  
– cli,	
  php-­‐cgi,	
  php-­‐fpm,	
  mod_php5,	
  hhvm	
  

• How	
  many	
  distributions	
  do	
  you	
  have	
  ?	
  
– Ubuntu,	
  debian,	
  redhat,	
  centos,	
  etc	
  ..	
  

• How	
  many	
  systems	
  are	
  required	
  by	
  the	
  project	
  ?	
  
– mysql,	
  memcached,	
  varnish,	
  mongodb,	
  etc	
  …	
  

• How	
  long	
  does	
  it	
  take	
  to	
  introduce	
  a	
  new	
  developer	
  
into	
  the	
  team	
  ?
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

virtual	
  development	
  environments

VAGRANT
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Vagrant
• Abstracted	
  layer	
  to	
  control	
  VM	
  
– VirtualBox,	
  VMWare,	
  and	
  many	
  more	
  

• Can	
  boot	
  any	
  kind	
  of	
  distribution	
  to	
  match	
  client	
  
requirements	
  
• Simple	
  configuration	
  file,	
  but	
  powerful	
  features
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Vagrantfile
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

vagrant up
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

• All	
  developers	
  can	
  now	
  use	
  the	
  same	
  distribution	
  
• This	
  is	
  not	
  enough	
  
– How	
  to	
  match	
  clients	
  system	
  requirements	
  ?	
  
– How	
  to	
  avoid	
  complex	
  setup	
  done	
  by	
  each	
  
developer	
  on	
  the	
  VM	
  ?
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Automate	
  your	
  infrastructure

PROVISIONING
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Provisioning
• Define	
  system	
  configuration	
  
• Apply	
  the	
  configuration	
  to	
  a	
  host	
  
• Ensure	
  quick	
  system	
  installation	
  
– Everything	
  is	
  in	
  the	
  code	
  
– Definitions	
  are	
  stored	
  in	
  your	
  git	
  repository
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Provisioning	
  :	
  Puppet
• Ruby	
  tools	
  
• A	
  node	
  is	
  a	
  host	
  in	
  your	
  infrastructure	
  
• Lots	
  of	
  modules	
  to	
  setup	
  system	
  
– 	
  apache,	
  apt,	
  composer,	
  concat,	
  exim,	
  java,	
  jenkins,	
  
memcached,	
  mysql,	
  nginx,	
  php,	
  redis,	
  resolver,	
  
ruby,	
  stdlib,	
  varnish,	
  wget,	
  and	
  many	
  more	
  …	
  
– https://forge.puppetlabs.com/
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Automate	
  developer’s	
  work

VAGRANT	
  +	
  PUPPET
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Vagrantfile
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

$ git clone git://mygit/myproject.git
$ cd myproject
$ vagrant up —provision *

* just wait a few minutes
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

40
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Is	
  my	
  code	
  working?	
  Are	
  the	
  client	
  requirements	
  	
  working?

QUALITY	
  ASSURANCE
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Unit	
  Tests
• Why	
  testing	
  ?	
  
• ensure	
  the	
  code	
  is	
  working	
  as	
  expected	
  
• allow	
  safe	
  refactoring	
  
• Test	
  one	
  class	
  or	
  one	
  function	
  
• Different	
  solutions	
  
• PHPUnit,	
  the	
  default	
  one	
  
• Atoum,	
  an	
  alternative	
  
• PHPSpec
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

43
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Functional	
  Tests
• Run	
  scenarios	
  depending	
  on	
  user’s	
  requirements	
  
• Check	
  if	
  classes	
  work	
  properly	
  together	
  
• Behat	
  +	
  Mink	
  
• Run	
  http	
  requests	
  on	
  the	
  web	
  application	
  
• Different	
  drivers:	
  Goutte,	
  Selenium,	
  Sahi,	
  Zombie
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

45
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Integration	
  Tests
• How	
  to	
  check	
  if	
  the	
  code	
  is	
  working	
  with	
  the	
  
infrastructure	
  …	
  
• Run	
  tests	
  against	
  the	
  new	
  release	
  
• Need	
  to	
  deploy	
  the	
  code	
  first	
  …
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Remote	
  multi-­‐server	
  automation	
  tool

CAPISTRANO
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

•
•
•
•

Deploy	
  code	
  into	
  remote	
  servers	
  
Task	
  can	
  be	
  run	
  in	
  parallel	
  on	
  different	
  remote	
  servers	
  
Task	
  definition	
  in	
  ruby	
  style	
  
Simple	
  commands,	
  but	
  powerful	
  options

48
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Azure
• Create	
  a	
  new	
  VM	
  for	
  the	
  integration	
  tests	
  
• For	
  now	
  Azure	
  VMs	
  are	
  not	
  puppet	
  ready	
  
– You	
  need	
  to	
  install	
  puppet	
  and	
  rubygems	
  
– But	
  you	
  can	
  create	
  your	
  own	
  vhd	
  image	
  
• We	
  create	
  a	
  sonata-­‐dev	
  instance
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

$

cap azure puppet deploy
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

A	
  continuous	
  integration	
  server

JENKINS
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Jenkins
• Continuous	
  integration	
  server	
  
• Run	
  tasks	
  and	
  publish	
  results	
  
– Can	
  be	
  used	
  with	
  many	
  testing	
  frameworks	
  
– Many	
  plugins

57
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe
Jenkins	
  Job
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Going	
  live

PRODUCTION

64
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Industrialisation
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

66
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

ls	
  -­‐lsa	
  /myawesomeproject/

FOLDER	
  STRUCTURE
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

68
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

Select	
  your	
  own	
  tools
 Industrialise	
  PHP	
  in	
  the	
  cloud	
  with	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  @	
  ZendCon	
  Europe

PHP	
  industrialisation	
  is	
  about	
  …
Respecting	
  Standards	
  
Reusing	
  tools	
  
Selecting	
  your	
  own	
  tools	
  
Creating	
  a	
  valid	
  workflow	
  
Automating	
  the	
  workflow
Questions	
  ?

71
Going	
  further	
  @	
  ZendCon
Vagrant,	
  puppet	
  &	
  chef	
  for	
  beginners	
  -­‐	
  Thijs	
  Fery	
  	
  
Compose	
  this!	
  -­‐	
  Matthew	
  Weier	
  O’Phinney	
  	
  
Phing	
  for	
  power	
  users	
  -­‐	
  Stephan	
  Hochdörfer	
  
Jenkins	
  entwined	
  with	
  deployment	
  and	
  pragmatism	
  -­‐	
  
Eric	
  Ritchie	
  	
  
• Beyond	
  PHP:	
  it	
  is	
  not	
  ( just)	
  about	
  the	
  code!	
  -­‐	
  Wim	
  
Godden	
  
• Essential	
  Git	
  for	
  Developers	
  -­‐	
  Adam	
  Culp	
  
•
•
•
•

72

More Related Content

What's hot

Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntfDd13.2013.milano.open ntf
Dd13.2013.milano.open ntfUlrich Krause
 
10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco projectSymphony Software Foundation
 
Developing Great Apps with Apache Cordova
Developing Great Apps with Apache CordovaDeveloping Great Apps with Apache Cordova
Developing Great Apps with Apache CordovaShekhar Gulati
 
Working effectively with OpenShift
Working effectively with OpenShiftWorking effectively with OpenShift
Working effectively with OpenShiftShekhar Gulati
 
Why Your Site is Slow: Performance Answers for Your Clients
Why Your Site is Slow: Performance Answers for Your ClientsWhy Your Site is Slow: Performance Answers for Your Clients
Why Your Site is Slow: Performance Answers for Your ClientsPantheon
 
Engage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-RedEngage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-RedPaul Withers
 
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...Fabrice Bernhard
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014Carlo Bonamico
 
Infrastructure as Data with Ansible
Infrastructure as Data with AnsibleInfrastructure as Data with Ansible
Infrastructure as Data with AnsibleCarlo Bonamico
 
Integrating Drupal 8 into Symfony 2
Integrating Drupal 8 into Symfony 2Integrating Drupal 8 into Symfony 2
Integrating Drupal 8 into Symfony 2Fabrice Bernhard
 
TiConf Australia 2013
TiConf Australia 2013TiConf Australia 2013
TiConf Australia 2013Jeff Haynie
 
UKLUG 2012 - XPages Extensibility API - going deep!
UKLUG 2012 - XPages Extensibility API - going deep!UKLUG 2012 - XPages Extensibility API - going deep!
UKLUG 2012 - XPages Extensibility API - going deep!René Winkelmeyer
 
Cross-platform Mobile Development on Open Source
Cross-platform Mobile Development on Open SourceCross-platform Mobile Development on Open Source
Cross-platform Mobile Development on Open SourceAll Things Open
 
Migrating to Git: Rethinking the Commit
Migrating to Git:  Rethinking the CommitMigrating to Git:  Rethinking the Commit
Migrating to Git: Rethinking the CommitKim Moir
 
Knative makes Developers Incredible on Serverless
Knative makes Developers Incredible on ServerlessKnative makes Developers Incredible on Serverless
Knative makes Developers Incredible on ServerlessDaniel Oh
 

What's hot (20)

Net core
Net coreNet core
Net core
 
Dd13.2013.milano.open ntf
Dd13.2013.milano.open ntfDd13.2013.milano.open ntf
Dd13.2013.milano.open ntf
 
10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project
 
Developing Great Apps with Apache Cordova
Developing Great Apps with Apache CordovaDeveloping Great Apps with Apache Cordova
Developing Great Apps with Apache Cordova
 
Working effectively with OpenShift
Working effectively with OpenShiftWorking effectively with OpenShift
Working effectively with OpenShift
 
Why Your Site is Slow: Performance Answers for Your Clients
Why Your Site is Slow: Performance Answers for Your ClientsWhy Your Site is Slow: Performance Answers for Your Clients
Why Your Site is Slow: Performance Answers for Your Clients
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Mini .net conf 2020
Mini .net conf 2020Mini .net conf 2020
Mini .net conf 2020
 
Engage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-RedEngage 2019: Introduction to Node-Red
Engage 2019: Introduction to Node-Red
 
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
Modernisation of legacy PHP applications using Symfony2 - PHP Northeast Confe...
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
 
Infrastructure as Data with Ansible
Infrastructure as Data with AnsibleInfrastructure as Data with Ansible
Infrastructure as Data with Ansible
 
Integrating Drupal 8 into Symfony 2
Integrating Drupal 8 into Symfony 2Integrating Drupal 8 into Symfony 2
Integrating Drupal 8 into Symfony 2
 
TiConf Australia 2013
TiConf Australia 2013TiConf Australia 2013
TiConf Australia 2013
 
UKLUG 2012 - XPages Extensibility API - going deep!
UKLUG 2012 - XPages Extensibility API - going deep!UKLUG 2012 - XPages Extensibility API - going deep!
UKLUG 2012 - XPages Extensibility API - going deep!
 
Cross-platform Mobile Development on Open Source
Cross-platform Mobile Development on Open SourceCross-platform Mobile Development on Open Source
Cross-platform Mobile Development on Open Source
 
Future of Grails
Future of GrailsFuture of Grails
Future of Grails
 
Drone CI
Drone CIDrone CI
Drone CI
 
Migrating to Git: Rethinking the Commit
Migrating to Git:  Rethinking the CommitMigrating to Git:  Rethinking the Commit
Migrating to Git: Rethinking the Commit
 
Knative makes Developers Incredible on Serverless
Knative makes Developers Incredible on ServerlessKnative makes Developers Incredible on Serverless
Knative makes Developers Incredible on Serverless
 

Viewers also liked

OOM m'a tuer - Devoxx France 2012
OOM m'a tuer - Devoxx France 2012OOM m'a tuer - Devoxx France 2012
OOM m'a tuer - Devoxx France 2012ekino
 
Se lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
Se lancer dans l'aventure microservices avec Spring Cloud - Julien RoySe lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
Se lancer dans l'aventure microservices avec Spring Cloud - Julien Royekino
 
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?ekino
 
Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+ekino
 
Le « RUN » (ou la Tierce Maintenance Applicative)
Le « RUN » (ou la Tierce Maintenance Applicative)Le « RUN » (ou la Tierce Maintenance Applicative)
Le « RUN » (ou la Tierce Maintenance Applicative)ekino
 
Responsive Web Design - Enjeux, Solutions, Méthodologie
Responsive Web Design - Enjeux, Solutions, MéthodologieResponsive Web Design - Enjeux, Solutions, Méthodologie
Responsive Web Design - Enjeux, Solutions, Méthodologieekino
 
Panorama des solutions mobile hybrides
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybridesekino
 

Viewers also liked (7)

OOM m'a tuer - Devoxx France 2012
OOM m'a tuer - Devoxx France 2012OOM m'a tuer - Devoxx France 2012
OOM m'a tuer - Devoxx France 2012
 
Se lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
Se lancer dans l'aventure microservices avec Spring Cloud - Julien RoySe lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
Se lancer dans l'aventure microservices avec Spring Cloud - Julien Roy
 
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?
 
Industrialisation PHP - Canal+
Industrialisation PHP - Canal+Industrialisation PHP - Canal+
Industrialisation PHP - Canal+
 
Le « RUN » (ou la Tierce Maintenance Applicative)
Le « RUN » (ou la Tierce Maintenance Applicative)Le « RUN » (ou la Tierce Maintenance Applicative)
Le « RUN » (ou la Tierce Maintenance Applicative)
 
Responsive Web Design - Enjeux, Solutions, Méthodologie
Responsive Web Design - Enjeux, Solutions, MéthodologieResponsive Web Design - Enjeux, Solutions, Méthodologie
Responsive Web Design - Enjeux, Solutions, Méthodologie
 
Panorama des solutions mobile hybrides
Panorama des solutions mobile hybridesPanorama des solutions mobile hybrides
Panorama des solutions mobile hybrides
 

Similar to Industrialise PHP in the Cloud with Azure

Neev Open Source Contributions
Neev Open Source ContributionsNeev Open Source Contributions
Neev Open Source ContributionsNeev Technologies
 
They why behind php frameworks
They why behind php frameworksThey why behind php frameworks
They why behind php frameworksKirk Madera
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UKRicard Clau
 
Composer | PHP Dependency Manager
Composer | PHP Dependency ManagerComposer | PHP Dependency Manager
Composer | PHP Dependency ManagerUjjwal Ojha
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSAWS Vietnam Community
 
Introduction to PHP - SDPHP
Introduction to PHP - SDPHPIntroduction to PHP - SDPHP
Introduction to PHP - SDPHPEric Johnson
 
PHP - Programming language war, does it matter
PHP - Programming language war, does it matterPHP - Programming language war, does it matter
PHP - Programming language war, does it matterMizno Kruge
 
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014FalafelSoftware
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformJeffrey T. Fritz
 
Introduction to Python GUI development with Delphi for Python - Part 1: Del...
Introduction to Python GUI development with Delphi for Python - Part 1:   Del...Introduction to Python GUI development with Delphi for Python - Part 1:   Del...
Introduction to Python GUI development with Delphi for Python - Part 1: Del...Embarcadero Technologies
 
Habitat Workshop at Velocity London 2017
Habitat Workshop at Velocity London 2017Habitat Workshop at Velocity London 2017
Habitat Workshop at Velocity London 2017Mandi Walls
 
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014Julio Bitencourt
 
Python the lingua franca of FEWS
Python the lingua franca of FEWSPython the lingua franca of FEWS
Python the lingua franca of FEWSLindsay Millard
 
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...IncQuery Labs
 
PHPKonf Istanbul 2016 - From development to production with Docker Datacenter
PHPKonf Istanbul 2016 - From development to production with Docker DatacenterPHPKonf Istanbul 2016 - From development to production with Docker Datacenter
PHPKonf Istanbul 2016 - From development to production with Docker DatacenterKiratech
 
Introduction to Zend framework Boilerplate
Introduction to Zend framework BoilerplateIntroduction to Zend framework Boilerplate
Introduction to Zend framework BoilerplateMichael Romer
 
Machine learning from software developers point of view
Machine learning from software developers point of viewMachine learning from software developers point of view
Machine learning from software developers point of viewPierre Paci
 

Similar to Industrialise PHP in the Cloud with Azure (20)

Neev Open Source Contributions
Neev Open Source ContributionsNeev Open Source Contributions
Neev Open Source Contributions
 
A Tale of Two Toolkits
A Tale of Two ToolkitsA Tale of Two Toolkits
A Tale of Two Toolkits
 
They why behind php frameworks
They why behind php frameworksThey why behind php frameworks
They why behind php frameworks
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UK
 
Composer | PHP Dependency Manager
Composer | PHP Dependency ManagerComposer | PHP Dependency Manager
Composer | PHP Dependency Manager
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
 
Introduction to PHP - SDPHP
Introduction to PHP - SDPHPIntroduction to PHP - SDPHP
Introduction to PHP - SDPHP
 
PHP - Programming language war, does it matter
PHP - Programming language war, does it matterPHP - Programming language war, does it matter
PHP - Programming language war, does it matter
 
Zend Code in ZF 2.0
Zend Code in ZF 2.0Zend Code in ZF 2.0
Zend Code in ZF 2.0
 
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
Introducing ASP.NET vNext – The Future of .NET on the Server | FalafelCON 2014
 
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platformIntroducing ASP.NET vNext - A tour of the new ASP.NET platform
Introducing ASP.NET vNext - A tour of the new ASP.NET platform
 
Introduction to Python GUI development with Delphi for Python - Part 1: Del...
Introduction to Python GUI development with Delphi for Python - Part 1:   Del...Introduction to Python GUI development with Delphi for Python - Part 1:   Del...
Introduction to Python GUI development with Delphi for Python - Part 1: Del...
 
Habitat Workshop at Velocity London 2017
Habitat Workshop at Velocity London 2017Habitat Workshop at Velocity London 2017
Habitat Workshop at Velocity London 2017
 
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
 
Getting started with PHP on IBM i
Getting started with PHP on IBM iGetting started with PHP on IBM i
Getting started with PHP on IBM i
 
Python the lingua franca of FEWS
Python the lingua franca of FEWSPython the lingua franca of FEWS
Python the lingua franca of FEWS
 
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...Lessons learned from building Eclipse-based add-ons for commercial modeling t...
Lessons learned from building Eclipse-based add-ons for commercial modeling t...
 
PHPKonf Istanbul 2016 - From development to production with Docker Datacenter
PHPKonf Istanbul 2016 - From development to production with Docker DatacenterPHPKonf Istanbul 2016 - From development to production with Docker Datacenter
PHPKonf Istanbul 2016 - From development to production with Docker Datacenter
 
Introduction to Zend framework Boilerplate
Introduction to Zend framework BoilerplateIntroduction to Zend framework Boilerplate
Introduction to Zend framework Boilerplate
 
Machine learning from software developers point of view
Machine learning from software developers point of viewMachine learning from software developers point of view
Machine learning from software developers point of view
 

More from ekino

Microbox : Ma toolbox microservices - Julien Roy
Microbox : Ma toolbox microservices - Julien RoyMicrobox : Ma toolbox microservices - Julien Roy
Microbox : Ma toolbox microservices - Julien Royekino
 
Spring data : Une api, quinze possibilités - Julien Roy
Spring data : Une api, quinze possibilités - Julien RoySpring data : Une api, quinze possibilités - Julien Roy
Spring data : Une api, quinze possibilités - Julien Royekino
 
Kinect pour les développeurs Web
Kinect pour les développeurs WebKinect pour les développeurs Web
Kinect pour les développeurs Webekino
 
Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ ekino
 
Expériencer les objets connectés
Expériencer les objets connectésExpériencer les objets connectés
Expériencer les objets connectésekino
 
Java GC - Pause tuning
Java GC - Pause tuningJava GC - Pause tuning
Java GC - Pause tuningekino
 
HTML5 vu par Ekino
HTML5 vu par EkinoHTML5 vu par Ekino
HTML5 vu par Ekinoekino
 

More from ekino (7)

Microbox : Ma toolbox microservices - Julien Roy
Microbox : Ma toolbox microservices - Julien RoyMicrobox : Ma toolbox microservices - Julien Roy
Microbox : Ma toolbox microservices - Julien Roy
 
Spring data : Une api, quinze possibilités - Julien Roy
Spring data : Une api, quinze possibilités - Julien RoySpring data : Une api, quinze possibilités - Julien Roy
Spring data : Une api, quinze possibilités - Julien Roy
 
Kinect pour les développeurs Web
Kinect pour les développeurs WebKinect pour les développeurs Web
Kinect pour les développeurs Web
 
Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+
 
Expériencer les objets connectés
Expériencer les objets connectésExpériencer les objets connectés
Expériencer les objets connectés
 
Java GC - Pause tuning
Java GC - Pause tuningJava GC - Pause tuning
Java GC - Pause tuning
 
HTML5 vu par Ekino
HTML5 vu par EkinoHTML5 vu par Ekino
HTML5 vu par Ekino
 

Recently uploaded

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 

Recently uploaded (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 

Industrialise PHP in the Cloud with Azure

  • 1.  Industrialise  PHP  in  the  cloud   with  Windows  Azure
  • 2.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Who  ? • Thomas  Rabaix   – Software  Architect  @   – Symfony  Expert   – Sonata  Project  lead  dev   – Social   – https://github.com/rande   – https://twitter.com/th0masr
  • 3.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Why  ?! MICROSOFT  AZURE
  • 4.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Industrialisation • • • • • Respect  Standards   Don’t  reinvent  the  wheel   Create  a  valid  workflow   Never  break  the  workflow   Automate  the  workflow   • Be  lazy
  • 5.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe It’s  all  about  code LIBRARIES
  • 6.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Libraries • Foundation  behind  projects   • How  easy  a  library  can  be  reused  ?   • How  easy  a  library  can  be  integrated  into  your   project?
  • 7.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe PHP  FIG PHP  FRAMEWORK  INTEROP  GROUP
  • 8.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Group  Members • Agavi  ~  David  Zülke  (@dzuelke)   • Laravel  ~  Taylor  Otwell  (@taylorotwell)   • AWS  SDK  for  PHP  (Amazon  Web  Services)  ~  Michael   Dowling  (@mtdowling)   • Lithium  ~  Nate  Abele  (@nateabele)   • Apache  log4php  ~  Ivan  Habunek  (@ihabunek)   • phpBB  ~  Nils  Adermann  (@naderman)   • Assetic  and  Buzz  ~  Kris  Wallsmith  (@kriswallsmith)   • phpDocumentor  ~  Mike  van  Riel  (@mvriel)   • Aura  Project  and  Solar  Framework  ~  Paul  M.  Jones   (@pmjones)   • PPI  Framework  ~  Paul  Dragoonis  (@dr4goonis)   • CakePHP  ~  Larry  Masters  (@PhpNut)   • PyroCMS  ~  Phil  Sturgeon  (@philsturgeon)   • PEAR  ~  Brett  Bieber  (@saltybeagle)   • Propel  ~  William  Durand  (@couac)   • Composer  and  Packagist  ~  Jordi  Boggiano  (@seldaek)   • SabreDAV  ~  Evert  Pot  (@evertp)   • Contao  Open  Source  CMS  ~  Leo  Feyer  (@leofeyer)   • SugarCRM  ~  John  Mertic  (@jmertic)   • Doctrine  ~  Guilherme  Blanco  (@guilhermeblanco)   • Symfony2  ~  Bernhard  Schussek  (@webmozart)   • Drupal  ~  Larry  Garfield  (@Crell)   • eZ  Publish  ~  Andre  Romcke  (@andrerom)   • TYPO3  Flow  ~  Karsten  Dambekalns  (@kdambekalns)   • Jackalope  ~  Lukas  Kahwe  Smith  (@lsmith)   • Joomla  ~  Don  Gilbert  (@dilbert4life)   • The  community  at  large  ~  Cal  Evans  (@CalEvans)   • Yii  framework  ~  Alexander  Makarov@sam_dark)   • Zend  Framework  2  ~  Pádraic  Brady  (@padraicb)   • Zikula  ~  Karma  Dordrak  (@zikuladrak)
  • 9.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe PSR  #0  -­‐  Autoloading  Standard • Are  you  still  using  include  in  your  project  ?   • Defines  how  class  can  be  loaded   • <Vendor Name>(<Namespace>)*<Class Name>
  • 10.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe PSR  #1  /  #2  –  Coding  Standard • Understanding  syntax  vs  understanding  code   • Same  syntax  across  libraries
  • 11.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe PSR  #3  –  LoggerInterface • Every  projects  need  logs   • Need  a  common  interface  to  write  log   • You  don’t  want  to  write  a  wrapper  for  each  library
  • 12.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Industrialisation • Industrialisation  is  about  using  standards   • Share  the  same  rules     • if  as  a  vendor  you  want  your  code  to  be  used   • if  as  a  recruiter  want  new  people  to  get  into  a   project  quickly
  • 13.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe It’s  PHP  code  after  all FRAMEWORKS  (AND  ALIKE)
  • 14.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Select  your  own • • • • • • • • • • Zend  Framework   Laravel   Symfony2   Silex   CakePHP   CodeIgniter   Wordpress   Drupal   ezPublish   Insert  your  favorite  solution 14
  • 15.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe A  revolution  in  the  PHP  world COMPOSER
  • 16.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Composer • …  is  a  dependency  manager  tracking  local   dependencies  of  your  projects  and  libraries.   • …  is  2  years  old  only   • …  is  a  revolution  in  the  PHP  world     – 18  894  packages     – 89  689  007  installed  packages  (since  2012-­‐04-­‐13)   ! Default  definitions  available  on  packagist.org
  • 17.
  • 18.
  • 19.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Composer • • • • • 99%  of  packages  are  hosted  on  Github   Github  has  downtime  or  rate  limits   Repositories  can  disappear   Need  speed   Security  Policies   ! • Mirror  Packagist's  definitions  and  Github’s   repositories!   https://github.com/ekino/php-­‐mirroring
  • 20.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe
  • 21.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe
  • 22.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe
  • 23.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe 23
  • 24.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Running  the  code PHP  ENVIRONMENTS
  • 25.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Too  many  environments • How  many  php  runtimes  do  you  have  ?   – cli,  php-­‐cgi,  php-­‐fpm,  mod_php5,  hhvm   • How  many  distributions  do  you  have  ?   – Ubuntu,  debian,  redhat,  centos,  etc  ..   • How  many  systems  are  required  by  the  project  ?   – mysql,  memcached,  varnish,  mongodb,  etc  …   • How  long  does  it  take  to  introduce  a  new  developer   into  the  team  ?
  • 26.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe virtual  development  environments VAGRANT
  • 27.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Vagrant • Abstracted  layer  to  control  VM   – VirtualBox,  VMWare,  and  many  more   • Can  boot  any  kind  of  distribution  to  match  client   requirements   • Simple  configuration  file,  but  powerful  features
  • 28.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Vagrantfile
  • 29.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe vagrant up
  • 30.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe • All  developers  can  now  use  the  same  distribution   • This  is  not  enough   – How  to  match  clients  system  requirements  ?   – How  to  avoid  complex  setup  done  by  each   developer  on  the  VM  ?
  • 31.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Automate  your  infrastructure PROVISIONING
  • 32.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Provisioning • Define  system  configuration   • Apply  the  configuration  to  a  host   • Ensure  quick  system  installation   – Everything  is  in  the  code   – Definitions  are  stored  in  your  git  repository
  • 33.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Provisioning  :  Puppet • Ruby  tools   • A  node  is  a  host  in  your  infrastructure   • Lots  of  modules  to  setup  system   –  apache,  apt,  composer,  concat,  exim,  java,  jenkins,   memcached,  mysql,  nginx,  php,  redis,  resolver,   ruby,  stdlib,  varnish,  wget,  and  many  more  …   – https://forge.puppetlabs.com/
  • 34.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe
  • 35.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe
  • 36.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe
  • 37.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Automate  developer’s  work VAGRANT  +  PUPPET
  • 38.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Vagrantfile
  • 39.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe $ git clone git://mygit/myproject.git $ cd myproject $ vagrant up —provision * * just wait a few minutes
  • 40.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe 40
  • 41.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Is  my  code  working?  Are  the  client  requirements    working? QUALITY  ASSURANCE
  • 42.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Unit  Tests • Why  testing  ?   • ensure  the  code  is  working  as  expected   • allow  safe  refactoring   • Test  one  class  or  one  function   • Different  solutions   • PHPUnit,  the  default  one   • Atoum,  an  alternative   • PHPSpec
  • 43.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe 43
  • 44.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Functional  Tests • Run  scenarios  depending  on  user’s  requirements   • Check  if  classes  work  properly  together   • Behat  +  Mink   • Run  http  requests  on  the  web  application   • Different  drivers:  Goutte,  Selenium,  Sahi,  Zombie
  • 45.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe 45
  • 46.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Integration  Tests • How  to  check  if  the  code  is  working  with  the   infrastructure  …   • Run  tests  against  the  new  release   • Need  to  deploy  the  code  first  …
  • 47.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Remote  multi-­‐server  automation  tool CAPISTRANO
  • 48.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe • • • • Deploy  code  into  remote  servers   Task  can  be  run  in  parallel  on  different  remote  servers   Task  definition  in  ruby  style   Simple  commands,  but  powerful  options 48
  • 49.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe
  • 50.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe
  • 51.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Azure • Create  a  new  VM  for  the  integration  tests   • For  now  Azure  VMs  are  not  puppet  ready   – You  need  to  install  puppet  and  rubygems   – But  you  can  create  your  own  vhd  image   • We  create  a  sonata-­‐dev  instance
  • 52.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe
  • 53.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe
  • 54.
  • 55.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe $ cap azure puppet deploy
  • 56.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe A  continuous  integration  server JENKINS
  • 57.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Jenkins • Continuous  integration  server   • Run  tasks  and  publish  results   – Can  be  used  with  many  testing  frameworks   – Many  plugins 57
  • 58.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe
  • 59.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe
  • 60.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe
  • 62.
  • 63.
  • 64.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Going  live PRODUCTION 64
  • 65.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Industrialisation
  • 66.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe 66
  • 67.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe ls  -­‐lsa  /myawesomeproject/ FOLDER  STRUCTURE
  • 68.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe 68
  • 69.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe Select  your  own  tools
  • 70.  Industrialise  PHP  in  the  cloud  with                                                                    @  ZendCon  Europe PHP  industrialisation  is  about  … Respecting  Standards   Reusing  tools   Selecting  your  own  tools   Creating  a  valid  workflow   Automating  the  workflow
  • 72. Going  further  @  ZendCon Vagrant,  puppet  &  chef  for  beginners  -­‐  Thijs  Fery     Compose  this!  -­‐  Matthew  Weier  O’Phinney     Phing  for  power  users  -­‐  Stephan  Hochdörfer   Jenkins  entwined  with  deployment  and  pragmatism  -­‐   Eric  Ritchie     • Beyond  PHP:  it  is  not  ( just)  about  the  code!  -­‐  Wim   Godden   • Essential  Git  for  Developers  -­‐  Adam  Culp   • • • • 72