Capacity Planning Infrastructure for Web Applications (Drupal)

Ricardo Amaro
Ricardo AmaroPrincipal Site Reliability Engineer - Doing DevOps at Acquia, Inc
Carbon Fiber Tank, SpaceX
How to lower the
costs of your Drupal
Site's resources and
plan Capacity in
advance
ricardoamaro sre@acquia
About me
@ricardoamaro
● Principal SRE @Acquia (Cloud Data Team)
● Joined in December 2011
● Location: Lisbon, Portugal
● Co-authored Seeking SRE w/ Machine Learning for SRE (O’Reilly)
● Founder and Lead of the Portuguese Drupal Association
● Fun Facts:
○ Presented in DevOps events including DrupalCons.
○ Dedicated father of 2 kids and still manages to study and write.
○ First Linux installation: Slackware in 1994.
○ Former theatre actor.
Agenda
What we will be talking about
The problem
What is Capacity
Why do Capacity Planning
Relation to Site Reliability Engineering
Budget & Capacity Planning
Load Testing
Performance Tuning vs. Capacity Planning
What to measure
How to measure
How to track capacity
Forecasting
First Easy Steps
Conclusions
The Problem
Site Launch & User Expectations
Falcon Heavy launch, Spacex
Typical Drupal Site Launch
What about
Capacity Planning??
- Disable devel
- Configure cron
- Check The Upload Sizes & Execution Time
- Check Recipient Email Addresses
- Set The File Permissions
- Protect Your Root Account
- Check Permissions
- Turn Off Error Reporting
- Handle 404 Errors Gracefully
- Check Robots.txt
- Combine Pathauto With Global Redirect
- Create A Maintenance Page
- Configure Caching
- Css And Javascript Optimisation
- Check Unpublished Content Is Not Visible
- Configure Statistics
- Monitor the Site
-
** Plan for Failure **
User Expectations
Drupal click screenshot
● The end goal of capacity
planning is a smooth and
speedy experience for the users
● Varies depending on what type
of application is and what
portion of the application they
interact with
No silver bullet
● Plenty of capacity but a slow
website or unavailable
● Capacity is only one part of
making the end-user experience
fast
● We want to measure and track
to make forecasts
● Intolerable amount of latency
should raise a flag
What is
Capacity
resources required to run your services
in the context you have chosen to run them
Carbon Fiber Tank, SpaceX
Capacity in Site Reliability Engineering (SRE)
● Capacity: The maximum amount of output a product deployment is
capable of completing in a given period of time
● Capacity planning: Process that determines the resources needed,
like people, instances, CPU, memory, time and more, for the company
to meet changing demands for its services
● In the Drupal World we focus mostly on serving WEB capacity
Resource management
The Art of Capacity Planning
Arun Kejariwal, John Allspaw
"O'Reilly Media, Inc."
● Ensure proper resources are
available to handle load
● Define procurement and an
approval process
● Justify capital needs
● Manage resources after
deployment
Why do
Capacity Planning
Kroger grocery store, Lexington Kentucky,
1947, by Brett Streutket
Quick and Dirty Math
● Only spend as much as you
actually need
● Be ahead of sharp growth
● Avoid emergencies
Stay Fast and Reliable
Site Reliability
Engineering
Rocket Laboratory, 1952
NASA/William A. Bowles
Ben Treynor - Google
...an SRE team is responsible for
the availability, latency,
performance, efficiency, change
management, monitoring,
emergency response, and capacity
planning of their service(s)...
“
“
Demand Forecasting and Capacity Planning
● Ensuring that there is sufficient
capacity and redundancy
● Serve projected future demand
with the required availability
● Ensure the required capacity is
in place by the time it is needed
● Take both organic and inorganic
growth into account
https://unsplash.com/photos/mexeVPlTB6k
How SRE advocates for Capacity Planning
● Perform regular load testing
● Incorporate SLOs on Capacity
● Capacity is critical to
availability, therefore the SRE
team leads capacity planning
initiatives and provisioning
https://unsplash.com/photos/DX9X0g0Cg88
Budget & Capacity Planning
Vintage Grow Your Money
by Chris Potter, ccPixs.com
Keeping the costs low
● Meet with Finance, Engineering
and Product
● Gather Systems and Application
metrics
● Use that data to justify the
investment Three forces that impact Capacity Planning
Product
FinanceEngineering
Plan
Load Testing
“Hope is not a strategy”
St. Margrethen - Load Test by Kecko
Load testing a Drupal stack
● How to load test?
“Hit it until it breaks”
● Include the points of failure in
the calculations
● Determining backend limits can
be tricky
● Use those resource ceilings as a
basis while predicting future
growth
https://docs.acquia.com/acquia-cloud/arch/
Database Backend Load Test
➔ How many queries/second (QPS)
can the DB server manage?
➔ How many QPS can it serve
before performance
degradation affects end-user
experience?
● What load will cause the
database to be unresponsive or
fail-over? Allowing to set alert
thresholds accordingly.
● What to expect from adding (or
removing) nodes to the
backend?
● When to begin sizing for a new
database capacity?
A Few Load testing Tools
simulate
● Loadrunner
○ http://bit.ly/microfocus-loadrunner
● Iago
○ https://github.com/twitter/iago
● JMeter
○ http://jmeter.apache.org/
collect
● Prometheus
○ http://www.prometheus.io/
● Signalfx
○ http://www.signalfx.com/
● Cacti
○ http://cacti.net
● Ganglia
○ http://ganglia.info
● Nagios
○ http://nagios.org/
https://www.gocomics.com/calvinandhobbes/1986/11/26
Performance Tuning
vs. Capacity planning
(different goals)
Top Speed
by Alexander Nie
What to measure
defining the metrics
End-of-life
by Dennis van Zuijlekom
Divide & Conquer
● Splitting nodes
● Understand capacity demands
of each node
● Measure more distinctly
● How requests or queries per
second affect resources
Identifying the key resources to measure
● Disk space (MB)
● Disk throughput (IOPS)
● CPU performance (FLOPS)
● RAM memory (MB)
● Network bandwidth (Mbps)
● Network IP pool (Netmask)
● Others
How to measure
Living Computer Museum, Seattle
http://www.brendangregg.com/Perf/linux_perf_tools_full.png
| Tools to measure on Linux servers |
Collecting resources on web servers
TODO: CODE
● Example script that
sends metrics to statsd
● Low footprint using
/proc, df and ps
● For a constant reliable
monitoring service use
collectd: https://collectd.org
or Telegraf:
https://www.influxdata.com/time-
series-platform/telegraf/
How to track Capacity
Store and display time-series
● Signalfx
● Cacti
● Ganglia
● Graphite
● Signalfx
● Datadog
● Ruxit
● LogicMonitor
● Sematext
● CoScale
● Riemann
● Prometheus
● Sensu
● Idera
● Bijk
● X-Pack
● vRealize Hyperic HQ
A couple of load testing tips
load testing Tutorials:
https://www.tutorialspoint.com/jmeter
https://www.blazemeter.com/load-testing
docker app for grafana:
https://github.com/kamon-io/docker-grafana-graphite
Forecasting
(predicting trends)
Numbers And Finance by SeniorLiving.org
Predict the future?
● Use Context & Math
● Make educated guesses
● Long-term view is generally
steady
● Generate estimates to sustain
growth
● Use an adjustable process
● Forecast guides autoscaling
policies
Ceilings and Historical data
● Daily storage consumption
example
● Metric: total available disk space
● Cumulative total provides an
historical perspective
● We can predict future needs
● Storage will probably be
exhausted in the ceiling to
where the line is headed
Curve fitting
● Curve fitting
● Creative & Scientific
● Stay ahead of growth
● Use time-series data
● Forecast by constructing new
data points beyond the known
● Reconciliation of what we know
and the best fit equation
● Consider context before math
y = mx+b
Forecasting Peak-Driven Resource Usage
● Track how the peaks change over time
● Extrapolate from that data to predict
future needs
● Identify the server resource ceilings
● Find a relation between resources and
application-level work
● Decide if we should scale vertically or
horizontally
● and perform proactive autoscalling
● Fityk is an Open Source
Software for nonlinear fitting
of analytical functions to data.
● Incorporate cfityk scripts into
automated curve fitting, like:
cfityk ricardo-disk.fit
@0 < ricardo-disk.csv
guess Quadratic
fit
info formula
quit
Returns the formula:
4888.18 + 363.063 * x + 8.91132 + -1.55119*x + 0.0660771*x^2
Homepage: https://fityk.nieto.pl/
cfityk ricardo-disk.fit
@0 < ricardo-disk.csv
guess Quadratic
fit
info formula
quit
Automating Forecasts with fityk & cfityk
Small demo: https://youtube.com/watch?v=EZnyq1Hr_7I
Forecasting with Machine Learning
Seeking SRE
Conversations About
Running Production Systems
at Scale
Publisher: O'Reilly Media
● Most popular method for
curve-fitting in fityk is
Levenberg-Marquardt
● ML is also an option for
forecasting (book I co-authored)
● Code examples and guides
https://github.com/ricardoamaro/MachineLearning4SRE
Start with Easy Steps
Get Started
1. Select a process owner.
2. Identify the resources to be measured.
3. Measure these resources.
4. Compare to maximum capacity.
5. Collect workload forecasts.
6. Use forecasts for IT resource requirements.
7. Map requirements onto existing utilizations.
8. Predict when the system will be out of capacity.
9. Update forecasts and utilizations.
Set a Goal!
● Two Classes:
○ Load: usually expressed in
arrival rate or peak rate of
requests hitting the service
eg. target for 10.000 authenticated concurrent
Drupal users
○ Performance: usually expressed
in the form of Service Level
Objectives
eg. 99th percentile of all requests should return
in less 500ms
Be proactive
( plan & document ahead)
Picasso drawing with Paloma and Claude at Villa la Galloise, 1953.
By Edward Quinn, EdwardQuinn.com.
Capacity Planning Dashboard
● Support your conclusions with
metrics in a dashboard
● Both manual scaling and auto
scaling decision should be based
on real data
● When to scale?
○ date and time (be alerted if needed)
● How to scale?
○ vertical, horizontal or diagonal scaling
(Example) Drupal Cluster Dashboard
type valu
e
limit/
node
ceiling
units
limit
(total)
current
(peak)
peak
%
Estimated
days left
Varnish
cache
28 1024 req/sec 2048 600 29% 830
Web 31 80 busy calls 160 145 90% 12
Database 15 60 connections 120 96 80% 36
Storage 14 30 TB 30 14 46% 21
Conclusions
Drive the system to the appropriate level of risk for the lowest cost.
Join us for
contribution opportunities
Thursday, October 31, 2019
9:00-18:00
Room: Europe Foyer 2
Mentored
Contribution
First Time
Contributor Workshop
General
Contribution
#DrupalContributions
9:00-14:00
Room: Diamond Lounge
9:00-18:00
Room: Europe Foyer 2
1 of 46

Recommended

CI CD Basics by
CI CD BasicsCI CD Basics
CI CD BasicsPrabhu Ramkumar
411 views9 slides
CI-Jenkins.pptx by
CI-Jenkins.pptxCI-Jenkins.pptx
CI-Jenkins.pptxMEDOBEST1
69 views25 slides
Deploy Application on Kubernetes by
Deploy Application on KubernetesDeploy Application on Kubernetes
Deploy Application on KubernetesOpsta
143 views51 slides
DevOps at Amazon: A Look at Our Tools and Processes by
DevOps at Amazon: A Look at Our Tools and ProcessesDevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesAmazon Web Services
21.2K views49 slides
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern... by
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...
Kubernetes Networking | Kubernetes Services, Pods & Ingress Networks | Kubern...Edureka!
940 views32 slides
A la découverte de kubernetes by
A la découverte de kubernetesA la découverte de kubernetes
A la découverte de kubernetesJulien Maitrehenry
158 views31 slides

More Related Content

What's hot

Introduction to AWS Batch by
Introduction to AWS BatchIntroduction to AWS Batch
Introduction to AWS BatchAmazon Web Services
6.5K views38 slides
DevOps by
DevOps DevOps
DevOps ARYA TM
512 views8 slides
Containers Anywhere with OpenShift by Red Hat by
Containers Anywhere with OpenShift by Red HatContainers Anywhere with OpenShift by Red Hat
Containers Anywhere with OpenShift by Red HatAmazon Web Services
9.3K views38 slides
DevOps with Kubernetes by
DevOps with KubernetesDevOps with Kubernetes
DevOps with KubernetesEastBanc Tachnologies
6.9K views45 slides
Modern Monitoring [ with Prometheus ] by
Modern Monitoring [ with Prometheus ]Modern Monitoring [ with Prometheus ]
Modern Monitoring [ with Prometheus ]Haggai Philip Zagury
1.6K views94 slides
OpenShift Overview by
OpenShift OverviewOpenShift Overview
OpenShift Overviewroundman
5K views29 slides

What's hot(20)

DevOps by ARYA TM
DevOps DevOps
DevOps
ARYA TM512 views
Containers Anywhere with OpenShift by Red Hat by Amazon Web Services
Containers Anywhere with OpenShift by Red HatContainers Anywhere with OpenShift by Red Hat
Containers Anywhere with OpenShift by Red Hat
Amazon Web Services9.3K views
OpenShift Overview by roundman
OpenShift OverviewOpenShift Overview
OpenShift Overview
roundman5K views
Introduction to microservices by Anil Allewar
Introduction to microservicesIntroduction to microservices
Introduction to microservices
Anil Allewar1.2K views
Introduction to GitHub Actions by Bo-Yi Wu
Introduction to GitHub ActionsIntroduction to GitHub Actions
Introduction to GitHub Actions
Bo-Yi Wu19.3K views
A Product Manager's Place in a DevOps World by Atlassian
A Product Manager's Place in a DevOps WorldA Product Manager's Place in a DevOps World
A Product Manager's Place in a DevOps World
Atlassian19.4K views
Présentation docker et kubernetes by Kiwi Backup
Présentation docker et kubernetesPrésentation docker et kubernetes
Présentation docker et kubernetes
Kiwi Backup1.3K views
Lets talk about: Azure Kubernetes Service (AKS) by Pedro Sousa
Lets talk about: Azure Kubernetes Service (AKS)Lets talk about: Azure Kubernetes Service (AKS)
Lets talk about: Azure Kubernetes Service (AKS)
Pedro Sousa333 views

