How can cloud-native design fuel your business?
Every time I read about another 5G use case, I can't help but wonder how our future will look like in ten years' time?
Today, we navigate our lives by bouncing from one cloud platform to another. Netflix is the prime case in point for how a successful cloud-native platform looks today. You can also look at - Twitter, Alibaba, Uber, Facebook and many more to see where consumer satisfaction and, by extension, business growth depends on the platform's ability to adopt, adapt, fix, deploy and scale. Behind these platforms, cloud-native architectures have helped developers to overcome and maintain pace with increasing consumer thresholds. And this is only the beginning.
So we see Cloud-native is part of our daily lives. We see the benefits, we hear about the agility and the flexibility for our OTT partners. But I believe, the Telco industry has yet to fully harness and optimize the potential of this technology. In the first instance, we just took what we had and moved it to the cloud, now we try to re-design the software for the Telco industry so that we can optimize our cloud infrastructure. While at the same time, we are also making it possible to automate operations in a better way.
A key benefit in the case of cloud, is that we are decomposing the software into smaller components. This means you can be very selective about what you choose to upgrade in terms of software and manage these upgrades more easily on a live network with minimal disruption.
When I meet customers, what they are struggling with is how to make the most efficiency gains from a software-based world?
Where we see customers need the most help, is in support for the entire end-to-end cloud migration journey and in staying ahead of the curve to keep customer satisfaction scores healthy. To this end, we can find faults – and fix them and we are working on finding unknown faults before they even occur.
5G, IoT and the immeasurable low-latency potential which this can offer businesses and consumers alike will push the world into a whole new era of cloud network architecture; an era where technologies are developed, deployed and scaled as cloud-native-first. And this, I believe, is where we will begin to see real change which will impact our daily lives.
The 5 design principles of cloud-native
At Ericsson, we talk a lot about the value of making things easy; easy to adopt, easy to adapt, easy to scale. This, for me, will be facilitated through cloud-native design. We are developing Cloud-Native Applications (CNAs) specifically for deployment in cloud environments, delivering on the characteristics associated with cloud and leveraging best practices to become elastic, resilient and dynamically composed with automated management. Our way of achieving this is to create and adhere to a set of design principles:
Agnostic design. In the telecom industry, a cloud-native application must be agnostic to the underlying infrastructure, meaning that it can run on any modern kernel without requiring any proprietary additions (necessary as the application must run on whichever combination of Container- or Infrastructure as a Service our customers have).
Software decomposition and life cycle management. A fundamental principle of a cloud-native application is to decompose software into smaller more manageable pieces, usually through utilizing microservice architectures. This, of course, has been common practice long before cloud-native design. What will change, however, is that each piece can now be individually deployed, scaled and upgraded using a CaaS (Container as a service) environment. In addition, microservices communicate through well-defined and version-controlled network-based interfaces. This means that the microservices can be automatically scaled and upgraded in live operation. Compared to older monolithic designs, this makes it possible for service providers to test, deploy and scale at speed.
Resiliency. Whereas in traditional networks we rely on a 1+1 resiliency based on hardened hardware, the cloud demands will instead rely on resilient software components in the cloud which utilize auto-scaling and healing. This means that, while cloud-native applications may still be vulnerable to temporary capacity loss, they'll never escalate to a full restart and loss of service. This also makes it possible for us to manage multiple failures in a much more effective way.
State optimized design. How we manage state or data for a cloud-native application can only be decided by the type of state/data itself, and the application context within which the state/data is handled. The lifetime of states can vary significantly – ranging anywhere from a few milliseconds to several days or even months. Furthermore, the loss of different states of information and data has different impacts for different applications. Because of this there is no "one size fits all" way of handling state and data, but rather the challenge becomes how to best manage the state and data that each application requires to do its job. This is always going to be a balancing act between performance, resiliency and flexibility. Determining the best balance has to be done through an end-to-end understanding of how these metrics combine to create value for our customers.
Orchestration & Automation. A key attribute and huge benefit of cloud-native applications is that they are automated, which means automating the lifecycle of the internal microservices that make up the application through service discovery, load distribution and other CaaS mechanisms. E.g. Kubernetes contains features to support key actions such as auto-scaling of microservices, auto-healing of failing containers or microservices, and software upgrades including canary testing (small scale testing) before larger deployments.
However, it must also be possible to orchestrate a cloud-native application from an external management system, so that it can be included in a wider network context like an ETSI Network Service and/or 3GPP network slice. The application must be designed to expose performance management and fault management information towards an external management system, as well as to allow for model driven configuration management. As such, this will make automation and orchestration of network-level use cases possible, like instantiation/decommissioning of a cloud-native application and network scaling.
With cloud-native design – selectivity is powerful, speed is on-demand
Cloud-native design is accelerating how and when we spin up a new product to market and offers increased cost efficiencies. The ability to adapt, deploy, scale and reuse software through containers, microservices and best-practice cloud technology is creating faster routes to market. From garage start-ups to the Fortune 500, competitive advantage will now be defined primarily by the speed at which service providers can innovate and bring their ideas to the market. Once there – they will have the necessary architecture to ship faster, avoid risk and ultimately grow business on-demand.
Welcome to the future of the cloud.
For more on this topic and a deep dive into our 5 principles of Cloud Native.
Link to Cloud Native video from SDN World Congress 2018
Read the latest Cloud Native blogpost and related podcast here.