Created
March 31, 2023 09:52
-
-
Save wilfi/957c730d8df751b08ea73368af652b01 to your computer and use it in GitHub Desktop.
SDLC - Best practices with Drupal based application
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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