Unless you’re required to use an ensemble of unique services to power your app, planning for scale doesn’t have to be complicated. But without understanding the options available with the development tools you’re using there’s questions:
- What “easy” options exist to accommodate growth?
- What happens when “easy” options aren’t enough?
- For occasional tasks that are cpu intensive, is it beneficial to scale up and back down?
- Are there structural tweaks that could resolve complications from rapid growth?
Prepare To Discuss Scaling Your App
The first step to understanding the possibilities is discovering potentials that already exist. These are features of your existing software stack. Doesn’t have to be something new and fancy. It could enable you to utilize something new, but unfancy.
Boring technology might cost less than something new and shiny to fix a scalability challenge. See this slide deck by Dan McKinley that explains, Choosing Boring Technology is wise.
[Pic from deck: Choosing Boring Technology – Dan Mckinley]
Example Questions might be:
- Can we add a second web server and split requests between them without trouble?
- At what point do we need to add a second server?
- Is adding a load balancer the only thing needed to achieve web-server scalability?
- How can we distribute the load on our database server?
- Maybe add read and write to master, but read from mirrored slave server?
- Does our datasource allow multiple servers (i.e. primary and failover)?
- What areas can we isolate to either off-peak hours or smaller single purpose servers?
- Do we have a particularly heavy-hitting query? Can we break it down smaller, or schedule it?
- How can purpose specific servers be scaled?
The Elusive Cloud vs Old School Customer Focused Hosting
The biggest temptation or “shiny new” object is “Cloud”. Many people abandon their hosting company in pursuit of the “Cloud” – at a loss. The service of Hosting hasn’t changed much – it’s boring.
What you CAN do, or what’s OFFERED by cloud and hosting providers alike (software, services, etc.) is always changing. It’s still however only software running on machines somewhere.
The question becomes, what can I do with the hosting I have? Or what does the web hosting I have enable me to do? THIS is where you can strike gold!
Hosting with the right blend of services, and support is a force multiplier. It enables you to take a familiar stack and apply creativity for a necessary outcome. It doesn’t force you back to the drawing board for fractional gains.
Final Thoughts About New Shiny Hosting & Scalability
I remember a story about a european company that invested millions into a new application. It was launch day and so proud of all the development and magic they’d put into the app. It was a mammoth undertaking and finally complete. When it launched, it bombed. Timed out and was slow. It tooks months to determine what was causing the slowness.
By then the app wasn’t needed anymore.
Don’t refactor your app to fit the new shiny cloud. We can help with application stack and scalability provided by cloud architecture too. Talk to our VPS team if you’re curious to learn more.