SlideShare a Scribd company logo
Modern Web development and
operations practices
Grig Gheorghiu
VP Tech Operations
Nasty Gal Inc.
@griggheo
Invited lecture for CSE 491 “Web Development” class at
MSU, courtesy of C. Titus Brown
Modern Web stack
l  Aim for horizontal scalability!
l  Ruby/Python front-end servers (Sinatra/Padrino,
Flask) with heavy-duty JavaScript libraries (jQuery,
bootstrap)
l  Intermediate RESTful API layer (Jetty/Groovy)
l  Back-end services (e-commerce platform, payment
gateway)
l  Indexing/search services: Solr, ElasticSearch
l  Database layer (relational such as MySQL/
PostgreSQL, noSQL such as Riak/Cassandra)
Operations stack
l  Hypervisor: KVM
l  Private/Hybrid cloud: OpenStack, CloudStack,
Eucalyptus
l  Public cloud: Amazon, GCE, Rackspace, Joyent
l  OS: Ubuntu 12.04 LTS
l  HTTP proxy/SSL terminator: nginx
l  Load balancer: haproxy
l  CDN: Akamai, EdgeCast, Fastly, Insight Logic
l  DDOS protection: CloudFlare
Development and deployment
pipeline
l  Github or private Git install
l  Deployment done with Jenkins and Capistrano/Fabric
l  Devs commit and push code which triggers Jenkins
run in development environment (Continuous
Integration)
l  Use Vagrant if you can so dev and prod are on the same OS
l  Unit tests get run
l  QA team deploys to staging environment
l  Integration tests get run including Selenium tests
l  Ops team deploys to production environment
Monitoring, graphing, logging
l  If it's not monitored, it's not in production
l  Monitoring is for Ops what testing is for Dev
l  External monitoring: Pingdom, Keynote
l  Internal monitoring tools: old (Nagios) and new
(Sensu)
l  Graphing tools: Graphite, Cacti, Ganglia, Munin
l  Logging tools: Logstash, ElasticSearch, Kibana (or go
commercial: Splunk)
l  Alerting tools: PagerDuty
Dashboards!
Configuration management
l  Indispensable at scale
l  Infrastructure-as-code
l  Chef or Puppet, take your pick
l  We use Chef
l  Wide choice of community 'cookbooks' for major packages
(Apache, nginx, haproxy, mySQL etc)
l  Decent development pipeline (cookbooks pinned to versions
in different environments)
l  Decent testing tools: Foodcritic (lint), Chef Spec (unit testing)
Test Kitchen (integration testing using Vagrant)
What is 'devops'?
l  Open lines of communication and strong collaboration
between Dev, QA and Ops
l  JIRA: ticketing mechanism keeping everybody in the loop
l  Change Management Requests (CMR) for production
changes
l  Jabber for communication ('operations' chat room)
l  Devs need Ops skills; Ops need scripting skills at a
minimum; both need testing and DBA skills (‘full stack’)
l  Automation! It's the cloud era
l  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
l  Public cloud
l  Advantages: fast provisioning, 'infinite' elasticity
l  Disadvantage: poor reliability, poor performance in some
cases ('noisy neighbors')
l  Private cloud
l  Advantages: tunable performance, increased control,
potentially better security
l  Disadvantage: decreased elasticity unless you are Facebook
l  Hybrid cloud: best of both worlds
l  Start with private cloud but be ready to expand horizontally
into public cloud
Do you need Big Data?
l  Only if the volume of data exceeds a big bare-metal
box running MySQL or PostgreSQL
l  Most people don't need Big Data
l  If you do, try Hadoop/Hive/Pig
l  Export data to S3 in csv.gz format
l  Read it in Hive tables
l  Run Hive/Pig queries, export to MySQL
l  Build dashboards on top of MySQL
Architecture is important
l  Horizontal layers that can be scaled independently
l  Both software and hardware should scale horizontally
l  Take advantage of The Cloud
l  DB layer (hard to scale horizontally if relational, easier if
NoSQL)
l  RESTful API layer
l  Front-end layer – responsive design, no difference between
mobile and desktop
l  Software load balancers in High Availability mode (haproxy +
keepalived)
l  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

