WordPress DevOps – WordCamp Grand Rapids 2018
Tim Nolte
Posted on August 7, 2019
1. Introductions
- Development History
- High School
- 1996 – Personal School Website – image maps with cgi-bin processing written in C
- 1996 – Davisco Foods International (First Freelance Job) – static HTML site
- College
- 2000 – Inspiration Point Christian Camp & Retreat Center – perl for form processing, PHP template-based site
- Post-College
- 2002 – Cross Roads Range Christian Camp – PHP CMS
- 2004-2006 – Church of the Lutheran Brethren of America & related ministries – PHP CMS, PHP Authorize.NET Donation Processing, osCommerce
- 2006 – iPCS Wireless, Inc. (telecommunications) – PHP & Perl
- 2011 – Ericsson/Sprint (telecommunications) – PHP/.NET/C#/Java
- 2012 – Allen Extruders/SPI (manufacturing) – PHP/Ruby/C#/.NET
- 2016 – Sprint (telecommunications) – Java/C#/.NET
- WordPress History
- Personal
- 2006 – Personal Blog
- 2006 – Faith Shaping Podcast
- 2008 – The Stamp Box, wife stamping/craft site
- 2009 – Adoption Blog
- Freelance
- 2007-2017 – Daybreak Church (website, blog, podcast)
- 2010 – Starfish Project Haiti
- 2012 – ITS Partners
- 2018 – Warm Oven Bakehouse (WooCommerce)
2. Intro to DevOps
- What is DevOps?
- DevOps is a software engineering culture and practice that aims at unifying software development (Dev) and software operation (Ops).
- DevOps is about a way of doing things not about the tools themselves.
It’s always easy to think of DevOps (or of any software industry paradigm) in terms of the tools you use; in particular, it’s very easy to think that if you use Chef or Puppet for automated configuration, Jenkins for continuous integration, and some cloud provider for on-demand server power, that you’re doing DevOps. But DevOps isn’t about tools; it’s about culture, and it extends far beyond the cubicles of developers and operators.
- DevOps aims at shorter development cycles, increased deployment frequency, and more dependable releases, in close alignment with business objectives.
- The point of implementing DevOps practices is about saving time, money, resources.
- intimate understanding between the development and operations teams
- Many DevOps initiatives focus all on automating everything. If someone has done it more than 1 time then automate it so it never has to be manually done again.
- If we are spending all our time focusing on automating and implementing DevOps practices then the real product doesn’t launch or the real work doesn’t get done.
- What does DevOps offer to WordPress development?
- Increased Productivity – Developers, designers, and testers can work on solving new problems and not repeating the work needed to solve previous problems.
- Environment – How do we establish environment standards that developers can work within and operations can easily support?
- Repetitive Tasks – What work are developers or operations teams doing repetitively that make send to automate in some way that can be counted on and reliable?
- Business Workflows – How can business processes and workflows be standardized?
- Increased Quality – A team can rely on testable, reproducible, and quantitative results that can give a clear picture of the current product state.
- Unit Tests – Requiring code that can be tested to fulfill requirements.
- Standards – Code can be checked automatically against well define business or industry standards. (WordPress Coding Standards)
- Business Requirements – Test and standards compliance reports can be automated to confirm business requirements are being met.
- Reduced Time to Delivery of Releases – When standards and best practices are followed there are less mistakes and less changes required to prepare for a release.
- Automated Tests – Tests can be run on changes or on regular business defined schedules.
- On-Demand User Testing – Tests can be run by developers or quality control on-demand without spending time on setup.
- More Releases – Small regularly scheduled, or planned, releases can be made on an as-needed basis.
3. What Are The First Steps
- Understand the Concepts
- You need to take small steps to start understanding what can be done, what should be done, and how it fits your business or organization.
- Resources
- Carl Alexander – Introduction to Automated WordPress Deployments
- WP Pusher – Git for WordPress Developers
- Tom McFarlin – Ship It or Die
- Identify Your Pain Points
- What are you repeating?
- What is taking you the most time?
- What is requiring the most support from your users?
- Leverage What Others Have Already Done
- Services
- Source Control
- Continuous Integration Platforms
- Reporting
- Codecov – Code Coverage Reporting Service
- Guides
- OSTraining – WordPress Deployment with Deploy, Git and Bitbucket
- Plugins
- Radish Concepts – WordPress GitHub Plugin Updater
- Scripts
- Dean Clatworthy – GIT to WordPress.org’s SVN Repository
- Gary Jones – WordPress Plugin Directory Deployment Script
- Mike Jolley – Github to WordPress.org Deployment Script
- Ahmad Awais – WPGitDeploy CLI
- Build Tools
- Composer
-
NPM – Grunt
- Cedaro – grunt-wp-i18n
- Stephen Harris
- grunt-wp-readme-to-markdown
- grunt-wp-deploy
4. What Does The End State Look Like? A Plugin Example.
Scheduled Featured Images Plugin – https://travis-ci.org/ndigitals/scheduled-featured-images/branches
Daybreak.tv Custom Theme – https://app.codeship.com/projects/48683/deployment\_branches/54216
- Tools
- NPM & Composer – Reproducible Environment
- Grunt – Running Tasks
- Codecov – Code Coverage Reporting
- Configuration
- PHP Code Sniffer – WordPress Coding Standards
- phpcs/phpcbf
- PHPUnit – Unit Testing
- phpunit
- WordPress i18n – Internationalization
- grunt i18n (addtextdomain, makepot)
- WordPress Readme to Markdown – GitHub & WordPress.org Readme maintenance alignment
- wp_readme_to_markdown
- Practises
- Run Local Local Checks
- phpunit
- phpcs
- phpcbf
- Test Automation Against Development Branches
- TravisCI – branches
- Test Automation Against Final Release
- TravisCI – master
- Deployments
- Deploying Plugin & Theme Updates Directly to Servers
- CodeShip – rsync
- Deploying Plugin & Theme Updates Via A Plugin
- WordPress GitHub Plugin Updater – can select which branch to use as source for plugin updates, can install directly from GitHub
- Deploying Plugin & Theme Updates to WordPress.org
- Use a WordPress.org SVN pre/commit script
5. Q & A
This space will be reserved to capture questions asked at the end of the talk with the answer. Additional questions can be asked in the post comments.
The post WordPress DevOps – WordCamp Grand Rapids 2018 appeared first on Nolte Digital Solutions.
Posted on August 7, 2019
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.