r/devops • • 4d ago

Discussion DevOps for Wordpress

I have a WordPress team still building and maintaining sites without a DevOps workflow. What's the best way to bottstrap them into a more modern method of development. I'm assuming GitHub and GitHub actions. But what else, composer which we don't really use even tho we have PHP devs, wp-cli which I use but I'm suppose to be a sysadmin and cloud engineer to wp devs who don't do any of this. They don't even use local git which I even use. Trying to express WordPress engineering and un/structured data and all these modern concepts that just go over their heads bc what's worked still works but when it comes to larger clients who expect more from us/them, they're basically fish out of water.

0 Upvotes

33 comments sorted by

32

u/moader 4d ago

"WordPress" "DevOps" ... 😂

9

u/spellcasterGG 4d ago

Just throwing around buzz words like it's corporate jargon at an all hands meeting 😂

8

u/packet_monger 4d ago

“Wordpress engineering”

2

u/21shadesofsavage 4d ago

what's wrong with that? in the end they're just scaling a software product with its own engineering needs

They don't even use local git which I even use.

i take this to be the bigger issue. the use of words is all fucked. they got a whole team not using git, i have they at least use svn or something. "which i even use"... yeah i hope you're using version control as a devops/sysadmin/cloud engineer. introducing a devops mindset and environment to this company is gonna be a lot of work. i'd rather find another job

-1

u/OhMyTechticlesHurts 4d ago

that's what I'm doing bc it's a mute point. They just ignore it.

4

u/dkech 4d ago

A mute point ? Are you sure it's not a moo point? You know, cow talk ...

1

u/evemanufacturetool 4d ago

After all, it's a cow's opinion. Why would that matter? 😂

0

u/OhMyTechticlesHurts 4d ago

Idek what your talking about.

3

u/21shadesofsavage 4d ago

moot point

-1

u/OhMyTechticlesHurts 4d ago

sorry I thought this was DevOps not English 101.

2

u/21shadesofsavage 4d ago

yeah just filing you in. i'm trying to address the problem you're having in another comment, instead of following up in whatever the fuck this comment chain is

1

u/cinderbrooks 4d ago

yeah those two words together always hit different 😅

-4

u/OhMyTechticlesHurts 4d ago

So basically none of you have input just Snickers and doodles. Good to know.

2

u/moader 3d ago

You are so far from a solution from your issue that's why we are all roasting you haha. Your just listing technical terms hoping that somehow it will apply to your scenario but you are dealing with WordPress which is meant for newbies no/low code solutions. And given no/low code, you cannot apply DevOps very well too it as much of the advantages of DevOps comes from code... Which you don't have

0

u/OhMyTechticlesHurts 1d ago

youve clearly never used WordPress. It is far from. Low/no code platform. It's meant to be universal for both web editors, designers and developers. And I'm clearly talking about the development part. Cutome theme designs and custom plugins, written in PHP and java. You're probably one of those new programmers that hopped on in the last decade and was told by every nodejs and python dev that WordPress wasn't worth it and to try something else but it is definitely 45% of the public web still and PHP is heavily used everywhere so.... Not sure what you're talking about but thanks for nothing.

1

u/moader 1d ago

Then apply cicd iac best practice platform DevOps you 🤡

14

u/lovely_trequartista 4d ago

What the fuck. 🤣

5

u/MissiveFinding6111 4d ago

Mostly baffled, but trying to bring this around...

I don't think you need DevOps, I think you just need basic systems engineering.

I'd start with "Backups".

Do they have any? When is the last time they were tested?

Sane DR > DevOps

2

u/OhMyTechticlesHurts 4d ago

We have routine backups and server snapshots. But their issue is scaling. They have ecom sites and other traffic heavy sites but don't do any type of systems engineering. Trying to get them to understand the need for separate servers to run separate services is a hard concept for them to take in. The usual answer is why, if someone even takes the time to ask that.

2

u/21shadesofsavage 4d ago

the answer to why is high availability and cost. why scale a whole system when you can scale the specific service to meet traffic demands. business will always want to hear about how to lower cost while improving uptime on their moneymakers. if they don't, can't fix dumb

what is the current method of scaling? your problem is more on buy in than technical implementation. gotta communicate to people what they'll gain from whatever your scaling solution ends up being. what issues are they running into rn. do they care about developer time being saved through automation and allocated elsewhere?

1

u/OhMyTechticlesHurts 1d ago

Currently I'm the scaler. Im a cloud engineer and I'm trying to get the dev side to understand the reasons WordPress is designed for an old way of developing and what needs to be done to make it scalable. Testing with one client I at least got them to split out a db. Trying to drag them into using a cloud storage solutions for media uploads. Then once I have code isolated (or simultaneously) I can get devs into git, using composer to compile a WP install with plugins, and using containers. It’s a lot of stepping stones.

