Containers go beyond the hype to move enterprises forward with cloud-native applications. Abstracting services with them could commoditize public clouds. Credit: 140886127 © kkssr | Dreamstime.com The advanced features of public cloud providers’ native services offer clear benefits. Most enterprises now exploit cloud-native patterns in developing new applications, even in the augmentation of migrated applications. However, most enterprises would like to minimize lock-in to specific cloud service providers. Guess what? When you leverage a cloud provider’s native services, those services are not transportable across clouds. This makes it obvious why containers have become a megatrend. IT typically considers containers a good idea because everyone is using them, and it’s good to follow the crowd that’s also creating a development ecosystem. Also, containers can scale by using cluster managers and orchestration services, such as Kubernetes. Finally, containers are a nifty way to abstract the applications away from the underlying native services, which make the applications more portable from cloud to cloud. Also, containers make it less important to consider the features and functions of specific public clouds than when applications are not abstracted. So, what’s the downside to containers? There’s the obvious fact that containers themselves, including all the goodies in the container ecosystem (orchestration, security, storage, etc.), are becoming a common platform that runs across public clouds. Today’s developers and application architects no longer think in terms of storage and compute services from a specific cloud provider. Instead, they consider storage and compute services in general as abstracted notions that can be translated into specific native services using containers that address these resources as common services and are treated the same across clouds. To the application and to the developer, native services are now common services that operate independently of the public cloud platform the application leverages. The specific value that public cloud providers offer does not really matter anymore unless performance issues or outages occur. Thus, the public cloud provider becomes a common, commoditized utility service. We’ve seen parts of this movie before. Public cloud services brokers promised to find and utilize the best and least expensive cloud services among the different providers. However, you still had to leverage these services using the native API or interface offered by that provider. What’s different is that most of what a cloud service is, including the interface, management, and operations, is abstracted into a set of common approaches and services that operate across cloud providers. This could make cloud services largely the same in terms of what developers and the actual applications see. Moreover, this could extend to other native services such as security, governance, observability, data storage, etc. It all becomes a set of abstractions where the cloud brand may not even be known. Although some of these capabilities exist now, most container developers are very aware of what cloud or clouds they use. However, the idea of abstraction to remove both the conceptual and real dependencies on cloud providers may make its way into more and more cloud development. Certainly, if the underlying cloud services become commoditized, containerization makes the investment in applications that much more valuable. Moreover, the cost of application development and deployment should fall with containerization, given that abstracted services can be mixed and matched. Where does this leave public cloud providers? Businesses will leverage services using a provider’s native interface or via an interface that can translate native services to abstracted common services, either through containers or other mechanisms. In either scenario, the providers make money. I view this as a win/win. Related content feature 14 great preprocessors for developers who love to code Sometimes it seems like the rules of programming are designed to make coding a chore. Here are 14 ways preprocessors can help make software development fun again. By Peter Wayner Nov 18, 2024 10 mins Development Tools Software Development feature Designing the APIs that accidentally power businesses Well-designed APIs, even those often-neglected internal APIs, make developers more productive and businesses more agile. By Jean Yang Nov 18, 2024 6 mins APIs Software Development news Spin 3.0 supports polyglot development using Wasm components Fermyon’s open source framework for building server-side WebAssembly apps allows developers to compose apps from components created with different languages. By Paul Krill Nov 18, 2024 2 mins Microservices Serverless Computing Development Libraries and Frameworks news Go language evolving for future hardware, AI workloads The Go team is working to adapt Go to large multicore systems, the latest hardware instructions, and the needs of developers of large-scale AI systems. By Paul Krill Nov 15, 2024 3 mins Google Go Generative AI Programming Languages Resources Videos