In the article before this, I shared a summary of the operational and performance aspects of cloud platforms. These are based on the discussions I had in Nov & Dec. 2022. This is the helpful background to understand before proceeding into the analysis below.
It's beneficial to use a standard definition of “Cloud portability,” which most customers and leaders agreed upon.
The “What” of cloud portability
Ability to move applications, data, and services between cloud computing environments.
The “how” cloud portability impacts
It enables organizations to take advantage of the scalability and savings of cloud computing while ensuring their applications remain responsive and secure. Cloud portability enables organizations to take advantage of the various benefits of different cloud providers, such as cost savings, scalability, and speed of deployment. It also allows for seamless data migration and improved IT agility. Additionally, cloud portability enables teams to:
To move applications and data between public, private, and hybrid clouds and manage multiple cloud providers simultaneously.
Cloud portability helps organizations maximize the benefits of cloud computing while minimizing the risks associated with cloud migration, such as data loss and downtime.
View Points and Differing Opinions on Cloud Native deployments:
A few discussions I had revealed that teams thought portability was a myth in cloud-native applications. The perspective they shared is that the cloud-native development approach has "too many moving parts," making it difficult to port applications from one service provider to another.
However, this argument is flawed. While it is true that cloud-native applications are complex, there are ways to make them portable. For example, many cloud-native applications use containers and container orchestration systems such as Kubernetes and Tanzu, Openshift, and Docker Swarm, which allow for easy portability of applications. Additionally, cloud-native applications can use Infrastructure-as-Code (IaC) tools such as Terraform and CloudFormation, making portability easier.
During my discussions, 90% of teams use the software orchestration layer offered by cloud providers, including deployment of services such as storage, databases, and serverless computing, making it easier to port applications between them. Here again, many cloud providers offer APIs and SDKs that make it easy to integrate applications with their services.
In conclusion, portability is not a myth regarding cloud-native applications. With the right tools and careful planning, applications can be easily ported from one cloud provider to another.
Kubernetes will not solve everything?
Kubernetes offers a powerful platform for enterprise standardization and innovation. By enabling IT teams to deploy applications across multiple clouds and on-premise environments quickly, Kubernetes allows businesses to create a unified, consistent experience across their entire organization. By taking advantage of this platform, organizations can quickly build and deploy applications that are easily accessible, secure, and reliable. Furthermore, Kubernetes can quickly scale and manage applications, allowing for more efficient resource utilization and cost savings. As Kubernetes continues to evolve, organizations can utilize its capabilities to create a more unified and productive enterprise environment.
Application Deployments, Code, and Infrastructure should be reviewed together.
One of the more controversial “hot takes” I had was a senior application development team manager. “Decisions that impede automation and increase toil are not Cloud Native. A Cloud Native solution should be runnable in GitPod/CodeSpaces, locally or in an ephemeral test env, and not require an AWS account. Avoiding 40+ min Terraform stacks and unnecessary deployments to yarn watch are minimal toil solutions.”
Cloud-native development is an approach that focuses on developing applications designed to take advantage of the cloud computing environment, such as scalability, high availability, and cost savings.
During my discussions, a customer told me how to apply it to my development process.
By creating containers and using a microservices architecture, he was able to save time and money while providing more flexibility and scalability.
This approach is advantageous for developers as it allows them to focus on creating innovative and reliable applications without worrying about infrastructure, which is taken care of by the cloud provider. Cloud-native development is an efficient and cost-effective way of creating applications that can scale quickly and reliably.
I really enjoyed reconnecting with many peers and industry contributors during my discussions. The summary below reflects what my observations are as we head into 2023.
- Multi-cloud architecture is being leveraged for most organizations. Except for one customer I spoke with, 90% are using services from multiple vendors to achieve better performance and reliability for applications and service deployments.
- The focus on value to these organizations' scalability and flexibility by allowing you to draw from different resources and provide better cost savings.
- For about 50% there is an increase in the availability of applications and reduced risk of a single point of failure.
Integrated into this approach is a desire for better-managed workloads, as they can more easily move them around to different providers depending on the requirements. It is an excellent option for organizations looking to increase the availability and scalability of their applications.
I work helping customers find solutions for complex business & technology challenges. I focus on the People, Processes, and Software that create business value. Please feel free to contact me if you want to learn more. Be Well - Sudesh