DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
The Latest "Software Integration: The Intersection of APIs, Microservices, and Cloud-Based Systems" Trend Report
Get the report
  1. DZone
  2. Software Design and Architecture
  3. Cloud Architecture
  4. With Kubernetes, Cloud Providers Are the New Hardware Vendors

With Kubernetes, Cloud Providers Are the New Hardware Vendors

One container orchestration platform to rule them all.

Daniel Lopez user avatar by
Daniel Lopez
·
Feb. 22, 19 · Analysis
Like (3)
Save
Tweet
Share
12.29K Views

Join the DZone community and get the full member experience.

Join For Free

In the '90s, server software came in boxes containing floppies and CDs that required expert knowledge and hours of setup before it was production-ready. Nowadays, launching server application and infrastructure software is just a few clicks away in all of the major cloud vendors’ marketplaces. However, some fundamental platform challenges around standardization still need to be solved, and Kubernetes seems to be the likely solution to overcome these issues.

First, a Little History

In the early days of computing, software and hardware were tightly coupled. Applications written for a specific computer would not work on machines from other vendors. Third-party application providers, also known as ISVs (Independent Software Vendors), that wanted to target multiple platforms typically had to rewrite or modify large chunks of their software to address differences in the underlying hardware. The arrival of cross-platform operating systems and languages changed all of this, allowing ISVs to write their software to a single set of APIs and offloading the responsibility of porting to different hardware platforms to the operating system vendor.

Though Unix was the pioneer, it was MS-DOS and later Windows that provided the ultimate example of the benefits of standardization around a common set of APIs. A rich ecosystem of both application makers and PC manufacturers emerged around the platform provided by Microsoft. Something similar occurred with Linux. Red Hat emerging as the standard operating system for corporate environments, with most commercial ISVs supporting it as their preferred Linux deployment platform. Android is another recent example of the benefit for application authors and hardware manufacturers of a standard operating system, in this case, for mobile computing platforms.

In nearly every case, the winning platforms did not emerge victorious because they were necessarily better or higher quality than the alternatives. Rather, it was because, at one point, they became the perceived or de-facto standard, which in turn unleashed a reinforcing virtuous circle of adoption by both app providers and end users.

In a similar vein, as cloud computing becomes mainstream, more and more ISVs and organizations want to leverage it to make their software available to others. This can happen both internally using service catalogs and through the cloud vendors’ own online marketplace offerings. One significant problem with this is that there is not a single standard cloud computing platform, but multiple competing ones, including AWS, Azure, Oracle, and Google, as well as many other specialized providers.

Though all major clouds have similar offerings in terms of compute, storage, and databases, there are still significant differences among them. Currently, this means that ISVs and IT organizations must account for those differences and look for ways to "port" their applications without losing the benefits of adopting cloud in the first place. As an example, commercial ISVs that want to target multiple clouds may need to provide a Cloud Formation Template for AWS that includes use of an Aurora database, and also maintain an Azure Resource Manager template for their customers wanting to run their software on Azure. While there are third-party solutions such as Hashicorp Terraform can support multiple platforms, these introduce yet another dependency and indirection layer that not all customers have in place or are ready to embrace.

Kubernetes to the Rescue

While competition is healthy, having a fragmented cloud marketplace creates a need for a common, a standard platform that everyone can rely on, a layer that fulfills the role that the operating system had in previous technology eras. The good news is that such a platform may already exist! Kubernetes has emerged as the preferred solution for managing production workloads of containers. Originally an open source project developed by Google, Kubernetes is now maintained by the Cloud Native Computing Foundation (CNCF) and thousands of contributors worldwide. Kubernetes has the backing of all the major industry leaders, both traditional enterprise software vendors such as VMware, IBM, and Red Hat, as well as all the major cloud providers which also offer their own Kubernetes-as-a-service offerings.

Kubernetes provides a standardized, industry-agreed-upon way of deploying applications, performing upgrades and rollbacks, scaling up and down, providing declarative configuration management, and many other important features for deploying software in production. While not magical and still in its early days of adoption, Kubernetes is a great base for ISVs and organizations to standardize around for application deployment. ISVs can provide ready to deploy packages for their apps that will work out of the box, while organizations can programmatically customize them and automate the entire application lifecycle using powerful, standardized APIs. This includes standardized hooks for using cloud-specific services such as databases or storage systems.

Multiple tools are built on top of Kubernetes that provide a convenient way to package and distribute applications. Among these, Helm is the dominant solution (disclaimer: Bitnami is a contributor to Helm and maintains its own application repository, Kubeapps.com). Hundreds of applications are already packaged as Helm charts, but a number of competing (and complementary) solutions exist such as KSonnet, Kustomize, and even multi-platform projects such as CNAB. The important thing to remember is that all of these solutions are built on top of a well-defined, programmatic API, allowing organizations to pick and choose the solution that will work best for them with the assurance that they are not locking themselves into the wrong platform.

Thanks to Kubernetes, cloud vendors today increasingly resemble the PC manufacturers of the ‘90s. Back then, no matter what hardware you chose, you knew you would be able to run your favorite apps on it, courtesy of OS standardization. Similarly today, regardless of which cloud you choose, you will be able to run Kubernetes on it and enjoy its thriving ecosystem of apps and vendors.

Kubernetes Cloud computing operating system mobile app

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • A Gentle Introduction to Kubernetes
  • Asynchronous Messaging Service
  • What Is Advertised Kafka Address?
  • How To Best Use Java Records as DTOs in Spring Boot 3

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: