No, you don’t need cloud. Docker? No. Kubernetes? Hell no!

“The buzz” is overrated

When we try to be “in the buzz” of what’s going on in our industry, we flock to sites like reddit, Hacker News etc… There’s a certain class/pattern of things that gets popular in those news aggregators. Exciting new technology, someone rewriting a Java piece in Rust, a shiny new text editor you can use to edit text files — half a gigabyte in size, eat 80% of your RAM (but hey you can use the mouse AND it support tabs!) etcetera.

Taking technology decisions based on emotions — Bad idea

Anyone who’s been around long enough will tell you that technology is the easy part. Trickier part is dealing with humans in the equation. Sadly some technology decisions for an entire company are based on,

  1. Looks good on a resume and likely will help getting hired for someplace else in 2 years
  2. A new director/VP reevaluating everything because current systems are boring and need to show something different. Measurable impact and help to make the jump to SVP
  3. Big boss had a lunch date with another big boss from company X and now tells entire engineering team to scrap everything and redo stuff with technology from company X

Technology selection based on buzz words — Bad idea

Some of the powerful cloud, containers, orchestrators are created to handle very large distributed computing problems. Kubernetes solve Google scale problems. It’s good to ask whether you have Google scale problems. If you don’t then it’s going to be a massive waste of time, energy and money.

  1. Technology driven companies (Netflix, eBay, Uber, Lyft, Facebook)
  2. Companies who use technology as a key part of their success (Banks, insurance companies, device manufacturers etc…)
  3. Companies who’ve outsourced their IT (not worth talking about here)
  • Massive scale problems — large user base (entire world)
  • Heavily engineering driven. Engineering team take all technology decisions based on problems at hand
  • Solving real hard problems
  • Low latency is important to provide an equally fast service for everyone. Edge services, heavy use of CDNs etc…
  • Requests coming from all over the world. Need a distributed scalable architecture. Lot’s of microservices, multiple data centers and regions. Complex request routing logic, highly sharded DB layers, heavily cached read ops etc…
  • Smaller development teams
  • Bound to only a few static data centers
  • Very constrained user base — couple of million users at most or less
  • Engineering capabilities/skills are comparatively lower as a whole
  • Actually need simple architectures to solve relatively small straightforward problems

Moving to cloud to cut costs, it’s cheaper — Bad idea

Being on the cloud gives a lot of flexibility to solve problems which was not possible before. My favorite example is from Netflix where Adrian Cockcroft mention that during early days when they were trying to use Cassandra, they were able to stand up a 96 node Cassandra cluster across 6 different data centers, load 18 terabytes of data, hit it like crazy and then shut it down. They were able to understand a lot of characteristics about Cassandra for their workload. They were able to do it because they were on AWS. You cannot do that sort of thing if you’re on a traditional data center.

Adrian Cockcroft talking about moving Netflix’s services to cloud

So what we should do?

Look beyond buzz wordy tech to find simpler solutions. There are high quality open source tools for creating vendor agnostic solutions to pretty much any enterprise problem these days. These open source tools provide similar interfaces and features so it’s very easy to create solutions on a traditional data center. Most recent example I found is Minio. Minio is an open source storage server with an S3 compatible API. That’s very powerful. You can integrate a much more cost effective solution with full API compatibility without cloud vendor lock-in.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Chintana Wilamuna

Chintana Wilamuna

I’m part of the WSO2 team. Opinions my own