More Related Content

What's hot (20)

PDF
Automating CloudStack with Puppet - David Nalley
Puppet
 
PPTX
CloudStack Conference Public Clouds Use Cases
Sebastien Goasguen
 
ODP
Infrastructure as code with Puppet and Apache CloudStack
ke4qqq
 
PPTX
Docker in OpenStack
Thanassis Parathyras
 
PDF
Developing Terraform Modules at Scale - HashiTalks 2021
TomStraub5
 
PDF
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)
Mirantis
 
PPTX
On Docker and its use for LHC at CERN
Sebastien Goasguen
 
PPTX
Openstack Study Nova 1
Jinho Shin
 
PDF
Kubernetes Hands-On Guide
Stratoscale
 
PPTX
Introducing container as-a-service support to apache libcloud
Anthony Shaw
 
PPTX
How to deploy spark instance using ansible 2.0 in fiware lab v2
Fernando Lopez Aguilar
 
ODP
Puppet and Apache CloudStack
Puppet
 
PDF
Just one-shade-of-openstack
Roberto Polli
 
PPTX
ILM - Pipeline in the cloud
Aaron Carey
 
PDF
Integrating cloud stack with puppet
Puppet
 
PPTX
Automation with Packer and TerraForm
Wesley Charles Blake
 
PDF
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
Stefan Schimanski
 
PPTX
OpenStack Cinder
Renuka Apte
 
PPTX
Who carries your container? Zun or Magnum?
Madhuri Kumari
 
PPTX
State of Containers in OpenStack
openstackindia
 
Automating CloudStack with Puppet - David Nalley
Puppet
 
CloudStack Conference Public Clouds Use Cases
Sebastien Goasguen
 
Infrastructure as code with Puppet and Apache CloudStack
ke4qqq
 
Docker in OpenStack
Thanassis Parathyras
 
Developing Terraform Modules at Scale - HashiTalks 2021
TomStraub5
 
2 Day Bootcamp for OpenStack--Cloud Training by Mirantis (Preview)
Mirantis
 
On Docker and its use for LHC at CERN
Sebastien Goasguen
 
Openstack Study Nova 1
Jinho Shin
 
Kubernetes Hands-On Guide
Stratoscale
 
Introducing container as-a-service support to apache libcloud
Anthony Shaw
 
How to deploy spark instance using ansible 2.0 in fiware lab v2
Fernando Lopez Aguilar
 
Puppet and Apache CloudStack
Puppet
 
Just one-shade-of-openstack
Roberto Polli
 
ILM - Pipeline in the cloud
Aaron Carey
 
Integrating cloud stack with puppet
Puppet
 
Automation with Packer and TerraForm
Wesley Charles Blake
 
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
Stefan Schimanski
 
OpenStack Cinder
Renuka Apte
 
Who carries your container? Zun or Magnum?
Madhuri Kumari
 
State of Containers in OpenStack
openstackindia
 

Viewers also liked (7)

PDF
Immutable Systems in the AWS Cloud
Simone Soldateschi
 
PPTX
POVERTY IN AFRICA Raj
Chichori Chokri
 
PPTX
AUDIO INSIDE | Vanguard Quotes from ONWARD (by Howard Schultz)
Brand Autopsy Marketing Practice
 
PPT
Larry Page - An inspiring corporate leader
Rifat Khan
 
PPTX
story of whatsapp (Jan Koum and Brian Acton)
gohar321
 
PDF
Howard schultz and starbucks
Frisca Listyaningtyas
 
PPTX
whatsapp ppt
Swati Luthra
 
