Cloud: An Essential Code Delivery Mechanism
Forays onto the cloud have been mixed with most companies toeing in with Software as a Service (SaaS) models — which makes sense. Robust offerings like Salesforce.com provide tremendous productivity tools that answer the needs of most companies, without the cost of building. But according to Gartner one of the fastest growing segments is IaaS — Infrastructure as a Service, with high growth driven by enterprise buyers pursuing hybrid IT strategies and small or midsize business buyers adopting IaaS. And while for many companies the motivator for IaaS might be to lower IT costs — there is another driver for long-term proponents of the cloud: Innovation.
I spoke with Sanjay Anand, Solution Architect for Zynx Health, last month on a panel at MarkLogic’s Summit in NY and we discussed Zynx’s cloud initiative. Standing up MarkLogic on Amazon a year ago was a logical cost-containment step, and choosing MarkLogic’s Enterprise NoSQL database platform was a logical innovation decision — but in the past four months, Zynx took advantage of MarkLogic’s Early Access program to avail itself of automation tools that have significantly improved Zynx’s ability to innovate.
“We practice continuous deployment which requires automatically deploying infrastructure as code,” said Anand. And that was problematic when Zynx first chose MarkLogic. Without a real cloud offering we had helped the healthcare content and technology company stand up its MarkLogic licenses at AWS — but Anand’s team had to figure out the rest. In deploying infrastructure as code, they would deploy an entirely new instance of MarkLogic as a test server, QA it and then push to live – taking the initial live server offline. But to do so it meant kluging together some “painful curl code– and from that transferred into a ruby class in ML7 – added licenses and added cluster” — and voila! “automated deployment” — except for all those painful hours of scripting code.
I asked my colleague David Lee, who is lead engineer for MarkLogic’s Utility Compute Services to help me understand this. David is as sharp as as a whip – yet so down to earth when it comes to explaining the Whys. Why was deploying a new instance of the database so laborious? “There are two problems,” he explained. “Most databases are NOT designed to scale horizontally — you can’t just add machines. If you can scale, one of the pain points is having to deploy a new instance of the database — which does require painful coding to deploy.”
Which brings us to problem two. “Most databases are designed to be handled by humans — add a license key, type in a user name, set up the databases, maybe get a virtual machine like VMWare running. If you want to add a new machine programmatically it really was not easily done. At MarkLogic we had to rethink the entire deployment process — which is not just configuring a database — it also means addressing the allocation of hardware.”
“When you want to test new code,” Lee continued, “you have to turn to IT to stand up the machines to do the test and then to tear it down before you deploy it.”
(This is as good a time as any to interrupt and say that the time spent provisioning hardware is not inconsequential. It is one of the surprising hurdles IT teams encounter when you ask them to add new user features or even create new reports. Before bringing up new dev and test environments to host the code, big clunky, process-laden companies have created byzantine processes that require forms, sign offs and a whole bunch of Ts and Is that need to be crossed, dotted and collated. All in the name of cost cutting. Productivity be damned.)
Zynx didn’t have the bureaucratic issues — but it did have the issue of trying to automate a machine that was initially designed to be handled by human types – – which brings us back to MarkLogic 7, which Anand and his team were salivating over. “With MarkLogic 7 and Amazon we can now turn up a new instance of a machine with literally the press of a button. We test the code and when the code is declared ready, the test server is pushed to live and the existing live server is taken offline. It’s faster to market, and the man-hours spent writing deployment code — are now spent innovating.”
New cloud-based licensing models and hourly rates mean companies only pay for the time they use. And by running on AWS the process of allocating and configuring IT resources can be completely automated and run in minutes.
The results are faster time to market and the man-hours spent writing deployment code — are now spent innovating.
Lee explained the magic under the hood that allows this. “We changed the license model and added new Managed Cluster/Utility Computing features and a boatload of management REST APIs that lets you automate deployment, automatically scale up as traffic or queries meet certain thresholds — and contract when they don’t. I really think these features will revolutionize innovation.”
And while most companies may cringe at the idea of upgrading to the latest version, Anand told me with a huge smile — he can’t wait. Good news, general release of MarkLogic 7 is this week