Kibana 7.0: new design & navigation … and dark mode!
With the Kibana 7.0 design, we decided to place the focus on the content, so you will notice that the UI has a lighter, more minimal feel throughout. The most prominent change is a switch to a new global navigation, which introduces a constant header to switch Kibana spaces, display breadcrumbs, and initiate user actions like change password or logout. To achieve this, and increase consistency, we created the Elastic UI Framework. Over the last year, we converted nearly all of Kibana to use these components. With these components, and a herculean effort from our design and engineering teams, we also made dramatic simplifications to how styles and style sheets are applied.
The increased consistency and style sheet improvements enabled us to check off what felt like one of the biggest feature requests in Kibana history — dark mode across all of Kibana. As another benefit of these changes, Kibana dashboards now have a responsive design, which is the first step in dramatically improving usability on mobile devices.
A new era for cluster coordination in Elasticsearch
Since the beginning, we have focused on making Elasticsearch easy to scale and resilient to catastrophic failures. To support these requirements, we have taken multiple approaches, from making individual nodes more scalable and reliable, to continuous improvement to our cluster coordination layer, known as Zen Discovery. With 7.0, we’re introducing big improvements in both areas yet again.
Zen2 is a completely new cluster coordination layer for Elasticsearch, which is faster, safer, and easier to use. To achieve this, we started by focusing on the theoretical correctness of our new distributed consensus algorithm using formal models to validate the design. While there are well-known consensus algorithms, like Paxos, Raft, Zab and Viewstamped Replication (VR), the demands of an Elasticsearch cluster require higher throughput for cluster changes, support for easily growing or shrinking a cluster, and a seamless rolling upgrade strategy to allow 6.7 clusters to do a rolling upgrade to 7.0, features that these reference algorithms couldn’t provide. Zen2 also includes a number of changes that reduce the likelihood of human error and provides clearer choices when recovering from catastrophic failure. It’s not easy to improve reliability, performance and user experience all at once, especially in such a central component. We’re proud of Zen2, and the process we undertook to get here. To learn more about Zen2, read the blog.
Individual nodes in Elasticsearch are built with resiliency in mind. If you send too many requests to a node or your requests are too large, the node will push back. We achieve this with circuit breakers in Elasticsearch, which determine that the node wouldn’t be able to handle a given request, and immediately respond by asking the client to retry, perhaps on a different node. For nodes with smaller JVM heap sizes, which are becoming more common as users move to a cluster-per-tenant model rather than a massive multitenant cluster, this is even more important. In 7.0, we’re introducing the real memory circuit breaker, which much more accurately detects unserviceable requests, and prevents them from making an individual node unstable. Read the blog to learn more about how this change improves overall node and cluster reliability.