Scalability!
( In a Nutshell )!
By Jeremy Lindblom (@jeremeamia)!
Slide 2
Slide 2 text
Jeremy Lindblom – @jeremeamia!
Slide 3
Slide 3 text
Buzzwords!
The Cloud!
Scalability!
IaaS!
Big Data!
HPC!
NoSQL!
Caching!
Data Science!
PaaS!
Load Balancer!
SOA!
SaaS!
Cluster!
Sharding!
Queue!
APIs!
Distributed!
Proxy!
Containers!
DevOps!
Microservices!
Web Services!
Virtualization!
CDN!
Slide 4
Slide 4 text
Scalability!
The ability of a system to adapt to
an increase in demands.!
!
Availability!
Elasticity!
Reliability!
!
Slide 5
Slide 5 text
How many of you have web
applications that run entirely
on a single server?!
Slide 6
Slide 6 text
I <3 LAMP
Slide 7
Slide 7 text
What happens when…!
• Your overall traffic greatly increases?!
• You have traffic spikes?!
• You run out of disk space?!
• Your hard drive crashes?!
• The power goes out?!
• Your server or data center is damaged?!
I <3 LAMP ?
Slide 8
Slide 8 text
How to Scale!
?!
Slide 9
Slide 9 text
How to Scale!
Slide 10
Slide 10 text
How to Scale!
Slide 11
Slide 11 text
How to Scale!
• Optimize your current system!
• Vertical hardware scaling!
• Horizontal hardware scaling!
Slide 12
Slide 12 text
Optimization Examples!
• Database index/query optimization!
• Update server software (e.g. PHP 5 -> PHP 7)!
• Use alternate software (e.g., nginx vs apache)!
• Fine tune Linux/Windows configuration!
• Minify/compress static assets!
• Cache results of intense operations!
Slide 13
Slide 13 text
Vertical Scalability!
• Disk space!
• Disk Type (e.g., SSD)!
• Memory!
• CPU!
• IOPS!
• etc.!
( Scale Up )!
Slide 14
Slide 14 text
Vertical Scalability!
PROS!
• No changes to
application code!
• No changes to
operations processes!
CONS!
• Typically requires
downtime!
• Doesn’t solve
availability issues!
• Have to pay for
hardware required by
peak time!
Slide 15
Slide 15 text
Horizontal Scalability!
( Scale Out )!
Slide 16
Slide 16 text
Horizontal Scalability!
PROS!
• Can improve
availability!
• Auto-scaling
solutions can
optimize costs!
CONS!
• Requires changes to
code and operations!
• Complicated!
Slide 17
Slide 17 text
Horizontal Scaling!
Ah ha, there's!
your <3 LAMP!
setup again!
Slide 18
Slide 18 text
Horizontal Scaling!
Let's give that!
database its!
own machine!
to reduce the!
load of the server!
!
Slide 19
Slide 19 text
Horizontal Scaling!
Multiple application servers!
with load balancing!
Horizontal Scaling!
Anyways… we left off here.!
What next?!
Slide 30
Slide 30 text
Horizontal!
Scaling!
Slide 31
Slide 31 text
So won't this cost me a lot of
money to get all of that
hardware?!
Slide 32
Slide 32 text
"The Cloud"!
Cloud computing!
is the use of computing
resources delivered as a
service on an as!
needed basis.!
Slide 33
Slide 33 text
Why Cloud?!
1. No upfront investment!
2. Reduce overall IT costs (pay as you go)!
3. Flexible capacity (scaling up and down)!
4. Speed and agility!
5. Focus on business, not hardware!
6. Global reach (Cloud providers have data
centers all over the world)!
Slide 34
Slide 34 text
Note: There are also many other cloud providers.
You should check those out too.!
!
Slide 35
Slide 35 text
Horizontal!
Scaling!
Slide 36
Slide 36 text
Horizontal!
Scaling with!
AWS!
Slide 37
Slide 37 text
Where to Start?!
It's a little intimidating isn't it?!
Slide 38
Slide 38 text
Where to Start? — PaaS!
AWS Elastic!
Beanstalk!
AWS
OpsWorks!
Slide 39
Slide 39 text
Later!
• Content Distribution Networks (CDN)!
• NoSQL (Neo4j, Cassandra, etc.)!
• Queues / Notifications / Eventing!
• Microservices!
• Docker + Containerization!
• Data Warehousing + Analytics!
• And much more!
Slide 40
Slide 40 text
Scalability!
( In a Nutshell )!
By Jeremy Lindblom (@jeremeamia)!