Who s me? Zequi Vázquez DevOps & Backend PhD student Hacking & Security Rock n Roll (electric guitarist) Videogames Books



Similar documents
Building Success on Acquia Cloud:

DevShop. Drupal Infrastructure in a Box. Jon Pugh CEO, Founder ThinkDrop Consulting Brooklyn NY

Efficient Network Marketing - Fabien Hermenier A.M.a.a.a.C.

Hosting Drupal on Amazon Web Services (AWS) Heather Wozniak, Ph.D. Web Developer, UW College of Arts & Sciences hwozniak@uw.edu

TECHNOLOGY WHITE PAPER Jun 2012

BASICS OF SCALING: LOAD BALANCERS

Drupal in the Cloud. Scaling with Drupal and Amazon Web Services. Northern Virginia Drupal Meetup

HADOOP BIG DATA DEVELOPER TRAINING AGENDA

Linux A first-class citizen in Windows Azure. Bruno Terkaly bterkaly@microsoft.com Principal Software Engineer Mobile/Cloud/Startup/Enterprise

Scalable Architecture on Amazon AWS Cloud

TestOps: Continuous Integration when infrastructure is the product. Barry Jaspan Senior Architect, Acquia Inc.

Alfresco Enterprise on AWS: Reference Architecture

What we're doing with Drupal at UChicago and how it can help you.

Web Application Hosting in the AWS Cloud Best Practices

Cloud Computing Disaster Recovery (DR)

ArcGIS for Server in the Amazon Cloud. Michele Lundeen Esri

Apache Stratos Building a PaaS using OSGi and Equinox. Paul Fremantle CTO and Co- Founder, WSO2 CommiCer, Apache Stratos

Taking Drupal development to the Cloud. Karel Bemelmans

Drupal Performance Tips and Tricks. Khalid Baheyeldin. Drupal Camp Toronto 2014

Amazon Elastic Beanstalk

TECHNOLOGY WHITE PAPER Jan 2016

Iskandar Najmuddin. 10 Beaumont Road, London W4 5AP +44 (0)

Introduction to DevOps on AWS

EXECUTIVE SUMMARY CONTENTS. 1. Summary 2. Objectives 3. Methodology and Approach 4. Results 5. Next Steps 6. Glossary 7. Appendix. 1.

Migrating a running service to AWS

Reference Model for Cloud Applications CONSIDERATIONS FOR SW VENDORS BUILDING A SAAS SOLUTION

OpenStack. Orgad Kimchi. Principal Software Engineer. Oracle ISV Engineering. 1 Copyright 2013, Oracle and/or its affiliates. All rights reserved.

Cloud Computing with Amazon Web Services and the DevOps Methodology.

Scaling Pinterest. Yash Nelapati Ascii Artist. Pinterest Engineering. Saturday, August 31, 13

Migration Scenario: Migrating Backend Processing Pipeline to the AWS Cloud

Java, PHP & Ruby - Cloud Hosting

