VMware Tanzu Modern Apps
  • Modern Application Solutions
  • The Why and What of Kubernetes
    • Introduction to Containers
    • Introduction to Kubernetes
    • From Docker Containers to Kubernetes
    • The Power of Kubernetes Services
    • Microservices Architecture
    • What is Cloud Native?
  • Build Kubernetes Runtime
    • Provisioning Kubernetes
      • Kubernetes on vSphere
        • Provisioning Kubernetes Clusters with VMware PKS
        • Provisioning Kubernetes Clusters with VMware Enterprise PKS
        • Provisioning Kubernetes Clusters with the Cluster API
    • Updating Kubernetes Clusters
    • Controlling Ingress with Contour
  • Manage and Monitor
    • Monitoring Kubernetes
    • Monitoring Containers at Scale with Wavefront
    • Monitoring with VMware vRealize Log Insight
    • Managing and Securing Container Images in a Registry
    • Compliance Testing with Sonobuoy
    • Backing Up, Restoring, and Migrating Resources with Velero
    • Managing Microservices with a Service Mesh
  • Multi-Cloud Multi-Cluster Management
  • Challenges Managing Multiple Cluster across Multiple Clouds
  • Introducing VMware Tanzu Mission Control
Powered by GitBook
On this page
  • Microservices and Kubernetes
  • Shifting into High Gear
  • Example
  • Key Characteristics of Microservices
  • The Principles and Advantages of Microservices for Next-Generation Apps
  • Modernizing with Microservices and Kubernetes

Was this helpful?

  1. The Why and What of Kubernetes

Microservices Architecture

PreviousThe Power of Kubernetes ServicesNextWhat is Cloud Native?

Last updated 5 years ago

Was this helpful?

Service resources in Kubernetes are loosely referred to as microservices. Kubernetes lets you break down an application into modular components and enable them to exchange data in a Kubernetes cluster through services. This use of services in Kubernetes helped popularize the term microservices, which in early discussions of service-oriented architectures before the existence of Kubernetes.

Microservices and Kubernetes

Microservices are a modern architectural pattern for building an application. A microservices architecture breaks up the functions of an application into a set of small, discrete, decentralized, goal-oriented processes, each of which can be independently developed, tested, deployed, replaced, and scaled.

Shifting into High Gear

As small, discrete application components linked together through lightweight, well-defined APIs, microservices can be linked together in various ways to create modern applications with independently scalable modules. Another major advantage to this application architecture is that discrete components can be updated independently, which enables developers to efficiently deliver new features and fix issues with existing ones. The business value of this approach is clear: You can get new digital products and services to your customers with phenomenal speed and efficiency.

Example

Consider a three-tier app that has a front end, a middle app tier, and a database. Traditionally, this app would be deployed in three different virtual machines. To use microservices, the same app would have the front end broken into further components. For example, the front end can be broken into services that each handle login, catalog, services, feedback, etc.

The middle tier could be broken into services that handle authorization, database connections, metering, etc.

With this modular approach, development teams can push an update to the Catalog Page without having to touch or update any of the login or database functionality.

Key Characteristics of Microservices

Here are some of the key technical aspects of microservices:

  • Strong and clear interfaces – Tight coupling between services must be avoided. Documented and versioned interfaces help to solidify that contract and retain a certain degree of freedom for both the consumers and producers of these services.

  • Independently deployed and managed – It should be possible for a single microservice to be updated without synchronizing with all of the other services. It is also desirable to be able to roll back a version of a microservice easily. This means the binaries that are deployed must be forward and backward compatible both in terms of API and any data schemas. This can test the cooperation and communication mechanisms between the appropriate ops and dev teams.

  • Built-in resilience – Microservices should be built and tested to be independently resilient. Code that consumes a service should strive to continue working and do something reasonable in the event that the consumed service is down or misbehaving. Similarly, any service that is offered should have some defenses with respect to unanticipated load and bad input.

Sizing of microservices can be a tricky thing to get right. Natural boundaries such as languages, async queues, and scaling requirements also serve as useful dividers.

The Principles and Advantages of Microservices for Next-Generation Apps

Here's a video by a former Netflix architect that gives you the lowdown on using a microservices architecture for building next-generation applications. Find out how microservices fit into the larger picture of releasing software early and often, using agile development principles, adhering to lean programming techniques, integrating with CI/CD pipelines, and implementing security.

Modernizing with Microservices and Kubernetes

Now, that you know how to run what you wrote while adhering to the principles of faster, cheaper, and safer, check out the following paper, which is less than a 5-minute read:

originated
https://assets.contentstack.io/v3/assets/blt58b49a8a0e43b5ff/bltb689cf48758c6a99/5c741e982b22f9f161d6f2e2/vmware-enterprise-pks-deploy-and-manage-modern-apps.pdfassets.contentstack.io