Curious to know what “elastic hosting” is and whether it’s a good option for you?
Yeah, that makes the two of us. From what I heard, it’s supposedly this super scalable, super flexible, pay-for-only-what-you-use type of cloud hosting. And a great solution for anybody wanting high performance hosting at reasonable costs, and for all businesses from super large to super small. But is it really all that?
Let’s explore this new cloud hosting technology.
What is “elastic hosting”?
Elastic hosting vs Traditional hosting
Traditional hosting is where your accounts are set up entirely on one server. One server does it all: PHP, MySQL, FTP, emails, firewall, DNS, etc.
Even when they say “cloud hosting”, it’s still traditional hosting as your account is still only on one physical host (server). They only call it cloud because it’s integrated with an online interface and connected to other online services. Also, “cloud” still sounds like a cool buzzword now even though it’s been around for over 10 years, lol. (Actually elastic hosting has already been around for 10 years as well…but I digress.)
Elastic hosting is a type of hosting environment where accounts are set up on virtual “cloud” instances spread across a cluster of servers.
Your web server, database server, storage server, FTP, emails, and such are all delated to separated servers (aka “horizontal scaling”). And whichever servers are bottlenecked or overwhelmed can be increased in size (“vertical scaling”) or assisted by adding another server instance to that layer (“horizontal scaling” again).
Hosting across a server cluster adds tremendous complexity and traditionally reserved for only the most demanding enterprise needs and with highly-specialized admins and dev staff to maintain it. For organizations of that size, clustering is the only way to handle a website and traffic of that magnitude.
But elastic hosting is more than just server clustering…
Elastic hosting takes server clustering a few steps further using automated software.
- Don’t have to provision every server from scratch.
- Manually enabling and disabling services.
- No more configuring a hundred proxies, opening ports left and right, remote here and remote there.
- All that hard dev ops work is now is handled by software.
- One click and it’s up!
Scale automatically up or down.
- The automated software can quickly rescale your instances within minutes.
- This scaling can be manually triggered or automated based on server loads.
- Basically, your cluster will react immediately to its load and you never have any performance or downtime issues.
Billing for actual resources used.
- This makes clustering now affordable for even much smaller companies.
- You don’t have to pay the price of multiple servers to use a cluster.
- It’s somewhat similar to the VPS vs dedicated server comparison, where you’re able to afford better performance by paying for only a portion of the host.
- With elastic hosting, you’re able to pay only for the resources used (not the entire reserved instance). Imagine like a hotel that charges you only for the hours you’re in the room.
Different kinds of elastic hosts
DISCLAIMER: Lots of unofficial and totally made-up terms in here.
There are different kinds of elastic hosting solutions and they vary in how they market themselves and provide elastic hosting to clients. Obviously, solutions cater to different clients and with different needs. Just know that they’re all very different, ok?
SIMPLE elastic hosting (e.g. Closte)
Very simple to set up, looks and feels like typical webhosting services. Is your instance sitting only on one server or multiple? Who knows.
Their main sell point is that their service is very fast, very reliable, will scale with your traffic and you pay only for what you use. This service looks like a regular webhosting service and is aimed at general purpose webhosting clients.
The clients using these simple elastic hosts are there for simplicity. They want easy scalability without having to setup their own clusters and such. If there are any clients who don’t like these solutions, it’s likely because of A) they don’t like the cost premium, or B) these services might be too simple and lacking extra integrations that they need.
CLOUD SERVICE elastic (e.g. AWS or GCP)
Super complicated with many layers to manually configure. Sure, you can build your own little hosting “Skynet” cluster connecting many servers but requires lots of technical knowledge and very overwhelming UI.
It’s a highly un-managed solution that either you (or your hosting provider) will have to deal with. The advantage is that you have a hundred or so cloud services at your disposal to integrate many extra services and API’s into your web application. This type of elastic hosting is probably best for only the most demanding applications (and large companies), but there are still many smaller companies who use AWS because they know and trust the name and don’t know of other solutions.
Typically, AWS is used by middleman hosting providers who have the dev-ops staff but not the server infrastructure. By piggybacking off of Amazon’s hardware backbone, they’re able to offer an excellent hosting solution to their clients with limitless service integrations available. If there’s any drawbacks to using AWS or GCP, it’s that it might still be a little pricier than using more traditional datacenters and that there’s still so much management to be done within their complicated UI.
CLOUD PLATFORM elastic (e.g. Jelastic, OpenShift, Pivotal)
This is a rapidly growing segment of elastic hosting industry which I think will become widespread sooner than later. Jelastic, OpenShift, and Pivotal are all cloud platforms that are installed onto server infrastructure to automate their management.
I suck at explaining this so let’s try a different way. Look at AWS and GCP. When you use their services, you’re using their servers and their user interface. What happens if you go to another hosting provider? They’ll probably have a different interface and different software used to manage their infrastructure. Maybe some will have their own proprietary software (like Cloudways, GridPane, RunCloud). Others may have some industry-standardized 3rd-party solution like WHM/cPanel or Plesk.
Well Jelastic, OpenShift, and Pivotal are like cPanel/Plesk…but they run off the cloud and also that they can manage server clusters rather than just one server. (Dammit, I really hope you guys can follow me.) So anyway…many datacenters and large companies will use elastic cloud management platforms (like Jelastic, Openshift, and Pivotal) to manage their server infrastructure.
Why? Because A) it’s cheaper and way less work than developing their own in-house proprietary software, B) offers a standardized interface for elastic hosting clients, and C) allows traditional datacenters to enter the elastic hosting market with their existing dev-ops staff and compete with AWS/GCP.
Benefits of elastic hosting for PROVIDERS
Most of this won’t apply to anybody reading this guide but it’s important to know how pieces of the hosting industry fit together. How their business models work and what future technology may evolve towards.
Serve larger clients (with more complex needs)
Being able to easily scale instances up or down allows providers to handle much larger websites and web applications. No more restrictions within the limits of defined resources. Clients are now free to grow as big and as erratically as they need. The cloud host will instantly react to their traffic loads. And of course, having bigger clients means bigger paydays.
Hosting businesses can now offer more complex solutions without increasing workflow complexity. Their devs aren’t slaving hours away to fragile configurations. Configuring an elastic cluster is a matter of a few clicks. Rescaling an elastic cluster is a matter of sitting back and letting it do the job for you! Adding a node isn’t even a thing you have to do. Deploying said cluster can be nearly as easy as deploying a single server instance.
Offer more solutions to clients
I’m a small time host so I’m not aware of the hundreds of possibilities out there. But simply…elastic hosting will allow you to sell very complex solutions to ALL clients. Even very tiny ones.
You could literally sell a giant server cluster to a $25/month client because elastic hosting can natively track by resources used. Imagine a car rental app that could rent out Ferrarri’s by the hour. They’d have so many more customers than the rental company down the street that charges by the day.
You could also sell offset hosting packages. Elastic hosting can sell to a client with high memory needs but low storage. And then to another client with low CPU needs but high storage. You could sell easily to these clients, even put them on the same server and not even have to deal with weird pricing plans that don’t fit either. With traditional hosting, you’re stuck to industry standards like the 1cpu per 2gb memory ratio. (It’s like the hot dogs and buns situation all over again…hot dogs sold in 8, buns sold in 6).
Stand out from competitors
What fraction of the businesses out there do I really think need to have elastic hosting? I’d guess only a few. But in being able to provide for those businesses makes your company appear that much better for it. Elastic is a buzzword now too among larger businesses.
Lots of action in this segment. Dockers and other containers are heavily integrated into elastic hosting already. It’s very easy to clone or send containers around the world. Really easy to fire up environments once you’re separated them from physical instances.
Benefits of elastic hosting for END CLIENTS
Again, due to the nature of elastic hosting being able to track by resources used…clients now have a new billing option. Instead of paying for an entire reserved instance, they can pay only for the resources used. Whether or not that’s actually cost-savings, I talk about it soon. 😉
Clients can feel free to grow as big and as fast as they want. No need to worry about webhosting infrastructure and that critical applications won’t be available during high demand. They also don’t need to worry about overpaying for a giant reserve instance for the off-chance that there might be high traffic. Elastic hosting allows them the flexibility of buying the smallest plan and trusting it to scale as needed.
Thanks to scalability features, there’s no more client concern about downtimes or service outages. Their websites and applications WILL BE ONLINE no matter how many hits they get. Elastic hosting is always on, always fast, always resized for your actual use.
My CONCERNS with elastic hosting
It’s not always cheaper
As with anything, the PAY-AS-YOU-GO billing model isn’t always cheaper than buying/leasing the resource outright. There are several reasons why a reserved instance can still be cheaper.
- Reserved instance discounts – hosts give discounts when you prepay. Simple as that.
- Caching makes scaling free – applications with static content can easily utilize caching to scale exponentially without actually requiring more resources.
It’s not always faster
This one’s painful for me to say. I’ve tried exploring clusters to make them faster than local instances but you can’t. The physics won’t let you. It’s like trying to bake a cake in 2 kitchens. If you the second kitchen is your next door neighbor’s, or even just upstairs…the proxy time is a delay that can’t be mitigated. Simply put, apps are always faster running locally and with less virtualization. And for that reason…there are still many companies that swear by a single physical host—and for very good reason!
Clustering really isn’t a speed optimization but a load-balancing optimization…or I would also say, a “load mitigation” mechanism. It doesn’t speed you up. It just prevents you from slowing down. Just like how having more cash registers at the grocery store only means less wait time in the checkout line…but the actual transaction time of your checkout will remain the same.
Even more so is the potential conflict of interest in the PAY-PER-USE business model. How do I know a company billing by resources used will always optimize their stacks in my favor? It’s like the VPS vs shared hosting debate all over again. Sure, you can lease a theoretically higher-powered hosting instance…but how do you know it’s not over-sold or other shortcuts taken elsewhere?
You can chalk it down to the ethics of the company you’re dealing with. But just know the business model is still an “upsell business model” but just restructured in a different manner.
Liability for resource abuse
Now I’m just being a cynic with no real experience. But here’s what I’m wondering about…
What’s if your site gets DDOS’ed or random massive storage increase? Like you got hacked or a giant error log grew out of control, or some other unexpected issue hogging up tons of resources? Who’s responsible for that?
At least with a reserved instance, maybe I’d be hit with a warning email or downtime notification and/or my hosting company jumps in pre-emptively without my intervention. But with elastic hosting…is anybody gonna tell me? Is anybody gonna care? I do hear elastic hosting can set limits to prevent that but it’s still a concern.
Elastic hosting sounds complicated to me. Sure, maybe my hosting provider handles all that for me…but it’s still gotta be more complicated to them as well, right? What extra potential issues should I be worried about?
Or maybe. I don’t have anything to worry about. I’ve noticed servers with many clients can repaired in faster time than ones with only single businesses. There’s more squeaky wheels to complain, so to speak.
My actual experience with Elastic Hosting
The real BENEFITS of elastic hosting
I think the real benefits of elastic hosting is reduced deployment and management. You are usually being deployed to a cluster that already exists, is already stable and working well. And you’re housed in a cluster along several other (likely bigger) clients.
It’s like being on the same node as Youtube. You can bet all the best performance and reliability measures have been taken since your neighbors are extremely demanding clients.
The other benefit is in the user interface. Much of elastic hosting management has already been implemented very carefully in the software. This benefit will of course be passed down to you as the client. No need to worry about resources or mucky terminology. You can stay much more focused on your applications.
The last benefit is in 3rd-party integration. Being clustered usually means you’re already interconnected to many other available services. Any extra service you want to add is an easy flip of a switch. No packages to compile or begging your admin to install stuff and justifying why you want it.
Would I use elastic hosting?
No, because my web applications are simple and I care more about raw computing performance (than scalability). But there are definitely a handful of fun scenarios where elastic is the much better (and much more fun) answer. I only couldn’t play with them because I didn’t have the toys until just now. 😉