Skip to content

Instantly share code, notes, and snippets.

@tijsverkoyen
Last active March 22, 2017 13:24
Show Gist options
  • Save tijsverkoyen/4ce5229ed7aec132848944a7b9bef360 to your computer and use it in GitHub Desktop.
Save tijsverkoyen/4ce5229ed7aec132848944a7b9bef360 to your computer and use it in GitHub Desktop.

Deploy PHP apps

Requirements

  • Written in PHP
  • Rollbacks
  • Maintenance
  • Install vendors with Composer
  • Shared folders
  • Migrations (MySQL, PHP, Locale)
  • Hooks
  • Multiple stages

Tools

Questions

  • Why don't we look into Continuous Delivery? As when we push to production/staging it is deployed from within Gitlab?
  • Why don't we use symfony-commands? As in: php/app console deploy:staging?

Comparison

Git hooks

?

Pro:

  • It is what we use at this moment
  • Large community

Cons:

  • We use version 2, and this version isn't supported anymore, so we need to upgrade to v3.

Pro:

  • Written in PHP
  • Configuration happens in a single yml-file
  • Written on top of the Symfony-framework, so it integrates nicely

Cons:

  • Fairly new, exists since end 2016

Questions:

  • How is secret information stored?

As this is written in Python, I don't will consider this as a replacement for Capistrano.

Pro:

  • Written in PHP
  • System in place to store sensitive information

Cons:

  • A lot of extra files will be added in the repo
  • Seems to be tied to Laravel

Is written in Ruby, so I don't consider it as a replacement for Capistrano.

Is written in Ruby, so I don't consider it as a replacement for Capistrano.

Pro:

  • Written on top of Symfony/Console
  • Looks like it is a capistrano-clone

Cons:

  • Looks like it is a capistrano-clone

Pro:

Cons:

  • Looks "heavy"
  • Uses XML

Pro:

  • Written in PHP

Cons:

  • 1 maintainer

Same issue as Puppet

Puppet isn't a real deploy tool, it is more used to automate DevOps.

Grunt

?

Conclussion

...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment