Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Deployments: from dreaded to delightful

F8176f011f107f24e070427747c04907?s=47 Ryan King
November 01, 2015

Deployments: from dreaded to delightful

Slow FTP uploads… database merging nightmares… constant struggles keeping content in-line…

I knew there had to be a better way. I went on a mission to find the ultimate development and deployment setup. Thankfully there are tons of options out there now (Vagrant, Docker, Capistrano, Ansible, etc) — but it’s still tricky getting them up and running smoothly. Save yourself hours of exploring tools and technologies by learning from my successes and failures. I will present a brief overview of the current state of deployment tools and then walk you through two of my favorites, followed by an open discussion for individuals to share what works well for them and ideas on best practices for the WP community.


Ryan King

November 01, 2015

More Decks by Ryan King

Other Decks in Technology


  1. DEPLOYMENTS from Dreaded to Delightful Ryan King @ryancanhelpyou

  2. @ryancanhelpyou #WCNYC • Database transfers • Large files • Keeping

    everything in sync • Domains / URL structure • WP config settings • Different dev + production environments • FTP craziness Issues when deploying
  3. @ryancanhelpyou #WCNYC PLAN DESIGN CODE TEST DEPLOY REPEAT. Web workflow

  4. @ryancanhelpyou #WCNYC PLAN DESIGN CODE TEST DEPLOY REPEAT. Web workflow:

    Design options ...... 1. Prebuilt theme 2. Use framework 3. Starter theme
  5. @ryancanhelpyou #WCNYC Historical Setup

  6. @ryancanhelpyou #WCNYC Confession I was a cowboy coder.

  7. @ryancanhelpyou #WCNYC Ideal Setup Develop Locally Version control Mirror on

    staging / production server(s)
  8. @ryancanhelpyou #WCNYC Local Setup Text editor + Local server ?

  9. @ryancanhelpyou #WCNYC My path LOCAL SETUP

  10. @ryancanhelpyou #WCNYC My path: Local servers

  11. @ryancanhelpyou #WCNYC My path: Local servers

  12. @ryancanhelpyou #WCNYC My path: Local servers Both solutions are easy

    to setup + use. Both give you: But what if your server is configured differently ?
  13. @ryancanhelpyou #WCNYC My path: Local servers

  14. @ryancanhelpyou #WCNYC My path: Local tools build system viewing preprocessors

    version control
  15. @ryancanhelpyou #WCNYC My path DEPLOYMENTS

  16. @ryancanhelpyou #WCNYC 1. 2. 3. WordPress database ... settings ...

    content images, media theme files plugin files ... content pages posts comments What are we deploying?
  17. @ryancanhelpyou #WCNYC My path: Deployments files database +

  18. @ryancanhelpyou #WCNYC My path: Deployments WordPress plugins

  19. @ryancanhelpyou #WCNYC My path: Deployments http://roots.io/

  20. @ryancanhelpyou #WCNYC Roots Walkthrough • Forum: https://discourse.roots.io • WP/Docker/Roots: https://roots.io/podcast/ep3/

    • Walkthrough article: http://davekiss.com/devel- op-wordpress-sites-like-a-goddamn-champion/ *** • Example project: https://roots.io/a-modern-word- press-example/ *** • Screencasts: https://roots.io/screencasts/ ** (pur- chase & watch)
  21. @ryancanhelpyou #WCNYC Other tools

  22. @ryancanhelpyou #WCNYC Next up...

  23. ? @ryancanhelpyou #WCNYC Thoughts

  24. @ryancanhelpyou #WCNYC Resources • Developer Workflow Tools: http://www.smashingmagazine. com/2013/10/02/powerful-workflow-tips-tools-and-tricks-for-web-design- ers/

    • Vagrant: http://torquemag.io/getting-started-vagrant-local-development/ • SASS: https://www.codeschool.com/courses/assembling-sass • Gulp: https://github.com/gulpjs/gulp/blob/master/docs/getting-started.md • Capistrano: http://theme.fm/2011/08/tutorial-deploying-word- press-with-capistrano-2082/ • Git + Capistrano: https://marketpress.com/2013/deploying-word- press-with-git-and-capistrano • Docker: http://goldsounds.com/archives/2015/04/06/ quick-and-easy-wordpress-development-using-docker/ • Roots: http://davekiss.com/develop-wordpress-sites-like-a-god- damn-champion/
  25. @ryancanhelpyou #WCNYC Thank you

  26. DEPLOYMENTS from Dreaded to Delightful Ryan King @ryancanhelpyou