SlideShare a Scribd company logo
CLOUD-NATIVE
DRUPAL
A survival guide
21/09/2021 - Drupal @127.0.0.1
IMAGE GOES OVER HERE
Noemi Mancini
● Software developer @ SparkFabrik
● Multi-skill but not multi-task
● Twitter: https://twitter.com/Samirah
LinkedIn: https://www.linkedin.com/in/noemimancini/
THE CLOUD-NATIVE JOURNEY
- The twelve-factor app
- Containers
- Database and storage
- Logs
Roadmap
BRING DRUPAL IN THE CLOUDS
- Pipelines
- Cloud vendors
- Monitoring
- Multi-cloud
MASTER THE CLOUD
- References
WHY A CLOUD-NATIVE DRUPAL
- Why
- What
- How
WHY A CLOUD-NATIVE DRUPAL
WHY A CLOUD-NATIVE DRUPAL
I just uploaded
it via FTP
We must agree with the
customer upon the
downtime for the
deployment
We have to replicate
the changes in
production yet
It works on my
PC
We must setup the
environment for the
new developer
We spend too much for
resources we need only
occasionally
The site went down
due to many visits
I have a different PHP
version than the
production server
Why
WHY A CLOUD-NATIVE DRUPAL
Business
● Cost reduction
● More reliable services
● Better performances
● No downtime on deploys
Why
WHY A CLOUD-NATIVE DRUPAL
Tech
● Faster and more consistent deploys
● No need for devs to access infrastructures
● Adoption of good DevOps practices
● Faster onboarding of new devs
What
WHY A CLOUD-NATIVE DRUPAL
Cloud-native approach
A cloud-native application is - guess what? - a web app thought out to
make the best out of cloud services.
Cloud-native boils down to designing our application so that it fully
exploits the advantages of cloud computing.
BRING DRUPAL IN THE CLOUDS
Quicker deploys, more deploys!
How
WHY A CLOUD-NATIVE DRUPAL
Cloud-native and Devops
Cloud isn't just about moving our site from an under-desk server to a
public vendor’s virtual machine.
● We need to rethink our Drupal architecture
● We need to adopt DevOps practices
THE CLOUD-NATIVE JOURNEY
THE CLOUD-NATIVE JOURNEY
https://12factor.net/
THE CLOUD-NATIVE JOURNEY
1. Codebase
One codebase tracked in
revision control, many deploys
2. Dependencies
Explicitly declare and isolate
dependencies
3. Config
Store configuration in the
environment
4. Backing services
Treat backing services as
attached resources
5. Build, release, run
Strictly separate build and run
stages
6. Processes
Execute the app as one or more
stateless processes
7. Port binding
Export services via port binding
8. Concurrency
Scale out via the process model
9. Disposability
Maximize robustness with fast
startup and graceful shutdown
10. Dev/prod parity
Keep dev, stage, and prod as
similar as possible
11. Logs
Treat logs as event streams
12. Admin processes
Run admin/management tasks
as one-off processes
THE CLOUD-NATIVE JOURNEY
1. Codebase
One codebase tracked in
revision control, many deploys
2. Dependencies
Explicitly declare and isolate
dependencies
3. Config
Store configuration in the
environment
4. Backing services
Treat backing services as
attached resources
5. Build, release, run
Strictly separate build and run
stages
6. Processes
Execute the app as one or more
stateless processes
7. Port binding
Export services via port binding
8. Concurrency
Scale out via the process model
9. Disposability
Maximize robustness with fast
startup and graceful shutdown
10. Dev/prod parity
Keep dev, stage, and prod as
similar as possible
11. Logs
Treat logs as event streams
12. Admin processes
Run admin/management tasks
as one-off processes
THE CLOUD-NATIVE JOURNEY
Steps
Containers Database and storage Pipelines Cloud provider
THE CLOUD-NATIVE JOURNEY
But first Containers!
Docker is an open source platform to build,
ship and run any app, anywhere.
● Consistent development environment
● No more dependency hell
● No need to setup the environment
● Open standards (Open Container Initiative)
Why Docker?
THE CLOUD-NATIVE JOURNEY
One codebase tracked in revision control,
many deploys.
● GIT (or other version control tools)
● Repository is the source of truth
● Only custom code, automation scripts and
site configuration
Codebase
THE CLOUD-NATIVE JOURNEY
Explicitly declare and isolate dependencies.
● Composer
● Not only contrib projects, but also the
core
Dependencies
THE CLOUD-NATIVE JOURNEY
Store config in the environment.
When we run a container, we inject the env
from outside.
● docker run -e
● Docker-compose
● CI variables
● Helm values
Config
THE CLOUD-NATIVE JOURNEY
THE CLOUD-NATIVE JOURNEY
THE CLOUD-NATIVE JOURNEY
THE CLOUD-NATIVE JOURNEY
Steps
Containers Database and storage Pipelines Cloud provider
Treat backing services as attached
resources.
● Database
● File storage
● Redis
● Node
● ...
Backing
services
THE CLOUD-NATIVE JOURNEY
We must persist our data.
● MySQL container with a persistent volume
● CloudSQL on GCP
● Amazon RDS on AWS
● Any cloud provider managed database
service
Database
THE CLOUD-NATIVE JOURNEY
We need a shared persistent storage.
● Object Storage with S3 File System
contrib module
● Storage Buckets on GPC
● Amazon S3 on AWS
● MinIO
Storage
THE CLOUD-NATIVE JOURNEY
THE CLOUD-NATIVE JOURNEY
What about File Storage?
Treat logs as event streams.
● stdout/stderr
● log_stdout contrib module
● docker logs / kubectl logs
● GCP Cloud Logging
● AWS CloudWatch Logs
Logs
THE CLOUD-NATIVE JOURNEY
BRING DRUPAL IN THE CLOUDS
BRING DRUPAL IN THE CLOUDS
Steps
Containers Database and storage Pipelines Cloud provider
Automation scripts for CI/CD.
● GitHub actions, TravisCI, GitLab CI...
● Triggered by events on the repository
● Build & Deploy
● QA, automatic tests…
● Failing evidence
● Rollback
Pipelines
BRING DRUPAL IN THE CLOUDS
BRING DRUPAL IN THE CLOUDS
BRING DRUPAL IN THE CLOUDS
Steps
Containers Database and storage Pipelines Cloud provider
BRING DRUPAL IN THE CLOUDS
PHP
DATABASE
WEB SERVER
orchestrator
PRO
● The modern application operating system
● Control of each single service
● Flexibility and highly availability
● Open-source
● Managed (if you want)
CONS
● Complex
● Specific knowledge other than Docker
Top level with
Kubernetes
BRING DRUPAL IN THE CLOUDS
PRO
● Multiple containers
● Totally managed
CONS
● Less knowledge and documented
● Strong AWS lock-in
Play it safe with
AWS ECS
BRING DRUPAL IN THE CLOUDS
PRO
● A single image
● Very simple
● Autoscaling
● Cheap
CONS
● A single image
● Few configuration options
Keep it simple
with GCP Cloud
Run
BRING DRUPAL IN THE CLOUDS
BRING DRUPAL IN THE CLOUDS
Need multi-cloud?
Keep your app healthy and snappy.
● Logs
● Resources usage
● Drupal status report
● GCP Cloud Monitoring
● AWS CloudWatch
● Grafana+Prometheus
Monitoring
BRING DRUPAL IN THE CLOUDS
A MODERN PHP FRAMEWORK
● Configuration (also) in code
● Dependencies management with
Composer
● Drush and Drupal Console
● Development guidelines (Drupal-way)
● Clear deprecation policy
● Many core APIs, many PHP standards
(Symfony)
Drupal 8+ is
DevOps friendly
A MODERN PHP FRAMEWORK
● Configuration in the DB
● Contrib projects installed and updated
with Drush
● Build stack with .make file, installation
profile, Drush, Features, Phing
● No upgrade path tools
● No mocking
● Few core APIs, few PHP standards
It could be done, but at a higher cost.
Drupal 7: no
country for
Devops
A MODERN PHP FRAMEWORK
MASTER THE CLOUD
How to learn more
MASTER THE CLOUD
Useful resources
● Sparkfabrik Resources library
● Docker for Drupal developers
● How To Install Drupal with Docker Compose
● Drupal on Kubernetes (aka stateful application)
● CERN's 1500 Drupal Websites on Kubernetes
● The Twelve-Factor App
● Udemy - Docker and Kubernetes: The Complete Guide
● 10 Best Docker Alternatives 2021 - Rigorous Themes
THANK YOU!
… and deploy safely on Friday at 5PM