Similar to Capacity Planning Infrastructure for Web Applications (Drupal)

[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri... by
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...Srijan Technologies
548 views29 slides
[Study Guide] Google Professional Cloud Architect (GCP-PCA) Certification by
[Study Guide] Google Professional Cloud Architect (GCP-PCA) Certification[Study Guide] Google Professional Cloud Architect (GCP-PCA) Certification
[Study Guide] Google Professional Cloud Architect (GCP-PCA) CertificationAmaaira Johns
164 views14 slides
Leveraging open source for large scale analytics by
Leveraging open source for large scale analyticsLeveraging open source for large scale analytics
Leveraging open source for large scale analyticsSouth West Data Meetup
192 views25 slides
Clickhouse MeetUp@ContentSquare - ContentSquare's Experience Sharing by
Clickhouse MeetUp@ContentSquare - ContentSquare's Experience SharingClickhouse MeetUp@ContentSquare - ContentSquare's Experience Sharing
Clickhouse MeetUp@ContentSquare - ContentSquare's Experience SharingVianney FOUCAULT
571 views30 slides
ClickHouse Paris Meetup. ClickHouse at ContentSquare, by Christophe Kalenzaga... by
ClickHouse Paris Meetup. ClickHouse at ContentSquare, by Christophe Kalenzaga...ClickHouse Paris Meetup. ClickHouse at ContentSquare, by Christophe Kalenzaga...
ClickHouse Paris Meetup. ClickHouse at ContentSquare, by Christophe Kalenzaga...Altinity Ltd
831 views30 slides
Scalable Clusters On Demand by
Scalable Clusters On DemandScalable Clusters On Demand
Scalable Clusters On DemandBogdan Kyryliuk
238 views38 slides

Similar to Capacity Planning Infrastructure for Web Applications (Drupal)(20)

[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri... by Srijan Technologies
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Study Guide] Google Professional Cloud Architect (GCP-PCA) Certification by Amaaira Johns
[Study Guide] Google Professional Cloud Architect (GCP-PCA) Certification[Study Guide] Google Professional Cloud Architect (GCP-PCA) Certification
[Study Guide] Google Professional Cloud Architect (GCP-PCA) Certification
Amaaira Johns164 views
Clickhouse MeetUp@ContentSquare - ContentSquare's Experience Sharing by Vianney FOUCAULT
Clickhouse MeetUp@ContentSquare - ContentSquare's Experience SharingClickhouse MeetUp@ContentSquare - ContentSquare's Experience Sharing
Clickhouse MeetUp@ContentSquare - ContentSquare's Experience Sharing
Vianney FOUCAULT571 views
ClickHouse Paris Meetup. ClickHouse at ContentSquare, by Christophe Kalenzaga... by Altinity Ltd
ClickHouse Paris Meetup. ClickHouse at ContentSquare, by Christophe Kalenzaga...ClickHouse Paris Meetup. ClickHouse at ContentSquare, by Christophe Kalenzaga...
ClickHouse Paris Meetup. ClickHouse at ContentSquare, by Christophe Kalenzaga...
Altinity Ltd831 views
Kubecon seattle 2018 workshop slides by Weaveworks
Kubecon seattle 2018 workshop slidesKubecon seattle 2018 workshop slides
Kubecon seattle 2018 workshop slides
Weaveworks969 views
Accelerating Digital Transformation: It's About Digital Enablement by Joshua Gossett
Accelerating Digital Transformation:  It's About Digital EnablementAccelerating Digital Transformation:  It's About Digital Enablement
Accelerating Digital Transformation: It's About Digital Enablement
Joshua Gossett72 views
Apache Beam and Google Cloud Dataflow - IDG - final by Sub Szabolcs Feczak
Apache Beam and Google Cloud Dataflow - IDG - finalApache Beam and Google Cloud Dataflow - IDG - final
Apache Beam and Google Cloud Dataflow - IDG - final
Sub Szabolcs Feczak3.2K views
KSCOPE 2013: Exadata Consolidation Success Story by Kristofferson A
KSCOPE 2013: Exadata Consolidation Success StoryKSCOPE 2013: Exadata Consolidation Success Story
KSCOPE 2013: Exadata Consolidation Success Story
Kristofferson A1.8K views
DSDT Meetup Nov 2017 by DSDT_MTL
DSDT Meetup Nov 2017DSDT Meetup Nov 2017
DSDT Meetup Nov 2017
DSDT_MTL55 views
Dsdt meetup 2017 11-21 by JDA Labs MTL
Dsdt meetup 2017 11-21Dsdt meetup 2017 11-21
Dsdt meetup 2017 11-21
JDA Labs MTL406 views
Adtech scala-performance-tuning-150323223738-conversion-gate01 by Giridhar Addepalli
Adtech scala-performance-tuning-150323223738-conversion-gate01Adtech scala-performance-tuning-150323223738-conversion-gate01
Adtech scala-performance-tuning-150323223738-conversion-gate01
Giridhar Addepalli340 views
Adtech x Scala x Performance tuning by Yosuke Mizutani
Adtech x Scala x Performance tuningAdtech x Scala x Performance tuning
Adtech x Scala x Performance tuning
Yosuke Mizutani2.5K views
Transforming to OpenStack: a sample roadmap to DevOps by Nicolas (Nick) Barcet
Transforming to OpenStack: a sample roadmap to DevOpsTransforming to OpenStack: a sample roadmap to DevOps
Transforming to OpenStack: a sample roadmap to DevOps
6 Months Sailing with Docker in Production by Hung Lin
6 Months Sailing with Docker in Production 6 Months Sailing with Docker in Production
6 Months Sailing with Docker in Production
Hung Lin761 views
Accelerating workloads and bursting data with Google Dataproc & Alluxio by Alluxio, Inc.
Accelerating workloads and bursting data with Google Dataproc & AlluxioAccelerating workloads and bursting data with Google Dataproc & Alluxio
Accelerating workloads and bursting data with Google Dataproc & Alluxio
Alluxio, Inc.363 views
RightScale Roadtrip Boston: Accelerate to Cloud by RightScale
RightScale Roadtrip Boston: Accelerate to CloudRightScale Roadtrip Boston: Accelerate to Cloud
RightScale Roadtrip Boston: Accelerate to Cloud
RightScale1.2K views
Prometheus and Docker (Docker Galway, November 2015) by Brian Brazil
Prometheus and Docker (Docker Galway, November 2015)Prometheus and Docker (Docker Galway, November 2015)
Prometheus and Docker (Docker Galway, November 2015)
Brian Brazil9.8K views
Triple 20 IT – How to reduce costs on target while increasing speed and quality by StormForge .io
Triple 20 IT – How to reduce costs on target while increasing speed and qualityTriple 20 IT – How to reduce costs on target while increasing speed and quality
Triple 20 IT – How to reduce costs on target while increasing speed and quality
StormForge .io16 views

More from Ricardo Amaro

Web Devtoolspanel by
Web DevtoolspanelWeb Devtoolspanel
Web DevtoolspanelRicardo Amaro
209 views12 slides
SRE - drupal day aveiro 2016 by
SRE - drupal day aveiro 2016SRE - drupal day aveiro 2016
SRE - drupal day aveiro 2016Ricardo Amaro
1.2K views43 slides
S.R.E - create ultra-scalable and highly reliable systems by
S.R.E - create ultra-scalable and highly reliable systemsS.R.E - create ultra-scalable and highly reliable systems
S.R.E - create ultra-scalable and highly reliable systemsRicardo Amaro
728 views55 slides
Docker containers & the Future of Drupal testing by
Docker containers & the Future of Drupal testing Docker containers & the Future of Drupal testing
Docker containers & the Future of Drupal testing Ricardo Amaro
1.1K views36 slides
Drupal workshop ist 2014 by
Drupal workshop ist 2014Drupal workshop ist 2014
Drupal workshop ist 2014Ricardo Amaro
1.1K views64 slides
Drupal workshop fcul_2014 by
Drupal workshop fcul_2014Drupal workshop fcul_2014
Drupal workshop fcul_2014Ricardo Amaro
435 views62 slides

More from Ricardo Amaro(11)

SRE - drupal day aveiro 2016 by Ricardo Amaro
SRE - drupal day aveiro 2016SRE - drupal day aveiro 2016
SRE - drupal day aveiro 2016
Ricardo Amaro1.2K views
S.R.E - create ultra-scalable and highly reliable systems by Ricardo Amaro
S.R.E - create ultra-scalable and highly reliable systemsS.R.E - create ultra-scalable and highly reliable systems
S.R.E - create ultra-scalable and highly reliable systems
Ricardo Amaro728 views
Docker containers & the Future of Drupal testing by Ricardo Amaro
Docker containers & the Future of Drupal testing Docker containers & the Future of Drupal testing
Docker containers & the Future of Drupal testing
Ricardo Amaro1.1K views
Drupal workshop ist 2014 by Ricardo Amaro
Drupal workshop ist 2014Drupal workshop ist 2014
Drupal workshop ist 2014
Ricardo Amaro1.1K views
Drupal workshop fcul_2014 by Ricardo Amaro
Drupal workshop fcul_2014Drupal workshop fcul_2014
Drupal workshop fcul_2014
Ricardo Amaro435 views
The free software history and communities’ journey ahead by Ricardo Amaro
The free software history and communities’ journey aheadThe free software history and communities’ journey ahead
The free software history and communities’ journey ahead
Ricardo Amaro846 views
Drupalcamp es 2013 drupal with lxc docker and vagrant by Ricardo Amaro
Drupalcamp es 2013  drupal with lxc docker and vagrant Drupalcamp es 2013  drupal with lxc docker and vagrant
Drupalcamp es 2013 drupal with lxc docker and vagrant
Ricardo Amaro3.8K views
Automate drupal deployments with linux containers, docker and vagrant by Ricardo Amaro
Automate drupal deployments with linux containers, docker and vagrant Automate drupal deployments with linux containers, docker and vagrant
Automate drupal deployments with linux containers, docker and vagrant
Ricardo Amaro9.8K views
_ Drupal and the Art of Scrum _ by Ricardo Amaro
_ Drupal and the Art of Scrum __ Drupal and the Art of Scrum _
_ Drupal and the Art of Scrum _
Ricardo Amaro978 views

Recently uploaded

The Power of Heat Decarbonisation Plans in the Built Environment by
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built EnvironmentIES VE
79 views20 slides
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueShapeBlue
138 views15 slides
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... by
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...ShapeBlue
173 views15 slides
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ... by
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...ShapeBlue
186 views15 slides
Kyo - Functional Scala 2023.pdf by
Kyo - Functional Scala 2023.pdfKyo - Functional Scala 2023.pdf
Kyo - Functional Scala 2023.pdfFlavio W. Brasil
457 views92 slides
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...The Digital Insurer
90 views52 slides

Recently uploaded(20)

The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE79 views
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue138 views
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... by ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue173 views
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ... by ShapeBlue
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
ShapeBlue186 views
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by The Digital Insurer
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...
Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray10139 views
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ... by ShapeBlue
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
ShapeBlue126 views
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue203 views
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... by ShapeBlue
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
ShapeBlue139 views
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue135 views
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And... by ShapeBlue
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
ShapeBlue106 views
Future of AR - Facebook Presentation by Rob McCarty
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
Rob McCarty64 views
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by ShapeBlue
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
ShapeBlue221 views
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue147 views
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool by ShapeBlue
Extending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPoolExtending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPool
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool
ShapeBlue123 views
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue by ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue218 views
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by ShapeBlue
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
ShapeBlue198 views
"Surviving highload with Node.js", Andrii Shumada by Fwdays
"Surviving highload with Node.js", Andrii Shumada "Surviving highload with Node.js", Andrii Shumada
"Surviving highload with Node.js", Andrii Shumada
Fwdays56 views
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha... by ShapeBlue
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
Mitigating Common CloudStack Instance Deployment Failures - Jithin Raju - Sha...
ShapeBlue180 views

Capacity Planning Infrastructure for Web Applications (Drupal)

  • 1. Carbon Fiber Tank, SpaceX How to lower the costs of your Drupal Site's resources and plan Capacity in advance ricardoamaro sre@acquia
  • 2. About me @ricardoamaro ● Principal SRE @Acquia (Cloud Data Team) ● Joined in December 2011 ● Location: Lisbon, Portugal ● Co-authored Seeking SRE w/ Machine Learning for SRE (O’Reilly) ● Founder and Lead of the Portuguese Drupal Association ● Fun Facts: ○ Presented in DevOps events including DrupalCons. ○ Dedicated father of 2 kids and still manages to study and write. ○ First Linux installation: Slackware in 1994. ○ Former theatre actor.
  • 3. Agenda What we will be talking about The problem What is Capacity Why do Capacity Planning Relation to Site Reliability Engineering Budget & Capacity Planning Load Testing Performance Tuning vs. Capacity Planning What to measure How to measure How to track capacity Forecasting First Easy Steps Conclusions
  • 4. The Problem Site Launch & User Expectations Falcon Heavy launch, Spacex
  • 5. Typical Drupal Site Launch What about Capacity Planning?? - Disable devel - Configure cron - Check The Upload Sizes & Execution Time - Check Recipient Email Addresses - Set The File Permissions - Protect Your Root Account - Check Permissions - Turn Off Error Reporting - Handle 404 Errors Gracefully - Check Robots.txt - Combine Pathauto With Global Redirect - Create A Maintenance Page - Configure Caching - Css And Javascript Optimisation - Check Unpublished Content Is Not Visible - Configure Statistics - Monitor the Site - ** Plan for Failure **
  • 6. User Expectations Drupal click screenshot ● The end goal of capacity planning is a smooth and speedy experience for the users ● Varies depending on what type of application is and what portion of the application they interact with
  • 7. No silver bullet ● Plenty of capacity but a slow website or unavailable ● Capacity is only one part of making the end-user experience fast ● We want to measure and track to make forecasts ● Intolerable amount of latency should raise a flag
  • 8. What is Capacity resources required to run your services in the context you have chosen to run them Carbon Fiber Tank, SpaceX
  • 9. Capacity in Site Reliability Engineering (SRE) ● Capacity: The maximum amount of output a product deployment is capable of completing in a given period of time ● Capacity planning: Process that determines the resources needed, like people, instances, CPU, memory, time and more, for the company to meet changing demands for its services ● In the Drupal World we focus mostly on serving WEB capacity
  • 10. Resource management The Art of Capacity Planning Arun Kejariwal, John Allspaw "O'Reilly Media, Inc." ● Ensure proper resources are available to handle load ● Define procurement and an approval process ● Justify capital needs ● Manage resources after deployment
  • 11. Why do Capacity Planning Kroger grocery store, Lexington Kentucky, 1947, by Brett Streutket
  • 12. Quick and Dirty Math ● Only spend as much as you actually need ● Be ahead of sharp growth ● Avoid emergencies Stay Fast and Reliable
  • 13. Site Reliability Engineering Rocket Laboratory, 1952 NASA/William A. Bowles
  • 14. Ben Treynor - Google ...an SRE team is responsible for the availability, latency, performance, efficiency, change management, monitoring, emergency response, and capacity planning of their service(s)... “ “
  • 15. Demand Forecasting and Capacity Planning ● Ensuring that there is sufficient capacity and redundancy ● Serve projected future demand with the required availability ● Ensure the required capacity is in place by the time it is needed ● Take both organic and inorganic growth into account https://unsplash.com/photos/mexeVPlTB6k
  • 16. How SRE advocates for Capacity Planning ● Perform regular load testing ● Incorporate SLOs on Capacity ● Capacity is critical to availability, therefore the SRE team leads capacity planning initiatives and provisioning https://unsplash.com/photos/DX9X0g0Cg88
  • 17. Budget & Capacity Planning Vintage Grow Your Money by Chris Potter, ccPixs.com
  • 18. Keeping the costs low ● Meet with Finance, Engineering and Product ● Gather Systems and Application metrics ● Use that data to justify the investment Three forces that impact Capacity Planning Product FinanceEngineering Plan
  • 19. Load Testing “Hope is not a strategy” St. Margrethen - Load Test by Kecko
  • 20. Load testing a Drupal stack ● How to load test? “Hit it until it breaks” ● Include the points of failure in the calculations ● Determining backend limits can be tricky ● Use those resource ceilings as a basis while predicting future growth https://docs.acquia.com/acquia-cloud/arch/
  • 21. Database Backend Load Test ➔ How many queries/second (QPS) can the DB server manage? ➔ How many QPS can it serve before performance degradation affects end-user experience? ● What load will cause the database to be unresponsive or fail-over? Allowing to set alert thresholds accordingly. ● What to expect from adding (or removing) nodes to the backend? ● When to begin sizing for a new database capacity?
  • 22. A Few Load testing Tools simulate ● Loadrunner ○ http://bit.ly/microfocus-loadrunner ● Iago ○ https://github.com/twitter/iago ● JMeter ○ http://jmeter.apache.org/ collect ● Prometheus ○ http://www.prometheus.io/ ● Signalfx ○ http://www.signalfx.com/ ● Cacti ○ http://cacti.net ● Ganglia ○ http://ganglia.info ● Nagios ○ http://nagios.org/ https://www.gocomics.com/calvinandhobbes/1986/11/26
  • 23. Performance Tuning vs. Capacity planning (different goals) Top Speed by Alexander Nie
  • 24. What to measure defining the metrics End-of-life by Dennis van Zuijlekom
  • 25. Divide & Conquer ● Splitting nodes ● Understand capacity demands of each node ● Measure more distinctly ● How requests or queries per second affect resources
  • 26. Identifying the key resources to measure ● Disk space (MB) ● Disk throughput (IOPS) ● CPU performance (FLOPS) ● RAM memory (MB) ● Network bandwidth (Mbps) ● Network IP pool (Netmask) ● Others
  • 27. How to measure Living Computer Museum, Seattle
  • 29. Collecting resources on web servers TODO: CODE ● Example script that sends metrics to statsd ● Low footprint using /proc, df and ps ● For a constant reliable monitoring service use collectd: https://collectd.org or Telegraf: https://www.influxdata.com/time- series-platform/telegraf/
  • 30. How to track Capacity
  • 31. Store and display time-series ● Signalfx ● Cacti ● Ganglia ● Graphite ● Signalfx ● Datadog ● Ruxit ● LogicMonitor ● Sematext ● CoScale ● Riemann ● Prometheus ● Sensu ● Idera ● Bijk ● X-Pack ● vRealize Hyperic HQ
  • 32. A couple of load testing tips load testing Tutorials: https://www.tutorialspoint.com/jmeter https://www.blazemeter.com/load-testing docker app for grafana: https://github.com/kamon-io/docker-grafana-graphite
  • 33. Forecasting (predicting trends) Numbers And Finance by SeniorLiving.org
  • 34. Predict the future? ● Use Context & Math ● Make educated guesses ● Long-term view is generally steady ● Generate estimates to sustain growth ● Use an adjustable process ● Forecast guides autoscaling policies
  • 35. Ceilings and Historical data ● Daily storage consumption example ● Metric: total available disk space ● Cumulative total provides an historical perspective ● We can predict future needs ● Storage will probably be exhausted in the ceiling to where the line is headed
  • 36. Curve fitting ● Curve fitting ● Creative & Scientific ● Stay ahead of growth ● Use time-series data ● Forecast by constructing new data points beyond the known ● Reconciliation of what we know and the best fit equation ● Consider context before math y = mx+b
  • 37. Forecasting Peak-Driven Resource Usage ● Track how the peaks change over time ● Extrapolate from that data to predict future needs ● Identify the server resource ceilings ● Find a relation between resources and application-level work ● Decide if we should scale vertically or horizontally ● and perform proactive autoscalling
  • 38. ● Fityk is an Open Source Software for nonlinear fitting of analytical functions to data. ● Incorporate cfityk scripts into automated curve fitting, like: cfityk ricardo-disk.fit @0 < ricardo-disk.csv guess Quadratic fit info formula quit Returns the formula: 4888.18 + 363.063 * x + 8.91132 + -1.55119*x + 0.0660771*x^2 Homepage: https://fityk.nieto.pl/ cfityk ricardo-disk.fit @0 < ricardo-disk.csv guess Quadratic fit info formula quit Automating Forecasts with fityk & cfityk Small demo: https://youtube.com/watch?v=EZnyq1Hr_7I
  • 39. Forecasting with Machine Learning Seeking SRE Conversations About Running Production Systems at Scale Publisher: O'Reilly Media ● Most popular method for curve-fitting in fityk is Levenberg-Marquardt ● ML is also an option for forecasting (book I co-authored) ● Code examples and guides https://github.com/ricardoamaro/MachineLearning4SRE
  • 41. Get Started 1. Select a process owner. 2. Identify the resources to be measured. 3. Measure these resources. 4. Compare to maximum capacity. 5. Collect workload forecasts. 6. Use forecasts for IT resource requirements. 7. Map requirements onto existing utilizations. 8. Predict when the system will be out of capacity. 9. Update forecasts and utilizations.
  • 42. Set a Goal! ● Two Classes: ○ Load: usually expressed in arrival rate or peak rate of requests hitting the service eg. target for 10.000 authenticated concurrent Drupal users ○ Performance: usually expressed in the form of Service Level Objectives eg. 99th percentile of all requests should return in less 500ms
  • 43. Be proactive ( plan & document ahead) Picasso drawing with Paloma and Claude at Villa la Galloise, 1953. By Edward Quinn, EdwardQuinn.com.
  • 44. Capacity Planning Dashboard ● Support your conclusions with metrics in a dashboard ● Both manual scaling and auto scaling decision should be based on real data ● When to scale? ○ date and time (be alerted if needed) ● How to scale? ○ vertical, horizontal or diagonal scaling (Example) Drupal Cluster Dashboard type valu e limit/ node ceiling units limit (total) current (peak) peak % Estimated days left Varnish cache 28 1024 req/sec 2048 600 29% 830 Web 31 80 busy calls 160 145 90% 12 Database 15 60 connections 120 96 80% 36 Storage 14 30 TB 30 14 46% 21
  • 45. Conclusions Drive the system to the appropriate level of risk for the lowest cost.
  • 46. Join us for contribution opportunities Thursday, October 31, 2019 9:00-18:00 Room: Europe Foyer 2 Mentored Contribution First Time Contributor Workshop General Contribution #DrupalContributions 9:00-14:00 Room: Diamond Lounge 9:00-18:00 Room: Europe Foyer 2