Why or rather "when" should you consider building your own cloud-native Drupal platform?
Is a cloud platform the right answer to your Drupal app development challenges?
Is a container-based infrastructure a viable solution for you? For your business needs and for building digital experiences that meet the needs of your audience?
How do you know if your specific use case calls for a cloud-native Drupal app 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 on a cloud platform?
Overall, taking full advantage of a cloud-native Drupal app 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 on 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 Pillars of a Container-Based Infrastructure: Drupal, Kubernetes, Docker
What goes into a cloud-native Drupal platform? There are 3 key players involved:
5.1. Drupal
The robust, open-source software and 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...
The Acquia Cloud Platform is the only web hosting solution designed to meet the wide range of demands of enterprise-level businesses in Drupal.
5.2. Kubernetes
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
- distribution
- scheduling
5.3. Docker
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 app 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 setup 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
The END!
What do you think about Drupal Cloud?
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?
Feel free to share with us any thoughts and concerns that you might have regarding the idea of building your own cloud native Drupal platform and see how Drupal Cloud can help you deliver outstanding digital experiences.
We do Web development
Go to our Web development page!