Why or rather "when" should you consider building your own cloud native Drupal platform?
Is a container-based infrastructure a viable solution for you? For your business needs?
How do you know if your specific use case calls for a cloud-native Drupal development environment?
And, assuming that you've run your own evaluation and that your use case does demand a switch from your current VM to a... multi-cloud Drupal hosting architecture:
How do you make Drupal... cloud native friendly?
So that you can build, deploy, scale and manage fast and resilient Drupal apps in the cloud?
In this post, we commit to answering all your key cloud-native and Drupal-related questions:
- "What does cloud-native mean exactly?"
- "What is cloud-native with respect to Drupal?"
- "Why do I need a cloud native Drupal platform anyway?"
- "What are the biggest advantages and their... flip sides?"
1. What Does Cloud Native Mean Exactly?
What is a cloud-native application?
It's a holistic approach to designing, building, and running applications that make the most of cloud-native concepts.
Or, if you wish:
Cloud-native application development is a methodology — covering all stages of an app's lifecycle: design, deployment... operations — for developing apps that run in the cloud.
Applications that use the cloud computing model to its full potential.
DevOps, agile, microservices and other modern software architectures all fall under the umbrella of a cloud-native methodology.
Therefore, it's fast, resilient, highly scalable and easily maintainable applications that you get to run in a cloud-native infrastructure.
2. And What Is Cloud Native with Respect to Drupal?
In other words: where does Drupal fit in this revolution in how we develop and deploy our applications?
Overall, taking full advantage of a cloud native Drupal development environment means:
Finding the best solution for handling decentralized storage, auto-scaling, auto-provisioning and multi-region fault tolerance.
Getting the most of cloud-native and Drupal comes down to:
- minimizing the use of long-running servers
- relying more on purpose-built services and elastic computing
- setting up a development environment where you can easily test your new themes and modules, fix bugs, build, and deploy resilient enterprise Drupal apps
3. Why Build Your Own Cloud Native Drupal Platform? And When?
For there are cases (is this your case, too?) when such a powerful, yet... challenging architecture is not justified by the company's business needs.
So, let's answer your "when" question first.
You're better off with a cloud-native infrastructure, where you deploy Kubernetes and containers, if:
- you're dealing with high traffic, high volume applications and polyglot architecture
- you already have an Ops team
- you've already made at least some sort of investments in the private or public cloud
- your current requirements in terms of costs and control justify setting up a multi-cloud architecture
- you're running and maintaining an entire ecosystem of Drupal sites
"OK, so it looks like I "qualify" for it. But still: what would be the biggest advantages of building my own cloud-native platform compared to opting for a cloud vendor's services?"
Here are the 2 most obvious advantages:
- you'd avoid getting locked-in to a cloud provider
- you'd avoid growing dependant of your PaaS provider for hosting, scaling, and managing your own Drupal apps
4. Why Would You Want to Containerize Your Drupal Apps in the First Place?
What would be your major wins if you ran Drupal in containers?
Here are the 3 most significant ones:
- repeatability and consistency: you get the same predictable and specific result with each container that you run
- less maintenance work
- an easier way to run PHP upgrades compared to a conventional VM stack where you depend on your host for that and where there's a whole cluster of sites that needs to get PHP upgraded simultaneously
5. 3 Pillers of a Container-Based Infrastructure: Drupal, Kubernetes, Docker
What goes into a cloud-native Drupal platform? There are 3 key players involved:
The robust content management system which, beginning with its 8th major version, grew into a Symfony-based content management framework.
Backed by a huge (100K+) and active community of contributors and a rich plugin ecosystem, Drupal powers a wide variety of web applications: media and entertainment apps, non-profit, gov, education...
It's the standard container orchestration technology.
In the context of your future cloud-native infrastructure, you'll be using it to manage:
- your containers' lifecycle
- command and control
It's the standard... tool that you will be using for creating your containers.
6. 4 Cloud-Native Platform Features to Put on Your Wishlist
What feature requirements should you have with respect to your Drupal development environment?
Here's how a... decent wishlist should look like:
- it should provide a layer of abstraction over IaaS
- it should handle cross-cutting concerns
- it should be easily scalable and secure
- it should provide an efficient developer experience (and agile operator experience, as well)
7. Deploying Your Drupal Apps on the Cloud: Requests & Constraints
What's the proper set-up for a container-based Drupal architecture?
"What are the key requirements that my future cloud-native Drupal platform should meet?" you might legitimately ask yourself.
- your Drupal application should be turned into a containerized stack
- minimal Ops (or not Ops at all)
- it should run properly on any cloud
- your public/private file should be externalized
- it should scale up, out, and down
- it should make the most of PaaS services: for gateways, databases, load balances, cache stores, queues
- it should tap into an operational model: new app provisioning-routing-monitoring...
- your development team should be able to get high fidelity local environments up and running in no time
"And what challenges should I expect?" you'll further wonder:
- your developers are faced with a steep learning curve: they should have some sort of understanding of what's happening under the hood when deploying Kubernetes
- CI & Delivery Pipeline
- logical architecture
- monitoring and management
- Dev & Build Tools
- local development
Now, as for how to build your own cloud-native Drupal platform, the Srijan team does a wonderful job explaining it, step by step, in their webinar's slide deck.
From scaling your LAMP stack app architecture to LA/E/MP concurrency model to... deployment models and monitoring, they'll get you through all the main considerations behind adopting this modern approach to Drupal hosting.
What do you think:
Is a cloud native Drupal development environment a viable solution for you?
Are the advantages highlighted here relevant enough for your use case and business needs? Or are the outlined challenges too discouraging for you?
We do Web development
Go to our Web development page!