The ins and outs of cloud-native computing
Article by Gigamon country manager for A/NZ George Tsoukas.
For businesses and other organisations that want to get the most out of their approach to the cloud, cloud-native computing may provide the answer.
Unfortunately, although the benefits are widely recognised, there is a lot of confusion about what cloud-native computing actually is. So what is cloud-native, and how does it native compare with cloud-based computing? Perhaps most importantly, what kinds of advantages does cloud-native computing bring to the table?
This is a relatively new approach to managing data and running applications. It is similar to traditional computing, except that rather than deploying applications on physical in-house/on-site hardware, all software, servers and networks are hosted within the cloud.
Cloud computing uses an on-demand computer model, where IT resources are accessible via Internet connections on an as-needed basis. One typical example of cloud computing is email — SaaS providers such as Gmail or Microsoft Outlook allow users to store email data within off-site servers, which can then be accessed via any standard web browser.
Cloud-native computing falls into the above criteria since it is cloud-based. That said, the term cloud-native refers more specifically to the overall infrastructure of cloud computing.
Simply put, it’s more about how applications are organised than where they are deployed. In cloud-native computing, all relevant components are assembled for full optimisation of the cloud environment. As such, cloud-native is as much a way of thinking as it is a computing architecture.
In constructing critical business systems, organisations that adopt a cloud-native approach need to be much more involved in the design, implementation and operation of the cloud applications, while fully utilising resources provided by cloud service providers.
There are certain factors to consider when adopting a cloud-native approach. This is because this approach demands more than merely taking existing, on-premises applications and moving them over to the cloud.
Cloud-native computing requires that apps be explicitly designed for optimal effectiveness within a cloud environment, with an architecture that supports this ideal. Modern cloud services are making this possible.
However, organisations and IT departments should keep in mind certain considerations mind when creating cloud-native applications:
- Cloud-native applications should be oriented toward microservices for easier maintenance and agility.
- They should be containerised so that they can function optimally in any environment.
- They should be dynamically orchestrated, so individual containers can operate together effectively to make up a complete application, allowing for improved efficiency and scalability.
- They should be built using whichever frameworks and languages are best suited to specific tasks, rather than adopting a single framework or language for the entire architecture. Cloud-native applications should be managed using agile DevOps processes.
- They should be developed mobile-first, implementing a user-centred design.
- Finally, cloud-native applications may be vulnerable to cloud-specific security threats, and thus may demand specialised security tools or platforms.
Cloud-native architecture offers certain benefits and advantages over traditional computing solutions.
They are independent services packaged together as containers — meaning they have the potential to scale in and out very fast. Because of cloud-native containerisation, specific services can be added or removed without affecting the other aspects of the application.
Cloud-native apps can be shipped exceptionally quickly and updated on a near-constant basis. This results in faster time to market as well as an improved customer experience.
Finally, cloud-native applications are easier to manage. Thanks to containerisation, support tools and cloud standards, the cost of operating a cloud-native infrastructure is generally less than the cost of transitioning existing non-cloud applications into a cloud environment.