Post on 07-Apr-2017
Chingis Sandanov
Wodby
Cloud Infrastructure Platform
Few words about me
Chingis Sandanov @csandanov
● Working with Drupal since 2010
● Built dozens of large scale Drupal
websites for Government and
Enterprise organizations
● Co-founded Wodby at 2015
Drupal Infrastructure
+
Web server Database Cache storage
BasicExtra
Search engine Caching proxy
NodeJS
+ +
Dev server Production server
How to automate?
● Hire system administrator
● Provisioning tools like Chef, Ansible, Puppet, etc
● Use containers
+
Local
Dev
Production
Container Virtualization
Docker Workflow
1. Create dockerfile
2. Build an image via Docker Hub
3. Pull image
4. Run container
#1 Create dockerfile
FROM alpine:3.3
MAINTAINER John Doe <johndoe@example.com>
RUN apk add --update nginx
COPY rootfs /
Layers in Docker Image
#2 Build an Image via hub.docker.com
#3 Pull Image
#4 Run Container
$ docker run -e MYSQL_ROOT_PASSWORD=admin -e MYSQL_DATABASE=db_name -e MYSQL_USER=user -e MYSQL_PASSWORD=pass -v mariadb:/var/lib/mysql -p 3306:3306 -d --name mariadb mariadb
Package Infrastructure with Containers
+
Container Orchestration
● Ports mapping● Volume mounting● Update images● Resources limitation● Scaling
Pre-configured Bundles
Agnostic Platform
Key benefits
● Optimized consistent infrastructure
● Workflow tools (dev > staging > prod)
● Remote workspace
● Integration with Vagrant
● Team management
● Free HTTPS in 1 click (via Let’s Encrypt)
● Auto backups with mirroring
Post-deployment scripts via wodby.yml
pipeline:
- name: Drupal 8 clear cache on staging
type: command
command: drush cr
directory: $WODBY_APP_DOCROOT
only_if: test "$WODBY_ENVIRONMENT_NAME" = "stage"