$30 off During Our Annual Pro Sale. View Details »

Safe and Happy Deploys Using Automation

Safe and Happy Deploys Using Automation

Here at Zeek Interactive, I’ve put together a system that allows us to deploy code worry-free. The system automatically brings in PHP dependencies, WordPress plugins, builds assets, runs security scans, deploys the files quickly and performs automated visual regression tests, all while keeping the team informed via Slack on the status of the deploy.

This talk is recommended for anyone who has ever had to get code from their local machine and push it to a server. If you have ever been frustrated or annoyed at deploying code and wondered if there was a better way, don’t miss this talk.

Aaron Holbrook

June 10, 2018
Tweet

More Decks by Aaron Holbrook

Other Decks in Technology

Transcript

  1. Safe and Happy Deploys
    using Automation
    aaronjholbrook
    aaronjholbrook.com
    !
    "
    Aaron Holbrook

    View Slide

  2. EVER DEPLOYED
    CODE?

    View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. OOPS

    View Slide

  7. QUICK:
    HOW DO YOU FIX IT IN
    LESS THAN A MINUTE?

    View Slide

  8. NO

    View Slide

  9. NOPE

    View Slide

  10. YES

    View Slide

  11. HAVE A SYSTEM
    THAT IS:

    View Slide

  12. CONSISTENT

    View Slide

  13. TRANSPARENT

    View Slide

  14. FAST

    View Slide

  15. SIMPLE

    View Slide

  16. AUTOMATED

    View Slide

  17. OUR SYSTEM

    View Slide

  18. Git Buddy
    Zeek
    Pusher
    Server
    Composer
    Core
    Repo
    Deploy
    Repo
    Frontend
    Build
    Commit
    (internally)
    Push to
    server
    rsync git push
    Visual
    Regression Test
    Notify
    Team

    View Slide

  19. Git Buddy
    Zeek
    Pusher
    Server
    Composer
    Core
    Repo
    Deploy
    Repo
    Commit
    (internally)
    Push to
    server
    rsync git push
    Visual
    Regression Test
    Notify
    Team
    Frontend
    Build

    View Slide

  20. git

    View Slide

  21. Git Buddy
    Zeek
    Pusher
    Server
    Composer
    Core
    Repo
    Deploy
    Repo
    Commit
    (internally)
    Push to
    server
    rsync git push
    Visual
    Regression Test
    Notify
    Team
    Frontend
    Build

    View Slide

  22. Buddy

    View Slide

  23. View Slide

  24. ‣ Syntax checking
    ‣ Security checking
    ‣ Environmental Variables
    ‣ Install dependencies
    ‣ Compile assets (JS/CSS)
    ‣ Move files to server
    ‣ Visual Regression Testing
    ‣ Notify team via Slack

    View Slide

  25. View Slide

  26. View Slide

  27. View Slide

  28. View Slide

  29. View Slide

  30. View Slide

  31. Buddy
    25% off any plan for
    WordCamp Orange County*
    Register within 14 days with the code: ‘Orange County WordCamp’.
    *This talk is not sponsored or affiliated with Buddy, I just really like their service!

    View Slide

  32. Git Buddy
    Zeek
    Pusher
    Server
    Composer
    Core
    Repo
    Deploy
    Repo
    Commit
    (internally)
    Push to
    server
    rsync git push
    Visual
    Regression Test
    Notify
    Team
    Frontend
    Build

    View Slide

  33. ZEEK PUSHER
    What is it?

    View Slide

  34. ‣ Builds and deploys files
    ‣ Runs on a VPS (Virtual Private Server)
    ‣ Uses git and rsync
    ‣ Two repos (CORE and DEPLOY)
    SUMMARY

    View Slide

  35. ‣ Is NOT connected to GitHub
    ‣ Mirrors the server
    ‣ Does have compiled assets
    ‣ Does have dependencies
    ‣ Is directly connected to GitHub
    ‣ Mirrors the codebase
    ‣ Does NOT have compiled assets
    ‣ Does NOT have dependencies
    CORE REPO DEPLOY REPO
    REPOS

    View Slide

  36. Git Buddy
    Zeek
    Pusher
    Server
    Composer
    Core
    Repo
    Deploy
    Repo
    Commit
    (internally)
    Push to
    server
    rsync git push
    Visual
    Regression Test
    Notify
    Team
    Frontend
    Build

    View Slide

  37. Git Buddy
    Zeek
    Pusher
    Server
    Composer
    Core
    Repo
    Deploy
    Repo
    Commit
    (internally)
    Push to
    server
    rsync git push
    Visual
    Regression Test
    Notify
    Team
    Frontend
    Build

    View Slide

  38. Git Buddy
    Zeek
    Pusher
    Server
    Composer
    Core
    Repo
    Deploy
    Repo
    Commit
    (internally)
    Push to
    server
    rsync git push
    Visual
    Regression Test
    Notify
    Team
    Frontend
    Build

    View Slide

  39. Composer

    View Slide

  40. Packagist

    View Slide

  41. Satis

    View Slide

  42. WordPress Packagist

    View Slide

  43. SatisPress

    View Slide

  44. Git Buddy
    Zeek
    Pusher
    Server
    Composer
    Core
    Repo
    Deploy
    Repo
    Commit
    (internally)
    Push to
    server
    rsync git push
    Visual
    Regression Test
    Notify
    Team
    Frontend
    Build

    View Slide

  45. Gulp

    View Slide

  46. Webpack

    View Slide

  47. Git Buddy
    Zeek
    Pusher
    Server
    Composer
    Core
    Repo
    Deploy
    Repo
    Commit
    (internally)
    Push to
    server
    rsync git push
    Visual
    Regression Test
    Notify
    Team
    Frontend
    Build

    View Slide

  48. Git Buddy
    Zeek
    Pusher
    Server
    Composer
    Core
    Repo
    Deploy
    Repo
    Commit
    (internally)
    Push to
    server
    rsync git push
    Visual
    Regression Test
    Notify
    Team
    Frontend
    Build

    View Slide

  49. Git Buddy
    Zeek
    Pusher
    Server
    Composer
    Core
    Repo
    Deploy
    Repo
    Commit
    (internally)
    Push to
    server
    rsync git push
    Visual
    Regression Test
    Notify
    Team
    Frontend
    Build

    View Slide

  50. Git Buddy
    Zeek
    Pusher
    Server
    Composer
    Core
    Repo
    Deploy
    Repo
    Commit
    (internally)
    Push to
    server
    rsync git push
    Visual
    Regression Test
    Notify
    Team
    Frontend
    Build

    View Slide

  51. Git Buddy
    Zeek
    Pusher
    Server
    Composer
    Core
    Repo
    Deploy
    Repo
    Commit
    (internally)
    Push to
    server
    rsync git push
    Visual
    Regression Test
    Notify
    Team
    Frontend
    Build

    View Slide

  52. Ghost Inspector

    View Slide

  53. Git Buddy
    Zeek
    Pusher
    Server
    Composer
    Core
    Repo
    Deploy
    Repo
    Commit
    (internally)
    Push to
    server
    rsync git push
    Visual
    Regression Test
    Notify
    Team
    Frontend
    Build

    View Slide

  54. ZEEK PUSHER
    Freshly open sourced!

    View Slide

  55. Zeek Pusher
    github.com/ZeekInteractive/pusher

    View Slide

  56. I’M AARON.
    I Build
    & maintain
    WEBSITES

    View Slide

  57. aaronjholbrook
    aaronjholbrook.com
    !
    "
    QUESTIONS?
    Aaron Holbrook

    View Slide