More Related Content

What's hot (20)

PPTX
Webinar: End-to-End CI/CD with GitLab and DC/OS
Mesosphere Inc.
 
PDF
Quarkus: From developer joy to Kubernetes nirvana! | DevNation Tech Talk
Red Hat Developers
 
PDF
Introduction to Kubernetes and GKE
Opsta
 
PDF
Mój przepis na skalowalną architekturę mikroserwisową? Apollo Federation i Gr...
The Software House
 
PPTX
Kube what? for NodeJs developers
All Things Open
 
PDF
Journey of Kubernetes Scaling
Opsta
 
PDF
Deploying Anything as a Service (XaaS) Using Operators on Kubernetes
All Things Open
 
PPTX
Going Serverless with Kubeless In Google Container Engine (GKE)
Bitnami
 
PDF
Intro to the CNCF Research User Group
Bob Killen
 
PDF
GitOps is the best modern practice for CD with Kubernetes
Volodymyr Shynkar
 
PDF
Thinking One Step Further with Time-saving DevOps Tools with Open Telekom Clo...
Bitnami
 
PDF
Promise of DevOps
Juraj Hantak
 
PDF
Designing Cloud Native Applications with Kubernetes
Bilgin Ibryam
 
PPTX
Helm at reddit: from local dev, staging, to production
Gregory Taylor
 
