{"id":7996,"date":"2020-02-18T10:09:05","date_gmt":"2020-02-18T08:09:05","guid":{"rendered":"http:\/\/code.openark.org\/blog\/?p=7996"},"modified":"2020-02-18T10:09:05","modified_gmt":"2020-02-18T08:09:05","slug":"the-state-of-orchestrator-2020-spoiler-healthy","status":"publish","type":"post","link":"https:\/\/code.openark.org\/blog\/mysql\/the-state-of-orchestrator-2020-spoiler-healthy","title":{"rendered":"The state of Orchestrator, 2020 (spoiler: healthy)"},"content":{"rendered":"<p>Yesterday was my last day at GitHub, and this post explains what this means for <code>orchestrator<\/code>. First, a quick historical review:<\/p>\n<ul>\n<li><strong>2014<\/strong>: I began work on <code>orchestrator<\/code> at <a href=\"https:\/\/www.outbrain.com\/\">Outbrain<\/a>, as <a href=\"https:\/\/github.com\/outbrain\/orchestrator\">https:\/\/github.com\/outbrain\/orchestrator<\/a>. I authored several open source projects while working for Outbrain, and created <code>orchestrator<\/code> to solve discovery, visualization and simple refactoring needs. Outbrain was happy to have the project developed as a public, open source repo from day 1, and it was released under the Apache 2 license. Interestingly, the idea to develop <code>orchestrator<\/code> came after I attended Percona Live Santa Clara 2014 and watched &#8220;ChatOps: How GitHub Manages MySQL&#8221; by one Sam Lambert.<\/li>\n<li><strong>2015<\/strong>: Joined <a href=\"http:\/\/booking.com\">Booking.com<\/a> where my main focus was to redesign and solve issues with the existing high availability setup. With Booking.com&#8217;s support, I continued work on <code>orchestrator<\/code>, pursuing better failure detection and recovery processes. Booking.com was an incredible playground and testbed for <code>orchestrator<\/code>, a massive deployment of multiple MySQL\/MariaDB flavors and configuration.<\/li>\n<li><strong>2016 &#8211; 2020<\/strong>: Joined <a href=\"http:\/\/github.com\">GitHub<\/a>. GitHub <a href=\"https:\/\/github.blog\/2016-12-08-orchestrator-github\/\">adopted<\/a> <code>orchestrator<\/code> and I developed it under GitHub&#8217;s own org, at <a href=\"https:\/\/github.com\/github\/orchestrator\">https:\/\/github.com\/github\/orchestrator<\/a>. It became <a href=\"https:\/\/github.blog\/2018-06-20-mysql-high-availability-at-github\/\">a core component<\/a> in github.com&#8217;s high availability design, running failure detection and recoveries across sites and geographical regions, with more to come. These 4+ years have been critical to <code>orchestrator<\/code>&#8216;s development and saw its widespread use. At this time I&#8217;m aware of multiple large-scale organizations using <code>orchestrator<\/code> for high availability and failovers. Some of these are GitHub, Booking.com, Shopify, Slack, Wix, Outbrain, and more. <code>orchestrator<\/code> is the underlying failover mechanism for <a href=\"https:\/\/vitess.io\/\">vitess<\/a>, and is also included in Percona&#8217;s <a href=\"https:\/\/www.percona.com\/software\/database-tools\/percona-monitoring-and-management\">PMM<\/a>. These years saw a significant increase in community adoption and contributions, in published content, such as Pythian and Percona technical blog posts, and, not surprisingly, increase in issues and feature requests.<\/li>\n<\/ul>\n<h3><strong><br \/>\n<\/strong>2020<\/h3>\n<p>GitHub was very kind to support moving the <code>orchestrator<\/code> repo under my own <a href=\"https:\/\/github.com\/openark\">https:\/\/github.com\/openark<\/a> org. This means all issues, pull requests, releases, forks, stars and watchers have automatically transferred to the new location: <a href=\"https:\/\/github.com\/openark\/orchestrator\">https:\/\/github.com\/openark\/orchestrator<\/a>. The old links do a &#8220;follow me&#8221; and implicitly direct to the new location. All external links to code and docs still work. I&#8217;m grateful to GitHub for supporting this transfer.<\/p>\n<p>I&#8217;d like to thank all the above companies for their support of <code>orchestrator<\/code> and of open source in general. Being able to work on the same product throughout three different companies is mind blowing and an incredible opportunity. <code>orchestrator<\/code> of course remains open source and licensed with Apache 2. Existing Copyrights are unchanged.<\/p>\n<p>As for what&#8217;s next: some personal time off, please understand if there&#8217;s delays to reviews\/answers. My intention is to continue developing <code>orchestrator<\/code>. Naturally, the shape of future development depends on how <code>orchestrator<\/code> meets my future work. Nothing changes in that respect: my focus on <code>orchestrator<\/code> has always been first and foremost the pressing business needs, and then community support as possible. There are some interesting ideas by prominent <code>orchestrator<\/code> users and adopters and I&#8217;ll share more thoughts in due time.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Yesterday was my last day at GitHub, and this post explains what this means for orchestrator. First, a quick historical review: 2014: I began work on orchestrator at Outbrain, as https:\/\/github.com\/outbrain\/orchestrator. I authored several open source projects while working for Outbrain, and created orchestrator to solve discovery, visualization and simple refactoring needs. Outbrain was happy [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"enabled":false},"version":2}},"categories":[5],"tags":[123,57,108],"class_list":["post-7996","post","type-post","status-publish","format-standard","hentry","category-mysql","tag-github","tag-open-source","tag-orchestrator"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2bZZp-24Y","_links":{"self":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/7996","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/comments?post=7996"}],"version-history":[{"count":19,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/7996\/revisions"}],"predecessor-version":[{"id":8015,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/posts\/7996\/revisions\/8015"}],"wp:attachment":[{"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/media?parent=7996"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/categories?post=7996"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/code.openark.org\/blog\/wp-json\/wp\/v2\/tags?post=7996"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}