2

u/Revolutionary_Click2 4d ago

I kid you not, I created a whole custom WordPress plugin for the purposes of managing configuration and content via GitOps (ArgoCD on k8s). I was surprised to find nothing much existed that fit what I needed, so I made one. WordPress is a bit of a dinosaur in this respect, it was designed in an earlier era to run as a persistent server instance, not be managed in code. And no, sorry, not sharing that plugin publicly at this time… someday I might open source it, but it needs further review first. It’s been working for us though, I use it to manage a few customer websites we host.

2

u/g3t0nmyl3v3l 4d ago

I lead a DevOps team that helps a platform host and maintain thousands of WP sites.

There’s a wide range of solutions to the problems you’re alluding to, I could get into the technicals if I had more specifics. The problem is finding real business value in modernizing the process, getting buy-in from your leadership, and finally you need great IC leaders who both understand your goals and can guide your developers/engineers.

You will get pushback, because the efficiencies will mean that your people can move so fast that they’re jobs will likely be at risk unless your leadership has a plan for what else they can work on. Not having that buy-in from internal staff will cause logistical failures and will make your life hell.

1

u/ArieHein 4d ago

Replace them all with ai

1

u/OhMyTechticlesHurts 4d ago

Most of them probably could be. We have a lead full stack developer that doesn't know you're not supposed to put custom code in a WP plugin. Lead developer breaking his own site with debug code blaming it on the new database until I have to double-check his code. I'm just twiddling thumbs till I find something else but I like resolving tech issues so I'm trying to find the solution for myself if noone else.

2

u/ArieHein 3d ago

Oh boy.. Its like seeing already their linkedin posts..

What you can do is abstractions and a bit of politics. Find someone who shows intrest or brain to team up.

I had python devs that didnt want to touch their pipelines, and i agreed with them, as it was in jenkins and therefore heavily using variation of groovy. Instead i created a few python scripts and bundled them as a shared library so all pipelines did is call a bunch of python functions. This made it 'brain dead' easy for them to use and even contribute to the python code while i created the PR for new versions of those scripts.

The commit to branch/main triggers everything including deploying first to a test site, allowing some integration tests, some visual inspection and then deploy to prod.

These devs have managers that have managers. If you are able to show metric and graphs (managers love graphs with numbers), you will be able to convince them to start using this method.

1

u/21shadesofsavage 3d ago

curious, why are you not supposed to use custom code in a wordpress plugin? i never used wordpress. isn't the point of a plugin to extend capability, with your own code

1

u/OhMyTechticlesHurts 1d ago

Yeah when it’s a 3rd party plugin from the WP repo it’s bound to be overwritten when there’s an update. Ideally if you made a custom plugin you would have a separate directory that’s not recognized in WPs Repo unless you submit it. Some larger plugins will also have theme code that you’re suppose to copy into your own theme as a template but in this case they just wrote over the template. Listed in the website as their Lead Full Stack Developer.

Here how bad it is. When they couldn’t determine what happened, they had me spin up a vm of the night before snapshot just to retrieve the code. No git. No local version. The way they do staging is in one big php user vhost account in the hundreds of gbs so can’t just do a basic backup and pull from it. Only once I stood up the vm did we all come to the conclusion of why it went missing. Common WP knowledge for a professional WP developer/even most novice. That’s the BS I’m dealing with.

1

u/Wooden_Jelly_5295 3d ago

I'd start with Git, staging, and a tested rollback.

1

u/arandomuserinweb 4d ago

The biggest barrier isn't technical, it's cultural. If you try to force Docker, CI/CD, and Composer on them all at once, you'll hit a wall of resistance. The trick is to introduce modern practices in phases:

  1. Isolate the Code: Start by requiring Git strictly for custom themes and custom plugins. No more live FTP editing, and no committing WordPress core or uploads to the repo.

  2. Simple Local Environments: Give them tools like LocalWP or Lando that abstract away container complexity so they stop testing directly on live servers.

  3. Automate Deployments (GitHub Actions): Trigger automated SFTP/SSH deployments when code is merged into main. Once they see they no longer have to manually upload files, they'll instantly get the value of version control.

  4. Dependency Management (Composer): Introduce WPackagist to manage plugins and themes as packages, eliminating manually uploaded ZIP files.

  5. Clarify the Golden Rule: Code flows down (Local -> Staging -> Production) and the database flows upwards (Production -> Local with WP-CLI for testing).

0

u/steakmane DevOps 3d ago

Why anyone chooses to self host wordpress these days blows my mind.