Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Why You Need Istio, Kubernetes, and Weave Cloud for Distributed Applications

DZone's Guide to

Why You Need Istio, Kubernetes, and Weave Cloud for Distributed Applications

Kubernetes is great for managing microservices. See how the open-source service mesh Istio can help with your Kubernetes clusters.

· Microservices Zone ·
Free Resource

Learn why microservices are breaking traditional APM tools that were built for monoliths.

The open source service mesh Istio, just reached the 1.0 milestone (officially released next week) with many of its features now in stable mode. Anyone who’s running a Kubernetes cluster in production should consider implementing Istio and this is why.

By now you are aware of the many benefits of running Kubernetes and how by its ability to manage microservices and deployments, it has fundamentally changed the way we approach and do application design and deployment patterns. But with this radical change comes a whole new set of challenges, such as service discovery, routing, failure handling, as well as basic visibility on to your running microservices and how they communicate with one another.

Istio in combination with Kubernetes provides some of the missing components needed to successfully run and debug distributed applications in Kubernetes. To illustrate the problem we are discussing, imagine a distributed application that is split up into multiple microservices where each microservice has multiple instances and potentially each deployed instance may also have multiple versions. Even a simple deployment can spawn hundreds of microservices. And when something goes wrong with a deployment this large, distributed and complex, it can be difficult or even impossible to trace, debug and fix. These kinds of problems not only cause issues for your customers but they also slow down your team’s productivity.

“A Kubernetes Deployment managed ReplicaSet. Each one represents a different version of the deployed application. Each ReplicaSet manages a set of identically versioned Pods.”

Istio is designed to help solve some of these problems, but not all of them. It is a dedicated infrastructure layer for reliable service to service interactions in a microservices architecture. Specifically, Istio's control plane provides an abstraction layer over an underlying cluster management platform like Kubernetes.

Istio can manage and route encrypted network traffic, balance loads across microservices, enforce access policies, verify service identity, provide tracing, aggregation of service to service telemetry and many more features including Helm support as of 1.0.

Control and Manage Istio Traffic With Weave Cloud

Weave Cloud adds a number of additional features that fit well with your Kubernetes and Istio stack:

  • Increase your development velocity and manage your deployments to Kubernetes and Istio by applying GitOps best practices.
  • Visualize and debug service to service interactions in Istio.
  • Implement maintenance-free monitoring and alerting with our hosted Prometheus as a service.

Weave Cloud can help you achieve the following goals:

1. Use GitOps to Deploy Your App

All configuration objects in Istio are driven through declarative Kubernetes APIs. This means that Istio configuration object definitions can be kept as YAML files in Git and that allows developers to manage service behavior completely through Git, along with application code. Weave Cloud implements a Kubernetes operator that keeps your cluster in sync with ‘the source of truth’ via its configuration files that are checked into Git. And since the desired state of your cluster is kept in Git, it can also be observed for differences against the running cluster.

GitOps workflow to Istio and Kubernetes.

Declarative infrastructure in combination with Weave Cloud’s continuous delivery and real-time observability dashboards also provides developers with a way to quickly decide on the integrity of the deployment and therefore increase deployment velocity.

Try it out right now: GitOps Workflows for Istio Canary Deployments.

Deployments dashboard - connect to Git and start deploying.

Real-time workload dashboards.

2. Visualize and Debug Service to Service Communication Running in Istio

Although Istio is designed to abstract and manage the complexity of deployments, being able to observe, drill down and pinpoint telemetry between services and make sense of your workloads can still be daunting without a graphical UI.

With Weave Cloud, it means that you’ll be able to see how Istio deploys sidecars for each of your application containers and you’ll be able to verify how all the application traffic goes via these sidecars. You’ll be able to see a before and after view of the changes Istio’s kube-inject makes to your app in real time which helps visualize and understand your application as it runs in Istio.

Drill down and observe service intercommunication for simpler debugging.

Open a terminal for quick access to a pod or container.

Try it out for yourself with this tutorial: Istio and Weave Cloud.

3. Maintenance-Free Prometheus Monitoring, an Easy-to-Use GUI for Exploring Available Metrics, and an Always Up Alertmanager

With Weave Cloud’s hosted Prometheus service, you don’t have to worry about the scalability of your Prometheus instance, or even managing storage within your Kubernetes cluster – we will handle that for you. In addition to this, you never have to worry about your AlertManager outages as we look after it for you.

You can also configure the same Grafana dashboard that Istio provides out of the box and use it to query Weave Cloud.

Final Thoughts

In this post, we have described how Istio solves some of the problems of running distributed apps in Kubernetes. We also discussed how you can more easily manage, debug and monitor your applications running in Kubernetes and Istio with our hosted SaaS, Weave Cloud.

Record growth in microservices is disrupting the operational landscape. Read the Global Microservices Trends report to learn more.

Topics:
microservices ,distributed applications ,distributed systems ,istio ,kubernetes ,tutorial

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}