PDF
Kubernetes Logging
Denys Havrysh
 
PPTX
Cloud native fundamentals
Victor Morales
 
PPTX
Kubernetes Helm: Why It Matters
Platform9
 
PDF
Automating CICD Pipeline with GitLab and Docker Containers for Java Applications
Jelastic Multi-Cloud PaaS
 
PDF
It's a Breeze to develop Apache Airflow (London Apache Airflow meetup)
Jarek Potiuk
 
PDF
Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Ma...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
Webinar: End-to-End CI/CD with GitLab and DC/OS
Mesosphere Inc.
 
Quarkus: From developer joy to Kubernetes nirvana! | DevNation Tech Talk
Red Hat Developers
 
Introduction to Kubernetes and GKE
Opsta
 
Mój przepis na skalowalną architekturę mikroserwisową? Apollo Federation i Gr...
The Software House
 
Kube what? for NodeJs developers
All Things Open
 
Journey of Kubernetes Scaling
Opsta
 
Deploying Anything as a Service (XaaS) Using Operators on Kubernetes
All Things Open
 
Going Serverless with Kubeless In Google Container Engine (GKE)
Bitnami
 
Intro to the CNCF Research User Group
Bob Killen
 
GitOps is the best modern practice for CD with Kubernetes
Volodymyr Shynkar
 
Thinking One Step Further with Time-saving DevOps Tools with Open Telekom Clo...
Bitnami
 
Promise of DevOps
Juraj Hantak
 
Designing Cloud Native Applications with Kubernetes
Bilgin Ibryam
 
Helm at reddit: from local dev, staging, to production
Gregory Taylor
 
Kubernetes Logging
Denys Havrysh
 
Cloud native fundamentals
Victor Morales
 
Kubernetes Helm: Why It Matters
Platform9
 
