 Hello everybody. My name is Haik. I'm quality engineer at Red Hat, working there for almost eight years. Currently working on a Keali project, testing it. And today I'm going to present you the Keali project as an observability console for Istio. How many of you are familiar with Istio or heard about it? Quite a lot of people. Awesome. So let's have a brief introduction of microservices and Istio and then move to Keali. So industry is moving from big monolithic applications into smaller units called microservices deployed into containers. The main idea is to split the big services into the smaller ones with independent lifecycle, workflow, deployment pipeline. And the container technologies is coming to provide this model. But it increases the number of elements to communicate also to address how to discover, connect and communicate between them. Kubernetes and OpenShift are great in managing containers, but there are additional needs such as configurable smart routing. Let's say you want to configure your routing between different versions of your application. And for instance, fault injection strategies, load balancing, secret breaker. And in a case when there is a chain of service calls and beefing the chain, there is a failure. The first service should be failed in the right beginning. And here is when service mesh enters the stage to extend this, extend the container platform providing all of these capabilities into a transparent way to service deployed. Istio is one of the service mesh implementations. And its architecture is, Istio actually is based on the Envoy sidecar, which is called Envoy proxy, which is integrated into the pod and is providing the information about the inbound and outbound traffic of your service. It has several components such as pilot, which is for service discovery, it has mixer for policy checks, telemetry, and also it's a Citadel for authentication and security. So Istio core features are to configure traffic to your services. So let's say you have several versions of the services and you want to distribute the traffic between them. For instance, you have a Canary version, the new version of your service, you want to deploy it in your mesh and you want to have maximum 5% traffic going there. So you configure it via destination rules and virtual services which are core Istio configuration objects and just specify the 5% maximum going to that Canary version. If it fails, the rest of the traffic will go to the previous versions. And also for your users, you can configure traffic based on their user agent, logged in user by different browser parameters. So let's say your new supported browser, you want to deploy and some of your users with that browser will be shipped to that particular version of your application. To sum up the Istio core features, there are traffic management, control the traffic flow between services, security, which is underlying in a communication channel between your services, observability for tracing, monitoring, logging. Istio is platform independent and its components are highly integratable and customizable and can be customized. So and one of Istio core components is Kiali, which is the UI observability for Istio and it answers several questions to users like what your Microsoft services are doing, how they are configured, how they are connected. And Kiali has its architecture. It has front-end and back-end. Front-end is communicating to back-end via REST API. Back-end itself is communicating via API to Istio and it communicates to external services such as Prometheus where the metrics data is stored, connects to cluster API of your OpenShift to gain the information about your services, ports, ports and other information. Also, Istio can come with optional services such as Yeager for tracing and Grafana for for dashboards for Prometheus. So Kiali is also integrated into these services and can show the UI as an integrated component inside the Kiali UI. So let's go to Kiali main features. One of main core features is the graph which shows the structure of your service mesh with all the services, statuses and also the graph itself can show the traffic animation of your services, the traffic flows. So if you configure the traffic inside your service mesh, it will be shown here. If some of services is down, it will be shown as well. That traffic is not flowing to this service. Kiali itself has a functionality to show the objects inside your service mesh such as applications and applications are the general applications which are providing service in your service mesh. And at least in filter state, you can filter, you can order, sort them and also it displays the health of particular application. Via tooltip, it shows the detailed health of each pod of this application and those pods are basically the versions. And those versions are described here in a list of workloads. It also comes with the status and health of each workload. So if one of the pods fails or traffic is not going to that particular version of your service, it shows the notification that the service is down. And it also of course shows the whole health of your service. And it lists the service with namespaces which are projects, it can be filtered and it also shows the health of that services configuration. Each service details comes with more detailed information such as the metrics inbound or outbound metrics, detailed metrics of this service. And here is the built-in dashboard which is inside the Kiali. But Kiali also provides opportunity feature to customize and custom build the dashboard and deploy it into Kiali. Kiali lists the configuration files for Istio and here comes the one more feature of Kiali which is called Istio config validation. So if you break the Istio configuration which means that traffic will not flow to particular service, Kiali will notice the user that particular configuration is broken. So there is a validation functionality. Another feature which Kiali is providing is integrated traces. So Yeager UI as an iframe is integrated inside the Kiali UI. So user basically can go and search information for particular service in a particular namespace and see the traces and also directly can link from here to the Yeager UI and see more detailed information about that service traces. Istio and to sum up this UI of Kiali, so Kiali sum-ups all the information it is showing about your service mesh in an overview page. So it lists all the namespaces with the health of namespaces with the status of configuration and you can search the health by service or also by applications and workloads in the single page. And this page contains the links to details, more detailed information of all these objects. Traffic routing service details also shows information about the traffic routing to that service which is done via Istio configuration objects and it provides a way to actually do that configuration of that routing via its wizard. So as I said, there is a functionality to control the traffic, filter it by some parameters like headers, schema methods, user agent and so on. So Kiali gives this opportunity, this functionality to configure that traffic via matching routing. Also of course you can configure the flow to your microservices via the weight of the traffic flow. So let's say you have three versions of your service, you can distribute the traffic flow by percentages between these versions and while running those services the traffic can be suspended. So you can check which pick which versions of your microservice can be suspended and which can remain. Kiali also provides direct way to configure the Istio configuration via YAML editor. So directly you can hear from this page when all the Istio configurations are list, those configuration objects are clickable and it goes to the detailed YAML configuration editor for that particular configuration and it comes with validation. So if you break the configuration the Kiali will validate and it will notice the user that some subset, something, some gateway, some host or port is not found and user will be noticed. So to sum up Kiali core features is first we talked about the graph which is the powerful way to visualize the topology of your service mesh. So it can visualize one or many service meshes in a time. Also it comes with metrics, with metrics dashboards to visualize metrics to particular service or also in a level of application and workload as well. Configurations when we are wizard Kiali can be, can configure the traffic and it comes with validations. So the common Istio objects are validated via Kiali and it uses the Galay component to validate those objects. So that was all from my side. Here are my contacts and also Kiali and Istio websites and two links to the GitHub projects, both are open source projects driven by community. So that's it from my side. Now it's time for questions. Yeah. So a question was if Kiali is going to support or any other project but actually Kiali is based on the Istio. Any other questions? Istio as well as Kiali are already available. They are released by Red Hat in a scope of OpenShift service mesh. So the question was whether Istio is still community project or it is released? Yes. Istio is generally available and supported and it's called OpenShift service mesh by Red Hat. Yes. So question is in what way Kiali and Istio are going to be extended to visualize to manage the services on Kubernetes? Outside of the Kubernetes. Currently they are tied to Kubernetes but there are plans to extend it to hybrid clouds. Question was is there any work around to release OCD version 4? Not for now. Okay. So that's it. Thank you very much.