In part one of this series, we introduced VMware Tanzu and discussed how it approaches modern applications and infrastructure in three phases: build, run, and manage. In this article, we look at how Tanzu helps application modernization efforts across all three phases, and why this is important.
Enterprises Are Now Software Companies
There has been a huge shift in the way enterprises view building software in a competitive landscape. Most companies are beginning to realize that the software they build differentiates themselves from their competition. In order to survive and remain profitable they must leverage software to engage customers in unique and personal ways, offer new products to their customers and partners, and go from idea to production as quickly as possible.
As an example of this paradigm shift, consider these two large companies:
- One of the largest grocery chains in the U.S. now considers itself a software company that sells groceries, not a grocery store that builds software. They know that personally engaging customers, building unique loyalty programs, and offering products like targeted digital coupons are necessary.
- A large property and casualty insurer never offered motorcycle insurance, but many of their competitors were beginning to take over that market. They conceived, built, and delivered software to support a new motorcycle insurance product in 60 days.
As the need to become more software-driven has become evident to enterprises, the landscape of tools and processes have grown exponentially. But this ecosystem is fragmented, difficult to understand, and particularly challenging for enterprises to adopt. VMware Tanzu aims to solve these problems by bringing a consistent model and technologies, along with modern development methods, to help enterprises thrive as software-driven businesses.
What are Modern Applications?
There is no one answer to this question, but modern applications generally embody several attributes:
- Highly distributed microservices instead of traditional monoliths
- Built to be scalable, portable, and resilient
- Use techniques such as continuous deployment (CD) to achieve velocity
- Built by teams that embrace lean and agile practices, such as test-driven development, pair programming, and product-oriented instead of project-oriented workflows
- Employ frameworks and patterns to support the new architecture such as distributed tracing, service discovery, aggregated logging, and policy-driven security
- Conform to a standard contract with infrastructure providers, ala the Twelve Factor App.
- Leverage cloud infrastructure and automation to achieve consistency and reliability across environments
As we mentioned earlier, there is a large ecosystem of tools, technologies, and frameworks that exist to help with building modern applications. There is one, however that has emerged as a clear leader in the space. Kubernetes has become the de-facto solution for running modern infrastructure for cloud-native applications. Almost every cloud vendor has a Kubernetes offering and there is a large community and governing body for open source Kubernetes projects.
However, many of the other requirements for building and running modern applications still have unrelated solutions in the landscape. Things like network discovery, tracing and logging, and build automation don’t have clear cut leaders and enterprises struggle with finding the right solution, implementing the solution, and managing it at scale.
VMware Tanzu and Modern Applications
VMware Tanzu addresses the full lifecycle of modern applications with a consistent set of platforms, frameworks, and tools. Companies no longer need to cobble together open source and proprietary technology to support modernization efforts.
Let’s look at how the VMware Tanzu suite of products helps companies support the building, running, and management of modern applications.
The Tanzu Portfolio
Spring & Steeltoe
Spring is the de-facto framework for Java-based applications to deliver enterprise, cloud-native, and highly distributed applications. The Spring umbrella includes projects to enable high velocity movement in all facets of enterprise development:
- Spring Boot for quickly developing microservices using well-known patterns
- Spring Data for integrating with relational and non-relational data sources
- Spring Cloud for implementing best practice patterns for distributed systems
- Spring Security for extensible authentication and authorization services for applications
Steeltoe brings the patterns for distributed systems to .NET applications much like Spring Cloud does for Java applications. Steeltoe includes libraries to help with implementing patterns such as circuit breakers, external configuration, management endpoints, and distributed tracing.
Tanzu Application Service
Tanzu Application Service (TAS), formerly Pivotal Application Service, is a developer-centric Platform as a Service (PaaS). TAS provides higher level abstractions than other application runtimes so that developers can focus on writing code instead of managing infrastructure.
TAS is a mature platform with 7+ years of engineering behind it and has been highly successful in large enterprises. TAS gives developers an “it just works” experience for deploying applications.
Tanzu Application Catalog
Tanzu Application Catalog gives enterprises a curated collection of open-source applications. This catalog is maintained by VMware and curated by operations teams. This gives developers self-service access to tools that they may need or want to experiment with such as databases, developer tools, and message brokers while operators have full control over operating systems, patches, and versions.
There has been some confusion as to how Tanzu Application Catalog fits into the overall Tanzu portfolio, so let’s look at an example. Say you’re a developer who has been tasked with starting a new project in Spring. For this project, you will need a PostgreSQL database, a RabbitMQ server, and a source control system. Historically, you would have to submit tickets to request these services, wait a while for them to be provisioned by the respective teams, and hope everything is correct. Then you would have to repeat this for each environment. With Tanzu Application Catalog you can simply go to the self-service portal and create containers on your Kubernetes cluster for these systems. By providing this curated catalog, IT organizations can provide the services their developers need as a part of their service portal without doing the work of building the application and service models themselves.
Tanzu Kubernetes Grid
Tanzu Kubernetes Grid (TKG) is an enterprise-class Kubernetes distribution deeply integrated with many of the VMware infrastructure products such as vSphere and NSX-T. TKG is a lower level abstraction than TAS, making it appropriate for workloads that don’t fit well on TAS such as persistent workloads, edge computing, and third-party applications.
Although TKG is a relatively new product, it is the stated direction by VMware for all containerized workloads. TAS is currently being re-engineered to run on top of TKG, and products such as Tanzu Build Service and Tanzu Service Mesh will be first-class citizens on TKG.
Tanzu Build Service
Tanzu Build Service brings the power of buildpacks, used successfully for years by PaaS such as TAS and Heroku, to any CNCF-conformant Kubernetes cluster. Tanzu Build Service takes application source code and creates a container image from the code. This ensures that container images are an approved format and eliminates the need for development teams to build their own container images.
Although currently in beta, Tanzu Build Service is based on Cloud Native Buildpacks, a CNCF project built from the collective knowledge of Cloud Foundry and Heroku over the past eleven years.
Tanzu Observability, formerly Wavefront, gives development teams and operators full-stack visibility into applications running in public and private clouds. Historically operations and development teams have used their own distinct tools to observe applications and infrastructure. This frequently led to false alarms, different metrics, and a lot of finger pointing. Tanzu Observability brings together operations and development teams on the same observability tool so that there is a common view into applications and their supporting infrastructure.
Hopefully you have a better understanding of how the Tanzu portfolio helps companies modernize applications in a consistent, efficient, and predictable fashion without having to stitch together a lot of tools from the ecosystem and maintain those tools independently. The Tanzu portfolio is constantly evolving as the acquisitions of companies like Pivotal, Bitnami, Heptio, and Wavefront continue to be integrated into the Tanzu portfolio. It should be evident though that the Tanzu suite gives developers a first class set of products to support their modernization efforts and will only continue to mature.