Proof of Concepts in a Cloud world
Traditional on premise budgeting is often done by “counting boxes”. How many do we have, how many do need to be replaced, …
We often get questions like (don’t worry if the question sound like Chinese for now) :
“I want to setup a SharePoint farm in Azure. Microsoft says using a SQL managed instance is supported instead of using a SQL Server. Would you recommend this ?”
Let’s translate this to :
“I want to use a specific cloud service to support my cloud application. Would you recommend this ?”
To answer this question, let’s go back in time … Over 20 years ago, one of my first large projects was to build a solution for a logistics company that involved a very complex planning module. It turned out to be a custom development that would run in “client-server” mode. Architecture these days was relatively straight forward : a database server box, windows clients and some networking to stitch it all together. Hardware had to be ordered on time. Imagine somebody would have come up with the idea : why don’t we order a UNIX server with an Oracle 8i database, a Windows server with an Oracle8i database and a Windows server with a SQL Server 7 and see what works best … The answer would have been along the lines of “have you lost your mind ?” …
Oracle 8 was released in June 1997. The next version Oracle 9i was only available in 2001. In a cloud world, service updates are done as a never ending stream of small incremental updates. Not just for the the core services are being updated in this way, software development is done in exactly the same way. Amazon engineers deploy code every 11.7 seconds, on average. Netflix engineers deploy code thousands of times per day.
So the reality is you can no longer turn to a software provider to ask : “Will this or this scenario work for me ?” The good news is trying it out is fast and cheap. It does require a different mindset, a different organisation and a different approach.
Different mindset
Traditional on premise budgeting is often done by “counting boxes”. How many do we have, how many do need to be replaced, … Counting boxes doesn’t work in a cloud world. In a cloud world you are using services. Some services are not by coincidence called “serverless”. A cloud solution is a combination of services. One solution can be designed in an endless combination of different types of services. An architecture is a very different game from 20 years ago. Architects will select services based on business requirements. And they will have to test it by means of … a proof of concept. Cloud architects will get their hands “dirty” to try things out. No hardware needs to be ordered, nor installed. They take a separate cloud instance and setup what they need to try out.
Different Organisation
A traditional IT organisation with development, infrastructure and operations is not a good idea in a cloud environment. That in itself is another story. Looking at it from a Proof of Concept point of view, the small proof of concept teams must be able to get the POC up and running without organisational boundaries. Often this is even a “one man” effort to set it up.
Different Approach
In a larger enterprise environment, the last thing you want is that over 100 or more people are spinning up their own proof of concepts without any structure. That is not the way to go. Part of a Cloud Center of Excellence setup is a workstream called “Reference Architectures”. It’s not a typo to have “architectureS”. In an enterprise you will have more than one set of reference architectures. To keep it simple : a security reference architecture, a database reference architecture, virtualisation reference architectures, …
It is within these workstreams that technical proof of concepts are being executed. But the idea of proof of concepts is not limited to technical explorations. To take advantage of cloud benefits, business proof of concepts are even more important. Using technical building blocks, business ideas will be tried out. Without major upfront investments a solution can be setup, tried out and if needed shut down again. Or when proven successful, expanded into a next iteration.
Using Proof of Concepts in a cloud world has nothing to do with random trial and error. The technology allows to test things out, technical and business related, without major upfront investments.