Immutable Systems in the AWS Cloud
Simone Soldateschi
 
POVERTY IN AFRICA Raj
Chichori Chokri
 
AUDIO INSIDE | Vanguard Quotes from ONWARD (by Howard Schultz)
Brand Autopsy Marketing Practice
 
Larry Page - An inspiring corporate leader
Rifat Khan
 
story of whatsapp (Jan Koum and Brian Acton)
gohar321
 
Howard schultz and starbucks
Frisca Listyaningtyas
 
whatsapp ppt
Swati Luthra
 
Ad

Similar to Modern Web development and operations practices (20)

PPTX
devops_
flopaconsult
 
PPT
Planning for-high-performance-web-application
Nguyễn Duy Nhân
 
PPTX
Infrastructure Considerations : Design : "webops"
Piyush Kumar
 
PPT
Planning For High Performance Web Application
Yue Tian
 
PPTX
Devops & Configuration management tools
Sonu Meena
 
PDF
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
DevClub_lv
 
PPTX
Scaling Magento
Copious
 
PDF
Sukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak
 
PDF
Introduction to DevOps and the Practical Use Cases at Credit OK
Kriangkrai Chaonithi
 
PDF
Be DevOps Ready
Malinda Kapuruge
 
PPTX
The Professional Programmer
Dave Cross
 
PPTX
The Hard Problems of Continuous Deployment
Timothy Fitz
 
PDF
Five Years of EC2 Distilled
Grig Gheorghiu
 
PDF
Lessons learned from building Demand Side Platform
bbogacki
 
PDF
Dev Ops without the Ops
Konstantin Gredeskoul
 
PDF
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Giovanni Toraldo
 
PDF
Top AWS DevOps course in Hyderabad
ManiSri4
 
PDF
"Portrait of the developer as The Artist" Lockheed Architect Workshop
Patrick Chanezon
 
PDF
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
Srijan Technologies
 
PDF
Delivery Pipelines as a First Class Citizen @deliverAgile2019
ciberkleid
 
devops_
flopaconsult
 
Planning for-high-performance-web-application
Nguyễn Duy Nhân
 
Infrastructure Considerations : Design : "webops"
Piyush Kumar
 
Planning For High Performance Web Application
Yue Tian
 
Devops & Configuration management tools
Sonu Meena
 
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
DevClub_lv
 
Scaling Magento
Copious
 
Sukumar Nayak-Agile-DevOps-Cloud Management
Sukumar Nayak
 
Introduction to DevOps and the Practical Use Cases at Credit OK
Kriangkrai Chaonithi
 
Be DevOps Ready
Malinda Kapuruge
 
The Professional Programmer
Dave Cross
 
The Hard Problems of Continuous Deployment
Timothy Fitz
 
Five Years of EC2 Distilled
Grig Gheorghiu
 
Lessons learned from building Demand Side Platform
bbogacki
 
Dev Ops without the Ops
Konstantin Gredeskoul
 
Continuous Delivery: 5 years later (Incontro DevOps 2018)
Giovanni Toraldo
 
Top AWS DevOps course in Hyderabad
ManiSri4
 
"Portrait of the developer as The Artist" Lockheed Architect Workshop
Patrick Chanezon
 
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
Srijan Technologies
 
Delivery Pipelines as a First Class Citizen @deliverAgile2019
ciberkleid
 
Ad

Recently uploaded (20)

PPTX
PHIPA-Compliant Web Hosting in Toronto: What Healthcare Providers Must Know
steve198109
 
PPTX
Networking_Essentials_version_3.0_-_Module_5.pptx
ryan622010
 
PPTX
Softuni - Psychology of entrepreneurship
Kalin Karakehayov
 
PDF
FutureCon Seattle 2025 Presentation Slides - You Had One Job
Suzanne Aldrich
 
PDF
BRKACI-1001 - Your First 7 Days of ACI.pdf
fcesargonca
 
