Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save wilfi/a4455e02751cf3dcd9eefcd5d249ddf8 to your computer and use it in GitHub Desktop.
Save wilfi/a4455e02751cf3dcd9eefcd5d249ddf8 to your computer and use it in GitHub Desktop.
SDLC - Best practices with Drupal based application
In this session I’ll be covering some
of the best practices for software
development with Drupal keeping in
scope the below cycles
1. Implementation strategy
2. Development
3. Maintenance & Contingency
Under Implementation strategy I’ll talk
about
Getting raw requirements of a project
and how to architect it with Drupal and
its module ecosystem. I’ll cover about
the importance of using Profiles &
Distributions, the migration strategy,
FE vs BE timeline and Multi-customer
scenarios.
Will deep dive into Multi customer
scenarios with the below 3 options
1. Single codebase, single database
2. Single codebase, separate databases
3. Separate codebase, separate
databases
I’ll try to related decoupled
architecture with these scenarios as
its one of
the main use case where customer will
be having multiple channels and single
source of truth.
Under Development I’ll talk about
1. The importance of having a
Development environment which is
consistent
across the dev team. Will give a brief
overview of some of the best in class
dev setup like Lando, DDev, VirtualBox,
Docker, DrupalVM, Acqua BLT etc
2. Then I’ll go through the importance
of version control and composer managed
project and best practices with version
control.
3. Then I’ll talk about why the
development style shouldn’t be
compromised
inorder to achieve extensibility. Will
cover few scenarios about when to build
a patch vs when to add a new issue on
module issue queue vs when to extend
the
module’s functionality in custom
module.
4. Then I’ll cover best practices while
dealing with database queries and why
developers don’t have to deal with the
details of physical design of the
database.
5. Then I’ll talk about best practices
while the project is in QA and why some
of the projects can’t go past QA. I’ll
explain the concept of Continuous
integration and will take Jenkins as an
example. I’ll also brush upon Release
(continuous delivery) and will share
the strategy before performing any
updates
or upgrade on prod environment.
Under Maintenance & Contingency I’ll
talk about
How the website can be kept up to date
and DR plan.
1. I’ll cover the cron jobs and what
are the usual automated tasks Drupal
will
run like search index, feeds import
etc. Will explain what is a poorman’s
cron
vs an actual server triggered cron job.
2. Finally I’ll cover the activity
needed for disaster recovery like
taking
regular backups, automated snapshots,
hosting in multiple regions/ zones etc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment