Modern Web development and operations practices. Grig Gheorghiu VP Tech Operations Nasty Gal Inc. @griggheo



Similar documents
GOVERNMENT SERVICES. Open Source Software Development Web Content Management Mobile + Web Apps

Automation & Open Source. How to tame the Cloud?

DevOps Course Content

KT ucloud storage. Two Years of Life with OpenStack Swift / Jaesuk Ahn, Cloud OS Dev. Team, Korea Telecom

Shareable Private Space on a Public Cloud

Improve performance and availability of Banking Portal with HADOOP

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

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

CI Pipeline with Docker

Compass Deploying and Monitoring a Software Defined Infrastructure

Iron Chef: Bare Metal OpenStack

Overview: Building Open Source Cloud Computing Environments

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

A Basic Introduction to DevOps Tools

DevOps. Building a Continuous Delivery Pipeline

Open source software for building a private cloud

Using DevOps Tools to Achieve Continuous Integration

Mobile Cloud Computing T Open Source IaaS

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

Java PaaS Enabling CI, CD, and DevOps

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

Elasticsearch on Cisco Unified Computing System: Optimizing your UCS infrastructure for Elasticsearch s analytics software stack

The Virtualization Practice

JAVA IN THE CLOUD PAAS PLATFORM IN COMPARISON

OpenStack PHP Usergroup Berlin, April 2011

WHITE PAPER Redefining Monitoring for Today s Modern IT Infrastructures

Tcl and Cloud Computing Automation

Intel IT Cloud Extending OpenStack* IaaS with Cloud Foundry* PaaS

Cloud Computing and Open Source: Watching Hype meet Reality

Migrating a running service to AWS

Understanding Infrastructure as Code. By Michael Wittig and Andreas Wittig

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

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

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

What is new for HP LoadRunner and Performance Center 11.52

Comparing Open Source Private Cloud (IaaS) Platforms

How Comcast Built An Open Source Content Delivery Network National Engineering & Technical Operations

BASICS OF SCALING: LOAD BALANCERS

SUSE Manager. A Comprehensive Linux Server Management the Linux Way. Name. Title

Log infrastructure & Zabbix. logging tools integration

ITP 342 Mobile App Development. APIs

Continuous Delivery Software-Deployments ohne graue Haare. 3. April 2012 Corsin Decurtins

Bridge Development and Operations for faster delivery of applications

Architecting ColdFusion For Scalability And High Availability. Ryan Stewart Platform Evangelist

CLOUD DEVELOPMENT BEST PRACTICES & SUPPORT APPLICATIONS

APP DEVELOPMENT ON THE CLOUD MADE EASY WITH PAAS

Cloud Computing with Amazon Web Services and the DevOps Methodology.

System Management with RHN Satellite

SIG-NOC Meeting - Stuttgart 04/08/2015 Icinga - Open Source Monitoring

Agile Software Factory: Bringing the reliability of a manufacturing line to software development

STeP-IN SUMMIT June 18 21, 2013 at Bangalore, INDIA. Performance Testing of an IAAS Cloud Software (A CloudStack Use Case)

A Baseline for Web Performance

One click Hadoop clusters - anywhere

2) Xen Hypervisor 3) UEC

Cache All The Things

CloudBees Continuous Integration and Test with Appvance Enterprise August 28, 2013 Frank Cohen, (408)

CLOUDSTACK DESIGN DECISIONS CLOUD OPERATIONS AT SCALE

Datasheet FUJITSU Software ServerView Cloud Monitoring Manager V1.0

How To Manage Change In Jeepers

Why should you look at your logs? Why ELK (Elasticsearch, Logstash, and Kibana)?

The High-Performance Cloud Infrastructure Company! 2011 Joyent, Inc. Contains Joyent Restricted Secrets. Not for Public Disclosure. Patents Pending.!

6 CURRENT JOB OPENINGS:

Big Data Use Case. How Rackspace is using Private Cloud for Big Data. Bryan Thompson. May 8th, 2013

Logentries Insights: The State of Log Management & Analytics for AWS

GigaSpaces Real-Time Analytics for Big Data

Nagios and Cloud Computing

making drupal run fast

Comparing Ganeti to other Private Cloud Platforms. Lance Albertson

Journey to the Cloud and Application Release Automation Shane Pearson VP, Portfolio & Product Management