PDF
BRKAPP-1102 - Proactive Network and Application Monitoring.pdf
fcesargonca
 
PDF
Cleaning up your RPKI invalids, presented at PacNOG 35
APNIC
 
PDF
Top 10 Testing Procedures to Ensure Your Magento to Shopify Migration Success...
CartCoders
 
PPTX
Networking_Essentials_version_3.0_-_Module_3.pptx
ryan622010
 
PPTX
Lec15_Mutability Immutability-converted.pptx
khanjahanzaib1
 
PDF
Digital burnout toolkit for youth workers and teachers
asociatiastart123
 
PPTX
法国巴黎第二大学本科毕业证{Paris 2学费发票Paris 2成绩单}办理方法
Taqyea
 
PDF
Enhancing Parental Roles in Protecting Children from Online Sexual Exploitati...
ICT Frame Magazine Pvt. Ltd.
 
PPTX
04 Output 1 Instruments & Tools (3).pptx
GEDYIONGebre
 
PPTX
西班牙巴利阿里群岛大学电子版毕业证{UIBLetterUIB文凭证书}文凭复刻
Taqyea
 
DOCX
Custom vs. Off-the-Shelf Banking Software
KristenCarter35
 
PDF
Boardroom AI: The Next 10 Moves | Cerebraix Talent Tech
ssuser73bdb11
 
PPTX
Presentation3gsgsgsgsdfgadgsfgfgsfgagsfgsfgzfdgsdgs.pptx
SUB03
 
PPTX
Orchestrating things in Angular application
Peter Abraham
 
PPTX
Metaphysics_Presentation_With_Visuals.pptx
erikjohnsales1
 
PHIPA-Compliant Web Hosting in Toronto: What Healthcare Providers Must Know
steve198109
 
Networking_Essentials_version_3.0_-_Module_5.pptx
ryan622010
 
Softuni - Psychology of entrepreneurship
Kalin Karakehayov
 
FutureCon Seattle 2025 Presentation Slides - You Had One Job
Suzanne Aldrich
 
BRKACI-1001 - Your First 7 Days of ACI.pdf
fcesargonca
 
BRKAPP-1102 - Proactive Network and Application Monitoring.pdf
fcesargonca
 
Cleaning up your RPKI invalids, presented at PacNOG 35
APNIC
 
Top 10 Testing Procedures to Ensure Your Magento to Shopify Migration Success...
CartCoders
 
Networking_Essentials_version_3.0_-_Module_3.pptx
ryan622010
 
Lec15_Mutability Immutability-converted.pptx
khanjahanzaib1
 
Digital burnout toolkit for youth workers and teachers
asociatiastart123
 
法国巴黎第二大学本科毕业证{Paris 2学费发票Paris 2成绩单}办理方法
Taqyea
 
Enhancing Parental Roles in Protecting Children from Online Sexual Exploitati...
ICT Frame Magazine Pvt. Ltd.
 
04 Output 1 Instruments & Tools (3).pptx
GEDYIONGebre
 
西班牙巴利阿里群岛大学电子版毕业证{UIBLetterUIB文凭证书}文凭复刻
Taqyea
 
Custom vs. Off-the-Shelf Banking Software
KristenCarter35
 
Boardroom AI: The Next 10 Moves | Cerebraix Talent Tech
ssuser73bdb11
 
Presentation3gsgsgsgsdfgadgsfgfgsfgagsfgsfgzfdgsdgs.pptx
SUB03
 
Orchestrating things in Angular application
Peter Abraham
 
Metaphysics_Presentation_With_Visuals.pptx
erikjohnsales1
 

