Three things you didn’t know about Golang, NoSql, and Cloud

With so much happening across the enterprise IT community on multiple fronts, it’s impossible to keep up. It’s also easy to make assumptions about the state of any particular technology based on a few web forum comments or a couple of blog posts. But the tech evolution is occurring so rapidly that yesterday’s opinions are often invalid today. Several knowledgeable professionals shared their updates about a few topics that have generated a lot of hype, controversy, and confusion over the past few years. As of mid-2016, this is where things stand.

Golang is prepared to go long

When Google first started toying with the Go language, many developers thought it would be a passing fancy. Would the internet giant really go the distance and provide lasting support, or would the language fizzle out leaving just a few die-hard programmers clutching at the remnants?

One company that bet on Golang being around for the long term was This microservices architecture vendor was already coding in Go in 2012, before version 1.0. According to CEO Chad Arimura, it came down to choosing the right tool for the job. “We made a list of what we needed and started comparing languages. We wanted to find one that was fast, nice to write, and didn’t make us use the JVM or write Javascript. There were only a few options. We said, ‘let’s go for it’ with Golang.”

The team was instrumental in sparking the Golang community. “We started with a very small group for support, but it is an elegant, usable, readable language. Since then, almost five years later, we’ve seen it grow in support. Now, there’s a bustling community growing around it.”

The language, which is popular at Docker and in the microservices community at large, is now well supported and likely to stick around. But it will remain a language that is only the right fit in very particular circumstances. “We use it when it makes sense. It is creeping its way into a standard language into almost every company you can name. It is best suited to fast, distributed systems, computer and system level programming rather than for a web app or a Rails stack. You use it when you need fast, high performance, parallel processing such as for a load balancer, network server, API server, or queue service.”

NoSql is still a valid solution

NoSQL has certainly passed the ‘Peak of Inflated Expectations’ in the Gartner Hype Cycle model. But it’s time to crawl out of the ‘Trough of Disillusionment’ and start climbing the ‘Slope of Enlightenment’. NoSQL does not solve all of SQL’s problems, and it will never replace relational databases. But it was never intended to. If enterprise users want to start realizing full productivity out of NoSql, they have to accept that it is part of a multi-pronged approach to handling Big Data.

Trisha Gee, Developer Advocate at Jetbrains, pointed out that NoSQL does have a valuable place in today’s app development. “It’s not a flash in the pan, but another tool that you can use at the right time. If I’m starting to work on a new application and it’s likely to evolve rapidly, like mobile, I’m going to choose a NoSQL database because it’s more flexible and able to change.”

She acknowledged that working with NoSQL does require an adjustment since it can’t be queried in the same way. “You need a different way of thinking about non-relational. It works best when you’re not doing massive transformations on your data.” For databases that are constantly changing, having a more sensible relational schema may make traditional SQL work better. With fairly stable historical data, MapReduce and similar functions can work wonders with NoSQL to derive value from massive data stores.

The public cloud isn’t as popular as it seems

From the amount of press big cloud players like Amazon and Azure are receiving, it might be reasonable to assume that companies are doing eighty percent of everything in the cloud. That’s an impression Jordon Jacobs, VP of Products at Singlehop, has tried diligently to dispel. All the attention on public cloud is making CIOs question their own decisions. “It’s a funny place where everyone thinks they are doing it wrong, but everyone is doing the same thing. In fact, Amazon, Azure, and Google make up only one third of the market share of the managed services market. When CIOs realize this, they feel better that they are doing the right thing.”

Should everything in the enterprise portfolio really be in the cloud? According to Jacobs, that isn’t necessary. “Some applications belong there and some don’t. There’s this assumption that every single application needs to live in the cloud. That’s simply not the case. CIOs are embracing it for appropriate use cases, but there are other things that have no place there.” For “paper applications” that do boring stuff like email, accounting, and HR, there’s no need for auto-scaling or provisioning and de-provisioning. Jacob pointed out that these boring apps with their consistent workload don’t need to go in the cloud. “Applications that are very consistent are better suited to a standard environment with an ISO process.”

It’s important to keep in mind that cloud has expanded to encompass a very broad range of services. They don’t just provide virtual machines. From messaging queues to mobile software, Amazon alone has more than 50 different products. Choosing a public cloud solution simply because it offers virtualization doesn’t necessarily make sense.

According to Jordan, “The problem with the business model in the cloud is that they use instance based billing. For every app or VM, you incur an additional cost. That’s the same model that we had before virtualization existed. You had to buy and deploy more bare metal servers. In the cloud, you deploy five VMs, and pay for that many VMs. But with managed services, you have pool based pricing. You can buy a certain number of servers, then spin up unlimited VMs until you reach the max for those server resources. That’s significantly more efficient. VMware’s business exists only because of that efficiency. Amazon is a step back in efficiency for consistent workloads. We believe a hybrid makes a lot of sense.”

Of course, managed service providers are still buying much of their own cloud and data center resources from Amazon, Azure, and Google to provide the hybrid model their customers need. The real price efficiency of managed services is tied to reducing costs for personnel within each client organization. That’s an offer that the average CIO is finding it difficult to refuse. For this reason, even though public cloud providers may have captured the majority of mindshare in the market, it will likely be a tougher battle to capture the heart of the market.

App Architecture
Software Quality
Cloud Computing