Automating CICD Pipeline with GitLab and Docker Containers for Java Applications
Jelastic Multi-Cloud PaaS
 
It's a Breeze to develop Apache Airflow (London Apache Airflow meetup)
Jarek Potiuk
 
Javantura v4 - Self-service app deployment with Kubernetes and OpenShift - Ma...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 

Similar to Cloud-Native Drupal: a survival guide (20)

PDF
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
Srijan Technologies
 
PDF
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
Haggai Philip Zagury
 
PDF
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Atlassian
 
PDF
Cloud Driven Development: a better workflow, less worries, and more power
Marzee Labs
 
PDF
Dipping Your Toes Into Cloud Native Application Development
Matthew Farina
 
PPTX
Why to Cloud Native
Karthik Gaekwad
 
PDF
Cloud Native Dünyada CI/CD
Mustafa AKIN
 
PDF
Oracle Cloud Native
Neagu Alexandru Cristian
 
PDF
Cloud Foundry the definitive guide develop deploy and scale First Edition Winn
fazbemcanaj
 
PDF
CI/CD on Google Cloud Platform
DevOps Indonesia
 
PPTX
cloudtoolsandcomputingwithcloudsssss.pptx
asraniyashika11
 
PPTX
Cloud-Native-Applications-The-Future-of-Development.pptx
Mm071
 
PPTX
Cloud Native Summit 2019 Summary
Everett Toews
 
PDF
Towards a Lightweight Multi-Cloud DSL for Elastic and Transferable Cloud-nati...
Nane Kratzke
 
PDF
Google Cloud Certified Associate Cloud Engineer All-in-One Exam Guide 1st Edi...
goatsjknopsnd
 
PDF
Implementing Cloud-native apps on OCI
Sven Bernhardt
 
PPTX
CF Summit: A Developer's Perspective
Georgi Sabev
 
PDF
Designing and coding for cloud-native applications using Python, Harjinder Mi...
Pôle Systematic Paris-Region
 
PPTX
Cloud Native Migration Steps
Ranjan Baisak
 
PDF
.NET Cloud-Native Bootcamp- Los Angeles
VMware Tanzu
 
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
Srijan Technologies
 
DevOpsDays Tel Aviv DEC 2022 | Building A Cloud-Native Platform Brick by Bric...
Haggai Philip Zagury
 
Your Journey to Cloud-Native Begins with DevOps, Microservices, and Containers
Atlassian
 
Cloud Driven Development: a better workflow, less worries, and more power
Marzee Labs
 
Dipping Your Toes Into Cloud Native Application Development
Matthew Farina
 
Why to Cloud Native
Karthik Gaekwad
 
Cloud Native Dünyada CI/CD
Mustafa AKIN
 
Oracle Cloud Native
Neagu Alexandru Cristian
 
Cloud Foundry the definitive guide develop deploy and scale First Edition Winn
fazbemcanaj
 
CI/CD on Google Cloud Platform
DevOps Indonesia
 
cloudtoolsandcomputingwithcloudsssss.pptx
asraniyashika11
 
Cloud-Native-Applications-The-Future-of-Development.pptx
Mm071
 
Cloud Native Summit 2019 Summary
Everett Toews
 
Towards a Lightweight Multi-Cloud DSL for Elastic and Transferable Cloud-nati...
Nane Kratzke
 
Google Cloud Certified Associate Cloud Engineer All-in-One Exam Guide 1st Edi...
goatsjknopsnd
 
Implementing Cloud-native apps on OCI
Sven Bernhardt
 
CF Summit: A Developer's Perspective
Georgi Sabev
 
Designing and coding for cloud-native applications using Python, Harjinder Mi...
Pôle Systematic Paris-Region
 
Cloud Native Migration Steps
Ranjan Baisak
 
.NET Cloud-Native Bootcamp- Los Angeles
VMware Tanzu
 
Ad

More from sparkfabrik (20)

PDF
Talks on my machine: Drupal, Storybook e SDC
sparkfabrik
 
