4. LET’S DECOUPLE IT
POTENTIAL MICRO-SERVICES FOR DRUPAL SITE
▸ Third party data synchronization tasks
▸ Data analysis and reports building
▸ Data scraping
▸ Heavy calculations performing
▸ Drush command
5. THAT PAIN…
REMEMBER IT?
▸ Performing hook_updates (shared database)
▸ Mismatching of environment requirements
▸ Management of bloated composer.json file
▸ Your story?
17. DEVELOPMENT
MAKEFILE IS UNIVERSAL INTERFACE
include .env
APP_ENV ?= dev
DC = docker-compose -f dc.yml -f dc.$(APP_ENV).yml
ANSIBLE = ansible-playbook -i hosts
build:
$(DOCKER_COMPOSE) build
up:
$(DOCKER_COMPOSE) up -d
deploy:
$(ANSIBLE) ansible/deployment/playbook.yml
18. DEVELOPMENT
EACH SERVICE SHOULD BUILD IT’S OWN DOCKER IMAGE
version: '2'
services:
php:
build:
args:
dockerfile: docker/dockerfiles/php/Dockerfile__dev
environment:
- PHP_IDE_CONFIG=serverName=app
- SYMFONY_DEBUG=1
21. DEBUGGING
CONFIGURE YOUR HOST MACHINE
# Mac OS
sudo ifconfig lo0 alias 10.254.254.254
# Linux
sudo ifconfig lo:1 10.254.254.254 up
# PhpStorm:
# 1. Create PHP server
# 2. Give it unique name. Example “my_app”
# 3. Configure path mappings.
24. DEPLOYMENT
GOODBYE CAPISTRANO! HELLO ANSISTRANO!
1. SETUP
2. CODE CHECKOUT
3. SHARED DATA SYMLINK
4. RELEASE SYMLINK
5. CLEANUP
BEFORE HOOK AFTER HOOK
BEFORE HOOK
BEFORE HOOK
BEFORE HOOK
BEFORE HOOK
AFTER HOOK
AFTER HOOK
AFTER HOOK
AFTER HOOK
25. DEPLOYMENT
THE PROCESS
1. Make backup of DB
2. Container shutdown
3. Code checkout
4. Build docker image
5. Start container
28. JEFF GEERLING
ANSIBLE FOR DEVOPS
Ansible is a simple, but
powerful, server and
configuration management
tool. Learn to use Ansible
effectively, whether you
manage one server — or
thousands.
https://leanpub.com/ansible-
for-devops
29. THANK YOU FOR THE LISTENING
DMYTRO DANYLEVSKYI
dmytro@danylevskyi.com