Planning to improve software development workflow for your new project? Get answers to your questions. In this presentation, Malabya of Valuebound will help you learn about the codebase, local development, composer workflow and deployment of a project.
1. Version 1.0
Improving your Development
workflow.
Development practices for a consistent experience.
Malabya Tewari
Drupal.org: https://www.drupal.org/u/imalabya
LinkedIn: https://www.linkedin.com/in/malabyatewari/
3. Codebase
● One Codebase per application/site.
● Tracked by a version control (Git or other version control)
● Many deploys (dev, staging & production)
5. Local Development
1 Mamp/Xamp/Lamp local setup
A local setup of Apache/Nginx, PHP, MySQL, etc
2 Vagrant/VM
An expendable virtual machine to build and
develop your apps with LAMP/LEMP installed
and other tools
3 Docker
Similar to VM but running containers to serve
your apps in a lightweight environments
4 Lando/Docksal/DDev
Applications to run containers or VMs for an
easy setup
6. Vagrant
Vagrant is an open-source software
product for building and maintaining
portable virtual software development
environments
7. Vagrant
1 Drupal VM
Ansible powered configurable VMs by Jeef
Geerling
2 Vagrant Boxes
Thousands of preconfigured boxes to start with
3 Scotch Box
A simple vagrant box for developers
4 Customized Boxes
Create your own box according to your need
8. Docker
Docker is an open platform for
developers and sysadmins to build, ship,
and run distributed applications,
whether on laptops, data center VMs, or
the cloud.
9. Docker
1 Lando
Lando is for developers who want to quickly
specify and painlessly spin up the services and
tools needed to develop their projects.
2 Dockersal
Docksal is a tool for defining and managing
development environments.
3 DDev
DDev is an open source tool that makes it dead
simple to get local PHP development
environments up and running within minutes.
4 Wodby Docker4Drupal
Docker4Drupal is a set of docker images
optimized for Drupal.
11. Application dependencies
● Declare and install dependencies via a
manifest files (composer.json)
● Use the dependency manager
appropriated to the
language/framework(composer, npm,
yarm, etc)
13. Composer
Composer can be used to download Drupal, Drupal contributed
projects (modules, themes, etc.) and all of their respective
dependencies. These instructions vary based on your approach to
managing your Drupal installation.
● drupal-composer/drupal-project
● hussainweb/drupal-composer-init
● drupal/drupal
17. Deployment
If you are not using Git, use it
If you are not using any version control
system, God save you
18. Configuration Management
● Manages your site’s configurations
● All the configurations stays in codebase
● Better option is to put the config folder
outside Drupal root