PDF
Talks on my machine: Drupal CMS versus The Cool Kids
sparkfabrik
 
PDF
Talks on my machine: Drupal: AI e Typesense come integrare la ricerca semantica
sparkfabrik
 
PDF
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
sparkfabrik
 
PDF
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
sparkfabrik
 
PDF
IAD 2023 - 22 Years of Agile and all I got is this lousy t-shirt
sparkfabrik
 
PDF
2023 - Drupalcon - How Drupal builds your pages
sparkfabrik
 
PDF
2023 - TAC23 - Agile HR - Racconti dal fronte
sparkfabrik
 
PDF
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
sparkfabrik
 
PDF
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
sparkfabrik
 
PDF
UX e Web sostenibile (UXday 2023).pdf
sparkfabrik
 
PDF
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
sparkfabrik
 
PDF
Deep dive nella supply chain della nostra infrastruttura cloud
sparkfabrik
 
PDF
KCD Italy 2022 - Application driven infrastructure with Crossplane
sparkfabrik
 
PDF
Come Drupal costruisce le tue pagine
sparkfabrik
 
PDF
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
sparkfabrik
 
PDF
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
sparkfabrik
 
PPTX
Do you know what your Drupal is doing_ Observe it!
sparkfabrik
 
PDF
Progettare e sviluppare soluzioni serverless con AWS
sparkfabrik
 
PPTX
From React to React Native - Things I wish I knew when I started
sparkfabrik
 
Talks on my machine: Drupal, Storybook e SDC
sparkfabrik
 
Talks on my machine: Drupal CMS versus The Cool Kids
sparkfabrik
 
Talks on my machine: Drupal: AI e Typesense come integrare la ricerca semantica
sparkfabrik
 
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
sparkfabrik
 
20231129 - Platform @ localhost 2023 - Application-driven infrastructure with...
sparkfabrik
 
IAD 2023 - 22 Years of Agile and all I got is this lousy t-shirt
sparkfabrik
 
2023 - Drupalcon - How Drupal builds your pages
sparkfabrik
 
2023 - TAC23 - Agile HR - Racconti dal fronte
sparkfabrik
 
CodeMotion 2023 - Deep dive nella supply chain della nostra infrastruttura cl...
sparkfabrik
 
What is the Secure Supply Chain and the Current State of the PHP Ecosystem
sparkfabrik
 
UX e Web sostenibile (UXday 2023).pdf
sparkfabrik
 
Drupal Dev Days Vienna 2023 - What is the secure software supply chain and th...
sparkfabrik
 
Deep dive nella supply chain della nostra infrastruttura cloud
sparkfabrik
 
KCD Italy 2022 - Application driven infrastructure with Crossplane
sparkfabrik
 
Come Drupal costruisce le tue pagine
sparkfabrik
 
Drupal 10: un framework PHP di sviluppo Cloud Native moderno
sparkfabrik
 
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
sparkfabrik
 
Do you know what your Drupal is doing_ Observe it!
sparkfabrik
 
Progettare e sviluppare soluzioni serverless con AWS
sparkfabrik
 
From React to React Native - Things I wish I knew when I started
sparkfabrik
 
Ad

Recently uploaded (20)

PDF
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PDF
Biography of Daniel Podor.pdf
Daniel Podor
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
IoT-Powered Industrial Transformation – Smart Manufacturing to Connected Heal...
Rejig Digital
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
Biography of Daniel Podor.pdf
Daniel Podor
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 

