Scalability is a big problem for everyone who wants to grow. In order to handle the demand, appropriate infrastructure both in terms of software and hardware should be met. What if hardware was as dynamic as a service where CPU and RAM could have been acquired when only it’s needed. Is there such an environment? How can you work with it? What you should be careful of? How your applications should evolve?
1. Preparing Apps for Dynamic Scaling
Roy Simkes, Head of Business Development
2. Outline
●
Why make this talk?
●
What is Dynamic Scaling?
●
Is your app ready?
●
Questions
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
3. Why?
How do we scale our applications now?
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
4. Why?
Is adding more and more resources to solve this problem
really helps?
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
5. Why?
Everyone tries to optimize something, why do we not
optimize the way we use our server infrastructure?
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
6. Why?
We want to create an awareness, that instead of adding
more, we have to utilize better!
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
7. Why?
To make the world, a “better place”
(We are not so-lo-mo or something)
https://www.youtube.com/watch?v=IXuFrtmOYKg
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
8. What is Dynamic Scaling
An automated and optimized way for scaling servers,
vertically
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
9. What is Dynamic Scaling
You build your infrastructure based on
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
10. What is Dynamic Scaling
Wouldn't been nice if you could plan it based on actual
load?
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
11. What is Dynamic Scaling
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
or scale down if you don't need
resources
Scale UP
instead of
Scale OUT
12. Are you ready?
Is your app ready for such a change?
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
13. Are you ready?
You probably are.
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
14. Are you ready?
●
Apache HTTP, Gunicorn
●
Python, PHP, (even Java)
●
MySQL, PostgreSQL
●
Many apps on top of those (Django, Wordpress,...)
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
15. Are you ready?
●
When booting up are you checking the number of CPUs?
●
Do you pin your process to predefined processors?
●
Is total memory value a constant for you?
●
Are you preallocating memory then do you never
increase?
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
16. Are you ready?
●
Really take advantage of it? Check your tools
●
Database
●
Application server
●
Cache server
●
Async workers
●
More tools, I'm not even aware of...
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
17. Questions
Let me answer a few of what you may have in mind
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
18. Questions
+ Do I really need it?
- You probably don't need to do anything to use it, so why
not use it?
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
19. Questions
+ How is this different then AWS' Automatic Scaling?
- It's not horizontal scaling so you don't need a LB or to
change your application so that you can support
distributed systems
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
20. Questions
+ How about Kubernetes?
- We are an IaaS provider, not PaaS so it's not just your
applications but your whole VM gets the performance
boost
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao
21. Questions
+ Can I use it with traditional horizontal scaling?
- Yes of course! Dynamic Scaling is not a replacement but
a complementary service to horizontal scaling that
increases utility rates of your resources.
Preparing Apps for Dynamic Scaling
Skyatlas @ EuroPython 2015, Bilbao