Kubernetes + Google. 5 lessons learned from 8+ years of containers. Victor Marmol (vmarmol@google.com) Tim Hockin (thockin@google.

Storage Made Easy Enterprise File Share and Sync (EFSS) Cloud Control Gateway Architecture

DISASTER RECOVERY WITH AWS

Bricks Cluster Technical Whitepaper

Server Architecture for High- Performance Drupal

Performance for Site Builders

PaaS - Platform as a Service Google App Engine

Design for Failure High Availability Architectures using AWS

Auditing Drupal sites for performance, content and optimal configuration

Razvoj Java aplikacija u Amazon AWS Cloud: Praktična demonstracija

Cloud Models and Platforms

Managing Multi-Tiered Applications with AWS OpsWorks

Distributed Scheduling with Apache Mesos in the Cloud. PhillyETE - April, 2015 Diptanu Gon

Opsview in the Cloud. Monitoring with Amazon Web Services. Opsview Technical Overview

Enterprise PaaS Evaluation Guide

SCALABILITY. Hodicska Gergely. Web Engineering Manager as Ustream. May 7, 2012

A telecom use case with Cloud Foundry deployment

CI Pipeline with Docker

Mesosphere. In this post. bootstrap_url

Amazon Web Services Student Tutorial

Servers. Servers. NAT Public Subnet: /20. Internet Gateway. VPC Gateway VPC: /16

Tibbr Installation Addendum for Amazon Web Services

Streamline your drupal development workflow in a 3-tier-environment - A story about drush make and drush aliases

How To Manage An Ec2 Instance In A Cloud Instance

ZingMe Practice For Building Scalable PHP Website. By Chau Nguyen Nhat Thanh ZingMe Technical Manager Web Technical - VNG

Introduction to AWS in Higher Ed

CLOUD COMPUTING THOMAS BOLTZE CTO SKY & SAND THOMAS.BOLTZE@SKY-SAND.COM

ArcGIS for Server: In the Cloud

Best Practices for Using MySQL in the Cloud

Achieving Continuous Integration with Drupal

Implementing Microsoft Azure Infrastructure Solutions

3/21/2011. Topics. What is load balancing? Load Balancing

Cloud Computing #8 - Datacenter OS. Johan Eker

About Acquia. Acquia Cloud Site Factory allows you to rapidly build mobile- ready brand, campaign, and franchise websites on a turnkey cloud platform.

DISTRIBUTED SYSTEMS [COMP9243] Lecture 9a: Cloud Computing WHAT IS CLOUD COMPUTING? 2

Making Your ColdFusion Apps Highly Available. Brian Klaas Johns Hopkins Bloomberg School of Public Health

Scaling in the Cloud with AWS. By: Eli White (CTO & mojolive) eliw.com - mojolive.com

Agenda. Success Stories with OpenShift. 11:15-11:45 am. OpenShift Tech Overview 9:40-10:30 am. Red Hat Mobile on OpenShift 10:45-11:15 am

Gregory PaaS team

Learning To Fly: How Angry Birds Reached the Heights of Store Performance

JAVA IN THE CLOUD PAAS PLATFORM IN COMPARISON

A Complete Open Cloud Storage, Virt, IaaS, PaaS. Dave Neary Open Source and Standards, Red Hat

OpenShift Enterprise PaaS by Red Hat. Andrey Markelov RHCA Red Hat, Presales Solution Architect

Building the Drupal Borg

Large-Scale Web Applications

A (Web) Face for Radio. NPR and Drupal7 David Moore

Web Application Hosting in the AWS Cloud Best Practices

always available Cloud

Building a Continuous Integration Pipeline with Docker

Building Hyper-Scale Platform-as-a-Service Microservices with Microsoft Azure. Patriek van Dorp and Alex Thissen

Moving to the cloud. By Valerio & Bert

FormAPI, AJAX and Node.js

Drupal Training Modules 2015

When talking about hosting

The Virtualization Practice

AVLOR SERVER CLOUD RECOVERY

AFW: Automating host-based firewalls with Chef

APP DEVELOPMENT ON THE CLOUD MADE EASY WITH PAAS

Are You Ready for the Holiday Rush?

Drupal Memcached Nginx

Amazon Web Services. Lawrence Berkeley LabTech Conference 9/10/15. Jamie Baker Federal Scientific Account Manager AWS WWPS

CloudPassage Halo Technical Overview

You ll need to have: It d be great if you have:

ur skills.com

Deploying complex applications to Google Cloud. Olia Kerzhner

Introduction to CoprHD: An Open Source Software Defined Storage Controller

MANAGE AND DEPLOY YOUR SITES WITH DRUSH

An Architecture Vision

Virginia, United States Zurich, Switzerland Cape Town, South Africa. Hosted at the data center of VSHN, DIN-ISO/ IEC and Finma 2008/7 certified

Transcription:

Who s me? Zequi Vázquez DevOps & Backend PhD student Hacking & Security Rock n Roll (electric guitarist) Videogames Books

1 Introduction 2 The Project 3 Problems and Solutions 4 Demo 5 Conclusions

1 Introduction 2 The Project 3 Problems and Solutions 4 Demo 5 Conclusions

Drupal performance, scalabilty & availability Memcache Apc / Opcache Varnish Redundancy Choose your cache improvement module

Cloud computing and containers Elastic computing resources grow on demand In theory, we achieve full scalability and availability. False! The hidden enemy: budget grows till infinity and beyond Containers (Docker) Only for local environments?

1 Introduction 2 The Project 3 Problems and Solutions 4 Demo 5 Conclusions

Some base requirements Built in Drupal 7, as a multisite install At first, +30k sites. It needs to scale up to +100k sites Availability close to 99.999 % Of course, high performance at lowest possible cost Need to control site creation from external app Automated and not-disruptive deployments Ability to execute drush commands on all sites Migration from previous platform Three devs only - frontend, backend and devops

Seems scary, uh? Usual techs are not enough to tackle project We are computer scientists, aren t we? God bless Open Source Stairway to heaven cloud Docker is more than local

Drupal over Nginx and PHP-fpm Nginx allow a real very flexible configuration PHP fpm increases performance significantly Mod Security with custom rules for Drupal

Manage sites on a multisite Drupal Node.JS is asynchronous: execute something, and forget about it Use DynamoDB to store a list of deployed sites API to allow batch operations on sites list

Stateless Drupal container Memcache, MySQL, MongoDB as external services S3fs module all files on S3 Emails sent through PostMark Monitorization using NewRelic

The Cluster: Apache Mesos and Marathon Mesos abstracts the resources and creates a cluster Two masters orchestrated by Zookeeper, one or more workers Marathon allows to run Docker containers Chronos allows to run cron jobs Rest API to manage apps and containers

Mesos over AWS EC2 image for autoscaling from Mesos main worker AMI contains all 3 Docker images Script to sync amount of Marathon apps with workers number

Deployments: And automatization for all... Lazy DevOps is best DevOps Ansible let us manage AWS in a simple (and powerful!) way Makefile + Dockerfile = Over 9000! Create and destroy environments with a single command

Devil is on details AWS do backups, but it s worth to create your own recovery plan Security groups for EC2 inbound and outbound firewall Remember to use protection Http Auth for all Rest APIs Log centralization is a must All hail Mesos!

1 Introduction 2 The Project 3 Problems and Solutions 4 Demo 5 Conclusions

Database(s): So you think 30k sites are too much 30k sites on a Drupal multisite means 30k databases MySQL 1 folder per database, 1 file per table MongoDB preallocates files when a database is created Conclusion? Unmanageable

Divide and conquer! Identify each site using a unique hash Use that hash as prefix for tables on MySQL and MongoDB Group 500 sites per database, both MongoDB and MySQL MongoDB maximum database size is 3.952GB MySQL number of tables per database is 62k aprox.

The Way of the Request Ever seen a settings.php with steroids? Connect to DynamoDB Identify domain from the request (both drush and http) Calculate domain unique hash Ask DynamoDB for the database where the site lives Make sure hash is used as prefix Store database reference on Memcache

In soviet Russia, Nginx configures you Strange timeout when creating a new site from NodeJS app Happened when Node.JS app launched a site creation Fire and forget. When site was created, app is notified Further investigation timeout produced on Haproxy

Another brick(s) in the wall Unstability on autoscaling group MongoDB MMS instances out of space PHP-fpm unstability slowlog Thousand S3 buckets? God bless S3fs Remote & massive Drush Migration: 30k sites on few days AWS RDS speed: the bigger, the better

1 Introduction 2 The Project 3 Problems and Solutions 4 Demo 5 Conclusions

Demo time!

1 Introduction 2 The Project 3 Problems and Solutions 4 Demo 5 Conclusions

Conclusions: Spoiler alert! Project went live on April 2015. Absolute success! Learned a lot about new technologies Cloud + Containers = Profit Drupal flexibility is amazing

Thank you! What did you think? Please, evaluate this session @RabbitLair ezequielvazq[at]gmail[dot]com