It’s been a while since we last posted updates about our work here at Presslabs, mostly due to the fact that we’ve taken some time to prepare for an exciting upcoming season by following a thorough, yet simple plan—research, plan, build, test and then back to square one.
Today we share with you an extended version of our regular round-up article to cover the most important aspects of our activity in the past 6 months. Let’s get started!
The StackThe Stack
A significant proportion of the 15000 hours of development work has been invested over the past half of year into bringing the Stack closer to a mature, ready to use configuration. We can say now that we’ve learned Golang, proudly attended the local Go development events in Timisoara, our HQ city, validated some ideas and changed others. It’s been a blast so far!
The Stack is probably one of the most ample projects we’ve committed to so far, not only due to the technical challenge it imposes, but mostly because of the vision behind it—we aim at democratising the WordPress hosting infrastructure as we know it.
It’s a great thing to be able to work with meaning, but we’re even more excited to watch it taking shape and earning traction among early adopters. We launched the first alpha version of the Stack, so you can already get a Kubernetes cluster, install the Stack and launch your site.
The Stack only runs on Google Cloud Kubernetes Engine for now, but you’ll soon be able to run sites on Digital Ocean, AWS and Microsoft Azure. You can check our roadmap on the git repo for more details.
The WordPress OperatorThe WordPress Operator
One of the five core components of the Stack, the Presslabs WordPress Operator has also received a lot of attention from our engineering team which has put efforts into making a smooth transition from proof of concept to functional prototype. The operator will handle the deployment of WordPress sites on top of Kubernetes, best practices for en masse upgrades, as well as availability, scalability and backups.
For instance, site images will be served from a remote upstream bucket. The current configuration stores the images either on the machine where WordPress is running or in Google Cloud Storage.
The Presslabs Operator for MySQLThe Presslabs Operator for MySQL
Our operator for MySQL manages all the necessary resources for deploying and managing a highly available MySQL cluster and it’s already at version 0.2.7. With version 0.3 just around the corner, the operator will be abundant in migrations and breaking changes (spoiler alert). A roadmap for the 1.0 version is already published on the project’s Readme file.
In the past months we’ve released 7 new versions of the MySQL operator, and we’re happy that we’ve increased the release pace.
The version 0.2.1 was a new rewrite from version 0.1.x and the operator is now based on kubebuilder as underlying SDK for writing Kubernetes operators. From that point on, there have been many improvements, bug fixes, new features, security improvements and code refactoring.
The code contributions have become more consistent and complex in the last few months to MySQL operator’s code and we’re proud to have some strong companies using it: Platform 9 and Agriterra use it in production and the people at CloudARK have integrated it in one of their operators called Moodle, with more to join soon.
The DashboardThe Dashboard
Besides the open-source Stack, we are also working hard on creating a powerful dashboard on top of it.
We worked on both the back-end and the front-end core functionalities of the dashboard. The team has worked on the base operations and webhooks for organizations, projects and sites, as well as permissions for such operations, and code repo management. OAuth 2.0 is included, too.
For now, the engineering decision is that by default the site’s code will live on a Gitea-based infrastructure, but you’ll also be able to use GitHub, GitLab or Bitbucket.
We’ve also moved forward in creating the gRPC API Client for the front-end of the dashboard, written in TypeScript.
Webhook – a method that is called when certain events occur, for example when a pod is created, a WebhookHandle will be called to set certain things up; for more information about pods and other Kubernetes concepts check MySQL Kubernetes Operator for WordPress. A site will be part of a project ( as an owner might have multiple sites) and the project is part of an organization, Presslabs for example.
Site revampSite revamp
Our website was also on our radar, an almost yearly regular. This time, our purpose was to help our prospects navigate easier through the main pages of interest—solutions, pricing, specifications. We have also inserted various elements to assist our visitors on their journey, according to their interests: forms for quote requests, contact forms, newsletter subscription inputs.
Fresh, easy to grasp visual charts now accompany our features sections which we hope that will encourage visitors to better grasp our WordPress intelligence oriented approach to hosting.
You guessed, additional updates in look and feel, content and SEO tweaks were indispensable. Rest assured, we’ll detail our work and the impact of these changes on our website performance on a future article!
Platform ImprovementsPlatform Improvements
Providing maintenance services for our clients is a 24/7 hour job, as there are always bugs to fix and features to improve, especially when you have a complex infrastructure. However, we’ve selected a few highlights from our recent activity.
As you all know, there was a major WordPress release at the end of 2018: WordPress 5.0, introducing the Gutenberg editor. This release required extensive testing from both our side and the client side. For this reason, when we made the leap to update the production sites, we’ve also installed and activated the Classic Editor Plugin, so that the current editorial flow wouldn’t be influenced by possible shortcomings.
Billing process improvementsBilling process improvements
Silver and our internal billing service have undergone some maintenance updates. To name a few, we’ve implemented a way to notify those who have to make payments through wire transfer and also fixed a bug that prevented the automated generation of transactions for wired payments. These features have improved the system and also the possibility of handling the payment process in an easy way.
Infrastructure optimizationsInfrastructure optimizations
We’ve also updated the way we serve sites for mobile and desktop devices, to be sure the users get the best version of the sites.
Speaking at conferencesSpeaking at conferences
As we announced in our last monthly round -up article, Calin and Flavius have attended Percona Live 2018 as speakers, presenting our stake in Automating MySQL Deployments on Kubernetes, thus providing an overview of the steps taken by our technical team in the decision-making process to write our own operator.
Cherry picked from our blogCherry picked from our blog
We’ve written many articles we hope turned useful to our readers, regarding WordPress and the business around it. Here are a few that we believe to be the cherries:
Starting April, we’ll be back with our monthly round-up series. Stay tuned!