Bernd Ahlers Michael Friedrich. Log Monitoring Simplified Get the best out of Graylog2 & Icinga 2

IAN MASSINGHAM. Technical Evangelist Amazon Web Services

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

Building Success on Acquia Cloud:

Offerte del 13 giugno 2014

GitLab as an Alternative Development Platform for Github.com

FUJITSU Software ServerView Cloud Monitoring Manager V1 Introduction

Private Clouds with Open Source

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

GUJARAT TECHNOLOGICAL UNIVERSITY

Transcription:

Modern Web development and operations practices Grig Gheorghiu VP Tech Operations Nasty Gal Inc. @griggheo

Modern Web stack Aim for horizontal scalability! Ruby/Python front-end servers (Sinatra/Padrino, Flask) with heavy-duty JavaScript libraries (jquery, bootstrap) Intermediate RESTful API layer (Jetty/Groovy) Back-end services (e-commerce platform, payment gateway) Indexing/search services: Solr, ElasticSearch Database layer (relational such as MySQL/ PostgreSQL, nosql such as Riak/Cassandra)

Operations stack Hypervisor: KVM Private/Hybrid cloud: OpenStack, CloudStack, Eucalyptus Public cloud: Amazon, GCE, Rackspace, Joyent OS: Ubuntu 12.04 LTS HTTP proxy/ssl terminator: nginx Load balancer: haproxy CDN: Akamai, EdgeCast, Fastly, Insight Logic DDOS protection: CloudFlare

Development and deployment pipeline Github or private Git install Deployment done with Jenkins and Capistrano/Fabric Devs commit and push code which triggers Jenkins run in development environment (Continuous Integration) Use Vagrant if you can so dev and prod are on the same OS Unit tests get run QA team deploys to staging environment Integration tests get run including Selenium tests Ops team deploys to production environment

Monitoring, graphing, logging If it's not monitored, it's not in production Monitoring is for Ops what testing is for Dev External monitoring: Pingdom, Keynote Internal monitoring tools: old (Nagios) and new (Sensu) Graphing tools: Graphite, Cacti, Ganglia, Munin Logging tools: Logstash, ElasticSearch, Kibana (or go commercial: Splunk) Alerting tools: PagerDuty

Dashboards!

Configuration management Indispensable at scale Infrastructure-as-code Chef or Puppet, take your pick We use Chef Wide choice of community 'cookbooks' for major packages (Apache, nginx, haproxy, mysql etc) Decent development pipeline (cookbooks pinned to versions in different environments) Decent testing tools: Foodcritic (lint), Chef Spec (unit testing) Test Kitchen (integration testing using Vagrant)

What is 'devops'? Open lines of communication and strong collaboration between Dev, QA and Ops JIRA: ticketing mechanism keeping everybody in the loop Change Management Requests (CMR) for production changes Jabber for communication ('operations' chat room) Devs need Ops skills; Ops need scripting skills at a minimum; both need testing and DBA skills ( full stack ) Automation! It's the cloud era One of the goals of a devops team is to deploy to production N times a day with no downtime

To cloud or not to cloud Public cloud Advantages: fast provisioning, 'infinite' elasticity Disadvantage: poor reliability, poor performance in some cases ('noisy neighbors') Private cloud Advantages: tunable performance, increased control, potentially better security Disadvantage: decreased elasticity unless you are Facebook Hybrid cloud: best of both worlds Start with private cloud but be ready to expand horizontally into public cloud

Do you need Big Data? Only if the volume of data exceeds a big bare-metal box running MySQL or PostgreSQL Most people don't need Big Data If you do, try Hadoop/Hive/Pig Export data to S3 in csv.gz format Read it in Hive tables Run Hive/Pig queries, export to MySQL Build dashboards on top of MySQL

Architecture is important Horizontal layers that can be scaled independently Both software and hardware should scale horizontally Take advantage of The Cloud DB layer (hard to scale horizontally if relational, easier if NoSQL) RESTful API layer Front-end layer responsive design, no difference between mobile and desktop Software load balancers in High Availability mode (haproxy + keepalived) No single points of failure!

Troubleshooting skills are important Interview question: talk about all the different layers (both software and networking) that are involved in a user typing www.google.com in a browser and getting the Google home page back What can go wrong at each layer? Need to understand the major Internet protocols TCP/IP (tcpdump) DNS (dig, nslookup) HTTP (curl, Firebug, twill, Selenium) SMTP