During my time at UKCloud I have had the benefit of seeing actual on the ground market trends in our partner and direct customer base. I get to see exactly where a customer or partner are in their cloud journey and this helps me to begin to understand the challenges they are facing.
This inspired me to express my views and thoughts on the ‘why’ of cloud native architectures. Why adopting cloud native is key to success not only from a cloud journey perspective, but why this helps to drive and influence business success.
In order to better understand the ‘why’ behind cloud native architecture you must first remind yourself – “why cloud in the first place?”
Was it because of the ‘follow the leader’ approach which meant you had to do it to compete, or was it because you had some serious concerns around the relevance of your business in today’s’ ever increasing competing market. Perhaps it was a key part of your ‘digital transformation’. Did you see the cloud as a key enabler to innovate and break into new markets, verticals, or simply to get closer to your customer base. And finally was it because you were told to do it because everybody else was doing it?
Having a good grasp of the reason why you’re doing what you’re doing keeps you honest in your vision and understanding of how to achieve that vision. ‘Simon Sinek’ does a great job of explaining this in more detail here.
Evolution of software development
The essence of cloud native is the development and delivery of software in the cloud natively, by utilising what cloud has to offer. The way software was developed back in the 1990’s to ‘00’s to how it is being developed mid 2000 onwards has changed a great deal – from a centralised, scale up approach to develop ‘monolithic’ patterns to a more scale out, distributed architecture development.
Scale is a massive component of cloud native, and one of the reasons behind the growth and development of cloud has been related to the ‘scale’ challenge. Companies such as Google, Facebook, and AWS are all about scale. The whole e-commerce industry back in 2000 was struggling with scale, how to scale and grow their technology platform and from which came the cloud as we know it.
Cloud went a long way to solving the problem of scale and allowing businesses to develop new deployment models, deployment models built on cloud native architectures. With the old deployment models it took weeks to get a resource. Once you got a resource you had to hold on to it, nurture it feed it. You would have had to order extra capacity for the peaks if required. The adopted software development and delivery methods pre-cloud meant it relied heavily on the infrastructure to take care of failure and resiliency. Now the cloud can take care of non-functional requirements.
Traditional software development and running of technology was very much built on legacy architectures, where we got into the habit of doubling up everything – a consequence of scaling up rather than out. An interesting analogy comes to mind on this point, while attending a Red Hat OpenShift workshop with Andreas Stolzenberger:
‘Imagine towing a brand-new car alongside your car just in case your car has a breakdown while you travel to work every morning’
This is how we have been running enterprise IT!
While conducting various customer workshops, I see in many cases there is a tendency to move workloads to the cloud and run them in a ‘like for like’ fashion i.e. exactly the same architecture you had in an on-premise data centre. Now you may well see some benefits around space, hosting, power, however the real essence or value of cloud is not being achieved by just moving and running workloads ‘like for like’ in the cloud.
Moving to the cloud and continuing to keep doing what you have always done is not going to give you a different result, it all links back to what I said about reminding yourself of the initial reasons that you looked at the cloud in the first place. Are you achieving what you set out to do? is this the ‘digital transformation’ you were hoping for?
Why cloud-native matters?
Cloud native architectures take full advantage of the cloud and everything it has to offer: scale-out, distribution, on-demand resource, self-service capability, utilisation and cost savings. However, this is not the value or the ‘why’ behind cloud native, it’s the implications of future growth and competitive threats to your business that ultimately dictate a cloud native mindset
Cloud native provides the ability to reconstruct your business into smaller functions which are programmatically composed and integrate not only with your internal building blocks, but with a community of their party services all contributing to experimentation, innovation, resulting in new products and even new markets for your business.
Being able to understand why cloud native matters will go a long way to accomplishing some of the reasons why you decided to look at cloud in the first place.
My second article in this series will focus on the ‘what’ and ‘how’ of going cloud native.