Cloud-Native Drupal: a survival guide

  • 2. IMAGE GOES OVER HERE Noemi Mancini ● Software developer @ SparkFabrik ● Multi-skill but not multi-task ● Twitter: https://twitter.com/Samirah LinkedIn: https://www.linkedin.com/in/noemimancini/
  • 3. THE CLOUD-NATIVE JOURNEY - The twelve-factor app - Containers - Database and storage - Logs Roadmap BRING DRUPAL IN THE CLOUDS - Pipelines - Cloud vendors - Monitoring - Multi-cloud MASTER THE CLOUD - References WHY A CLOUD-NATIVE DRUPAL - Why - What - How
  • 5. WHY A CLOUD-NATIVE DRUPAL I just uploaded it via FTP We must agree with the customer upon the downtime for the deployment We have to replicate the changes in production yet It works on my PC We must setup the environment for the new developer We spend too much for resources we need only occasionally The site went down due to many visits I have a different PHP version than the production server
  • 6. Why WHY A CLOUD-NATIVE DRUPAL Business ● Cost reduction ● More reliable services ● Better performances ● No downtime on deploys
  • 7. Why WHY A CLOUD-NATIVE DRUPAL Tech ● Faster and more consistent deploys ● No need for devs to access infrastructures ● Adoption of good DevOps practices ● Faster onboarding of new devs
  • 8. What WHY A CLOUD-NATIVE DRUPAL Cloud-native approach A cloud-native application is - guess what? - a web app thought out to make the best out of cloud services. Cloud-native boils down to designing our application so that it fully exploits the advantages of cloud computing.
  • 9. BRING DRUPAL IN THE CLOUDS Quicker deploys, more deploys!
  • 10. How WHY A CLOUD-NATIVE DRUPAL Cloud-native and Devops Cloud isn't just about moving our site from an under-desk server to a public vendor’s virtual machine. ● We need to rethink our Drupal architecture ● We need to adopt DevOps practices
  • 13. THE CLOUD-NATIVE JOURNEY 1. Codebase One codebase tracked in revision control, many deploys 2. Dependencies Explicitly declare and isolate dependencies 3. Config Store configuration in the environment 4. Backing services Treat backing services as attached resources 5. Build, release, run Strictly separate build and run stages 6. Processes Execute the app as one or more stateless processes 7. Port binding Export services via port binding 8. Concurrency Scale out via the process model 9. Disposability Maximize robustness with fast startup and graceful shutdown 10. Dev/prod parity Keep dev, stage, and prod as similar as possible 11. Logs Treat logs as event streams 12. Admin processes Run admin/management tasks as one-off processes
  • 14. THE CLOUD-NATIVE JOURNEY 1. Codebase One codebase tracked in revision control, many deploys 2. Dependencies Explicitly declare and isolate dependencies 3. Config Store configuration in the environment 4. Backing services Treat backing services as attached resources 5. Build, release, run Strictly separate build and run stages 6. Processes Execute the app as one or more stateless processes 7. Port binding Export services via port binding 8. Concurrency Scale out via the process model 9. Disposability Maximize robustness with fast startup and graceful shutdown 10. Dev/prod parity Keep dev, stage, and prod as similar as possible 11. Logs Treat logs as event streams 12. Admin processes Run admin/management tasks as one-off processes
  • 15. THE CLOUD-NATIVE JOURNEY Steps Containers Database and storage Pipelines Cloud provider
  • 16. THE CLOUD-NATIVE JOURNEY But first Containers!
  • 17. Docker is an open source platform to build, ship and run any app, anywhere. ● Consistent development environment ● No more dependency hell ● No need to setup the environment ● Open standards (Open Container Initiative) Why Docker? THE CLOUD-NATIVE JOURNEY
  • 18. One codebase tracked in revision control, many deploys. ● GIT (or other version control tools) ● Repository is the source of truth ● Only custom code, automation scripts and site configuration Codebase THE CLOUD-NATIVE JOURNEY
  • 19. Explicitly declare and isolate dependencies. ● Composer ● Not only contrib projects, but also the core Dependencies THE CLOUD-NATIVE JOURNEY
  • 20. Store config in the environment. When we run a container, we inject the env from outside. ● docker run -e ● Docker-compose ● CI variables ● Helm values Config THE CLOUD-NATIVE JOURNEY
  • 23. THE CLOUD-NATIVE JOURNEY Steps Containers Database and storage Pipelines Cloud provider
  • 24. Treat backing services as attached resources. ● Database ● File storage ● Redis ● Node ● ... Backing services THE CLOUD-NATIVE JOURNEY
  • 25. We must persist our data. ● MySQL container with a persistent volume ● CloudSQL on GCP ● Amazon RDS on AWS ● Any cloud provider managed database service Database THE CLOUD-NATIVE JOURNEY
  • 26. We need a shared persistent storage. ● Object Storage with S3 File System contrib module ● Storage Buckets on GPC ● Amazon S3 on AWS ● MinIO Storage THE CLOUD-NATIVE JOURNEY
  • 27. THE CLOUD-NATIVE JOURNEY What about File Storage?
  • 28. Treat logs as event streams. ● stdout/stderr ● log_stdout contrib module ● docker logs / kubectl logs ● GCP Cloud Logging ● AWS CloudWatch Logs Logs THE CLOUD-NATIVE JOURNEY
  • 29. BRING DRUPAL IN THE CLOUDS
  • 30. BRING DRUPAL IN THE CLOUDS Steps Containers Database and storage Pipelines Cloud provider
  • 31. Automation scripts for CI/CD. ● GitHub actions, TravisCI, GitLab CI... ● Triggered by events on the repository ● Build & Deploy ● QA, automatic tests… ● Failing evidence ● Rollback Pipelines BRING DRUPAL IN THE CLOUDS
  • 32. BRING DRUPAL IN THE CLOUDS
  • 33. BRING DRUPAL IN THE CLOUDS Steps Containers Database and storage Pipelines Cloud provider
  • 34. BRING DRUPAL IN THE CLOUDS PHP DATABASE WEB SERVER orchestrator
  • 35. PRO ● The modern application operating system ● Control of each single service ● Flexibility and highly availability ● Open-source ● Managed (if you want) CONS ● Complex ● Specific knowledge other than Docker Top level with Kubernetes BRING DRUPAL IN THE CLOUDS
  • 36. PRO ● Multiple containers ● Totally managed CONS ● Less knowledge and documented ● Strong AWS lock-in Play it safe with AWS ECS BRING DRUPAL IN THE CLOUDS
  • 37. PRO ● A single image ● Very simple ● Autoscaling ● Cheap CONS ● A single image ● Few configuration options Keep it simple with GCP Cloud Run BRING DRUPAL IN THE CLOUDS
  • 38. BRING DRUPAL IN THE CLOUDS Need multi-cloud?
  • 39. Keep your app healthy and snappy. ● Logs ● Resources usage ● Drupal status report ● GCP Cloud Monitoring ● AWS CloudWatch ● Grafana+Prometheus Monitoring BRING DRUPAL IN THE CLOUDS
  • 40. A MODERN PHP FRAMEWORK
  • 41. ● Configuration (also) in code ● Dependencies management with Composer ● Drush and Drupal Console ● Development guidelines (Drupal-way) ● Clear deprecation policy ● Many core APIs, many PHP standards (Symfony) Drupal 8+ is DevOps friendly A MODERN PHP FRAMEWORK
  • 42. ● Configuration in the DB ● Contrib projects installed and updated with Drush ● Build stack with .make file, installation profile, Drush, Features, Phing ● No upgrade path tools ● No mocking ● Few core APIs, few PHP standards It could be done, but at a higher cost. Drupal 7: no country for Devops A MODERN PHP FRAMEWORK
  • 44. How to learn more MASTER THE CLOUD Useful resources ● Sparkfabrik Resources library ● Docker for Drupal developers ● How To Install Drupal with Docker Compose ● Drupal on Kubernetes (aka stateful application) ● CERN's 1500 Drupal Websites on Kubernetes ● The Twelve-Factor App ● Udemy - Docker and Kubernetes: The Complete Guide ● 10 Best Docker Alternatives 2021 - Rigorous Themes
  • 45. THANK YOU! … and deploy safely on Friday at 5PM