{"id":437,"date":"2018-10-16T22:39:04","date_gmt":"2018-10-16T22:39:04","guid":{"rendered":"https:\/\/www.appservgrid.com\/paw93\/?p=437"},"modified":"2018-10-17T09:23:17","modified_gmt":"2018-10-17T09:23:17","slug":"introducing-navigator-jetstack-blog","status":"publish","type":"post","link":"https:\/\/www.appservgrid.com\/paw93\/index.php\/2018\/10\/16\/introducing-navigator-jetstack-blog\/","title":{"rendered":"Introducing Navigator &#8211; Jetstack Blog"},"content":{"rendered":"<p>By <a target=\"\">James Munnelly<\/a><\/p>\n<p>Today we are proud to introduce Navigator, a centralised controller for managing the lifecycle of complex distributed applications. It intends to be the central control point for creating, updating, managing and monitoring stateful databases and services with Kubernetes.<\/p>\n<p>Navigator is open source and extensible from day one. We launch today with support for Elasticsearch in alpha, with Couchbase support soon to land in the next few weeks, and more planned.<\/p>\n<p>We\u2019ll also be working closely with the Service Catalog Special Interest Group (SIG) to make it even easier to bring the power of Navigator to your applications by implementing the Open Service Broker API. You can <a href=\"https:\/\/github.com\/kubernetes-incubator\/service-catalog\">read more about service catalog on GitHub<\/a>.<\/p>\n<p>Containerisation is quickly becoming the standard in modern enterprises. At Jetstack, we\u2019ve seen a massive influx of organisations wishing to embrace containers and Kubernetes, to reduce costs, improve reliability and standardise the way in which they deploy their systems.<\/p>\n<p>So far, this has not been so true for databases. A combination of mistrust and immaturity in today\u2019s orchestration systems leads teams to utilise vendor-provided solutions such as <a href=\"https:\/\/aws.amazon.com\/rds\">RDS<\/a>, <a href=\"https:\/\/cloudant.com\/\">Cloudant<\/a> and <a href=\"https:\/\/cloud.google.com\/sql\">Cloud SQL<\/a> (to name but a few). These services work well, and push the onus of database management to a third-party. However, it can also mean that you are now locked-in to a particular cloud vendor, data interoperability is restricted to the feature set provided, and you are susceptible to business decisions which may not best align with your interests.<\/p>\n<p>There have been a number of projects that attempt to simplify deployment of stateful services in containers, but few attempt to deliver an end-to-end solution that can deploy, manage and monitor your services. We want to make common databases and distributed applications first-class citizens in Kubernetes. we\u2019ve developed Navigator to assume the role of database administrator within your own organisation, building on the tried-and-tested foundations of Kubernetes.<\/p>\n<p>Navigator is the product of Jetsack\u2019s experiences deploying stateful services on Kubernetes. For over a year, we have worked closely with database vendors and customers alike, and evolved our approach. We build heavily on the Operator model, but with a number of differences, including enabling support for multiple applications, whilst offering the same rich feature set for each.<\/p>\n<p>In order to allow Navigator to support many different applications, it\u2019s designed to remove application-specific knowledge from the Navigator itself. Instead, Pilots are programmed to directly interact with your system in order to trigger application-level actions in response to scale-up, scale-down or any other cluster-level action. Navigator is then able to communicate directly with these Pilots in order to instruct them as to any actions that must be taken.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetstack.io\/blog\/introducing-navigator\/architecture.png\" alt=\"Navigator architecture\" \/><\/p>\n<p>Navigator architecture<\/p>\n<p>Because the Pilots are able to communicate with Navigator, as well as control the database process, they are able to interrupt scale events and<br \/>\ninform Navigator of any state changes within the application that may occur. Without this model, it would not be possible for accurate and precise<br \/>\nmanagement of the application\u2019s state.<\/p>\n<p>You can get started with Navigator by following our <a href=\"https:\/\/github.com\/jetstack-experimental\/navigator\/tree\/master\/docs\/quick-start\">quick-start guide on GitHub<\/a>.<\/p>\n<p>We\u2019d love to hear feedback and even accept contributions towards either the <a href=\"https:\/\/github.com\/jetstack-experimental\/navigator\">Navigator<\/a> itself, or the <a href=\"https:\/\/github.com\/jetstack-experimental\/pilot-elasticsearch\">Pilots<\/a>.<\/p>\n<p><a href=\"https:\/\/blog.jetstack.io\/blog\/introducing-navigator\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>By James Munnelly Today we are proud to introduce Navigator, a centralised controller for managing the lifecycle of complex distributed applications. It intends to be the central control point for creating, updating, managing and monitoring stateful databases and services with Kubernetes. Navigator is open source and extensible from day one. We launch today with support &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.appservgrid.com\/paw93\/index.php\/2018\/10\/16\/introducing-navigator-jetstack-blog\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Introducing Navigator &#8211; Jetstack Blog&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-437","post","type-post","status-publish","format-standard","hentry","category-kubernetes"],"_links":{"self":[{"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/posts\/437","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/comments?post=437"}],"version-history":[{"count":1,"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/posts\/437\/revisions"}],"predecessor-version":[{"id":548,"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/posts\/437\/revisions\/548"}],"wp:attachment":[{"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/media?parent=437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/categories?post=437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.appservgrid.com\/paw93\/index.php\/wp-json\/wp\/v2\/tags?post=437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}