Yeah you can do private cloud as well. Docker lets you do that. It can cost a bit of money in the effort spent but payoff in the long run usually worth it - at scale.
Look into Kubernetes. Since everyone is migrating to Docker and Microservices, Kubernetes provides a perfect fit to run your workloads on local premise and then migrate to Cloud when extra capacity is needed. It's opensource and supported by several vendors.
Thanks. I expect we will eventually have a rack of servers - currently they operate their applications from a couple of full and very busy blade chassis - but I’m aiming low for the time being since we’re just getting started.
Move to an open-source orchestration platform and turn compute into a commodity so you don't feel tied to any particular VM vendor. I recommend Kubernetes, but there's also docker swarm, mesos, Nomad, Rancher, and probably about 100 other options out there, many of them very viable.
In the very near future I really hope to see cloud vendors losing a lot of their business for hosted applications, and just becoming big elastic pools of bytes and FLOPs, with open source orchestration tools managing the consumption of those resources and keeping cognitive overhead low.
Start with Docker and a PaaS like Heroku/Render/Fly/Dokku to get the core web service things without getting lost in all the proprietary vendor-specific things, or the madness of building one's own cloud just to run some web applications (Kubernetes etc).
Just start with a VM or dedicated server until you have scale that matters. Focus on product.
If you want an early head start with something like containers, then Kubernetes is nice and 1.4 has some good features to make it easy to scale across clouds/on-prem/colo in the future.
Start out with Heroku, so you don't have to waste time configuring and managing servers. You can learn all that stuff once you start to scale. Then move to something like Linode or Digital Ocean or cloud66.com
- Major cost reduction over services like AWS and Heroku.
- Custom built hardware for your exacting needs.
- Setups allow you to grow with your hardware.
- Work with local (to you) and remote datacenters to deploy private cloud(s)
near you, via colocation (10RU leases at 2 to 3 DCs works well).
- International datacenter deployment possible at a fairly minimal cost.
- Failover at all points, including the hardware, server, and datacenter levels.
- SmartOS or Xen hypervisor based clouds with Ansible.
- Pricing is directly related to how much your costs are reduced.
- Minimal disruptions to cash-flows.
- Numerous cost reducing strategies for much more dramatic savings over the example.
Seriously, if you apply concepts like eventual consistency, load
distribution/offloading, and understand the trade-offs between 9s and $ it
gets super interesting.
- I can help you setup the entire stack (e.g. hardware, hypervisors,
automated allocation/deployment, automated migrations, maintenance strategies, etc).
- If you have a solid engineering team, the maintenance of such a setup is much less than
you might expect (i.e. ~3 hours a week). No need to hire someone.
2. Machine learning, nlp, ocr, expert systems:
- Leveraging Clojure, Scala, and Haskell.
- Multiple 42u racks can be devoted to your jobs during/after development.
- Freelancing is only done a few months per year, as I run my own successful
data-centric platforms (going on 7-years now). Platform income is
passive, so I can slip away a few months a year for interesting
projects/teams/problems.
I don't think that method is obsolete. If your're a self-taught hobbyist then it makes sense to try to gain experience with hosting a product. I have been doing things that way since I was in college.
However, I still love what the cloud offers and I think that's worth learning too. For your next hobby project you may see the server set up as mundane and time consuming. If so then you could use one of the PaaS/IaaS products that are out there.
Rolling your own is always fun. I have worked in places that have their own data centers or that couldn't go to the cloud for various reasons. These skills are good to know. Also as a dev I still set up my own local servers for development - so you still have chances to learn.
AWS Fargate, Azure Container Instances, GCP Serverless Containers (private beta). All the clouds have something to offer now, but you can also look at Kubernetes which can also run a single container very easily and has managed offerings everywhere.
If you want to be single-tenant but still in the "cloud" paradigm, you can get a private cloud (NOT a virtual private cloud), i.e. an OpenStack instance just for you running on dedicated servers. Some providers will administer the OpenStack part for you - they'd call that a managed private cloud.
If you have containerized loads, you're gonna need something more than just vanilla VMWare. Right now your choices are Tanzu ($$$), Rancher, RedHat Openshift on prem ($$$) or Ubuntu...
Probably your savings will come from beign able to get bigger machines.
After 4 years in the cloud I am still surprised to see how performant physical servers are.
reply