Modern Web development and operations practices

  • 1. Modern Web development and operations practices Grig Gheorghiu VP Tech Operations Nasty Gal Inc. @griggheo Invited lecture for CSE 491 “Web Development” class at MSU, courtesy of C. Titus Brown
  • 2. Modern Web stack l  Aim for horizontal scalability! l  Ruby/Python front-end servers (Sinatra/Padrino, Flask) with heavy-duty JavaScript libraries (jQuery, bootstrap) l  Intermediate RESTful API layer (Jetty/Groovy) l  Back-end services (e-commerce platform, payment gateway) l  Indexing/search services: Solr, ElasticSearch l  Database layer (relational such as MySQL/ PostgreSQL, noSQL such as Riak/Cassandra)
  • 3. Operations stack l  Hypervisor: KVM l  Private/Hybrid cloud: OpenStack, CloudStack, Eucalyptus l  Public cloud: Amazon, GCE, Rackspace, Joyent l  OS: Ubuntu 12.04 LTS l  HTTP proxy/SSL terminator: nginx l  Load balancer: haproxy l  CDN: Akamai, EdgeCast, Fastly, Insight Logic l  DDOS protection: CloudFlare
  • 4. Development and deployment pipeline l  Github or private Git install l  Deployment done with Jenkins and Capistrano/Fabric l  Devs commit and push code which triggers Jenkins run in development environment (Continuous Integration) l  Use Vagrant if you can so dev and prod are on the same OS l  Unit tests get run l  QA team deploys to staging environment l  Integration tests get run including Selenium tests l  Ops team deploys to production environment
  • 5. Monitoring, graphing, logging l  If it's not monitored, it's not in production l  Monitoring is for Ops what testing is for Dev l  External monitoring: Pingdom, Keynote l  Internal monitoring tools: old (Nagios) and new (Sensu) l  Graphing tools: Graphite, Cacti, Ganglia, Munin l  Logging tools: Logstash, ElasticSearch, Kibana (or go commercial: Splunk) l  Alerting tools: PagerDuty
  • 7. Configuration management l  Indispensable at scale l  Infrastructure-as-code l  Chef or Puppet, take your pick l  We use Chef l  Wide choice of community 'cookbooks' for major packages (Apache, nginx, haproxy, mySQL etc) l  Decent development pipeline (cookbooks pinned to versions in different environments) l  Decent testing tools: Foodcritic (lint), Chef Spec (unit testing) Test Kitchen (integration testing using Vagrant)
  • 8. What is 'devops'? l  Open lines of communication and strong collaboration between Dev, QA and Ops l  JIRA: ticketing mechanism keeping everybody in the loop l  Change Management Requests (CMR) for production changes l  Jabber for communication ('operations' chat room) l  Devs need Ops skills; Ops need scripting skills at a minimum; both need testing and DBA skills (‘full stack’) l  Automation! It's the cloud era l  One of the goals of a devops team is to deploy to production N times a day with no downtime
  • 9. To cloud or not to cloud l  Public cloud l  Advantages: fast provisioning, 'infinite' elasticity l  Disadvantage: poor reliability, poor performance in some cases ('noisy neighbors') l  Private cloud l  Advantages: tunable performance, increased control, potentially better security l  Disadvantage: decreased elasticity unless you are Facebook l  Hybrid cloud: best of both worlds l  Start with private cloud but be ready to expand horizontally into public cloud
  • 10. Do you need Big Data? l  Only if the volume of data exceeds a big bare-metal box running MySQL or PostgreSQL l  Most people don't need Big Data l  If you do, try Hadoop/Hive/Pig l  Export data to S3 in csv.gz format l  Read it in Hive tables l  Run Hive/Pig queries, export to MySQL l  Build dashboards on top of MySQL
  • 11. Architecture is important l  Horizontal layers that can be scaled independently l  Both software and hardware should scale horizontally l  Take advantage of The Cloud l  DB layer (hard to scale horizontally if relational, easier if NoSQL) l  RESTful API layer l  Front-end layer – responsive design, no difference between mobile and desktop l  Software load balancers in High Availability mode (haproxy + keepalived) l  No single points of failure!
  • 12. 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