Mar 14, 2022, Consulting, Infrastructure

The ever-expanding cloud – How to transform to cloud native?

John Oxley Business Consultant
transform to cloud native
Moses might possibly have been the first person to download files from the cloud, with a tablet.

Joking aside, the word ‘cloud’ (the technology, not the water vapour) is well known to most, but how well is it understood? It took me quite a few hours to get it, and I am pretty sure that a simple, clear article will help those who wish to know more.

As recently as 2009, Larry Ellison, the CEO of Oracle, the second largest software company in the world, ranted about the cloud, saying the description was impossible to understand, yet by 2016 the company had started to offer a pretty comprehensive cloud service.

If you’re interested, please read on.

What does cloud native mean and why does it matter?

My initial ignorance was thinking that ‘cloud native’ was someone who uses the cloud and is comfortable with it. Turns out I was completely wrong, of course. 

Cloud native is a technology that allows organizations to build and run applications that utilize all the elements of the cloud, those being scalability, resilience, elasticity and flexibility, in public, private and hybrid clouds. By using this technology, developers can reduce their operational tasks and spend more time on faster application building.

Cloud native services such as platform automation, serverless functions, microservices and DevOps, allow engineers to make high-impact changes on the fly, frequently and without excess work. Let’s break down these services.

  • Platform automation – Platform as a Service (PaaS) helps businesses manage their server operations, with additional software and middleware (like a software glue). It is very useful for those who wish to hand over server operations to a third party. It removes the difficulty of building and maintaining servers, and comes with a computing platform and other applications as needed.

  • Serverless functions – Bit of a misnomer here, as there has to be a server somewhere, but serverless means that a company that uses a cloud provider’s server only pays for the time it is used, instead of 100% if the company uses its own server. The serverless system is excellent for developers who don’t need to worry about the background infrastructure, and it is auto-scaling, growing to demand.

  • Microservices – With a monolithic architecture, all processes run on the same level, so that if one process gets a spike in requests, the others must be scaled up as well. Microservices split each process to be managed separately. It makes app development processes run in parallel, so each team can concentrate on their own small part of the application, and facilitates continuous integration, delivery and deployment.

  • DevOps – Combining the two resources of software development and IT operations, it aims to reduce the life cycle of system development and make it easier to provide high quality continuous delivery. It may require a culture change as it is a mindset as well as operational, with shared ownership, workflow automation, and rapid feedback. DevOps makes the most of the resources available.

What are the benefits of becoming cloud native?

Cloud native services are central to digital innovation. They remove most of the managerial tasks related to building, operating and maintaining highly complex platforms. Development, testing and deployment processes in the cloud can be enlarged or minimized as needed. No more idle time on local servers.

Because cloud providers have to be up-to-date with new technologies and changes, being ‘attached’ to the cloud will always be a good decision. Businesses get easy access to new tools and services, and they can work more efficiently.

Reliability is one of the most important concerns with the cloud, judging by the reaction when Amazon went down in 2011, but since then, cloud technology has become more robust, more secure, and easier to migrate older systems. The end result is that the business will feel closer to the user, building on the trust gained by having a reliable, fast experience.

In a physical sense, most IT personnel have much better stuff to do than look after in-house servers, with all the upgrading and repairing. Moving selected processes to the cloud will free them up for more important tasks. And they don’t have to deliver 24/7 availability.

Gear up! Prepare for transformation

Primarily, a business wanting to move to the cloud has three choices of provider. Public (a prime example is Microsoft’s Azure, with lots of ‘tenants’), Private (hosted in-house or offsite by a third party but retaining total control) and Hybrid (a private and public combination, where the private cloud has the ability to move into the public cloud if demands are increased).

Cloud native technology is open source, so an understanding of that technology and legal requirements is important to have.

Invoke a strategy for determining which cloud provider is to be used for migration. Not all providers are the same, and a business should find the one that fits their requirements.

Embrace the DevOps methodology – check skill sets and see if there is a lack of expertise. People need to be able to see the change as an opportunity and use it to drive the business forward. 

Untangle or decompose the existing monolithic architecture and convert it to microservices. The remote user interface is the only method of communication between the user and the system. The interface must be usable throughout the course of migration, therefore a unified application programming interface (API) must be developed to continue services and data manipulation.

Choose a set of services that aren’t business critical and migrate them to cloud native technologies as a vertical testing ground. This minimizes risk while maximizes the chance of a successful migration.

Using Infrastructure as Code can help developers lay out the configuration of complex solutions. IaC is feature rich but has a steep learning curve, however it replaces the old shell scripts and automation that were used to manage machine configurations such as virtual machines, security settings and network configurations.

Developers need access to log files to be able to track and troubleshoot transactions and requests. Different dimensions can be assigned to monitor metrics, such as success or failure of an operation. Cloud providers have sets of trackers such as Jaeger, Fluentd and Prometheus for monitoring and alerting.

No, it’s not a guy who is familiar with the cloud.