Gleyzer両氏によって共同開発されました。2019で、同言語の発表を行いました。InfoQはPurdy氏に言語と、氏らが解決を目指した問題について聞きました。設計/アーキテクチャアジャイルマニュフェスト:ソフトウェアアーキテクトの視点ソフトウェアアーキテクトの役割と責任はアジャイルソフトウェア開発のためのマニフェストの価値と矛盾していると見えますが、優れたアーキテクトはアジャイル開発チームをサポートするテクニックを見つけています。Streamingは、ストリーミングデータのためのSQLライクなインターフェースを提供します。Streamsによって、Redisがストリーミングデータを複数のプロデューサとコンシューマの間で消費、保持、配信することができるようになります。ソフトウェア開発のマニフェストたゆまず息もつかずに市場に突進することで、会社を静かに消滅の崖っぷちへと追い込みます。それは設計してコードを書く方法を再考する時です。簡単さへの投資は、速さへの投資です。簡単さは知的財産の主鉱脈でもあります。競争上の優位性は、一度失ったら、もう一度手に入れることはほとんど不可能です。Buytaerts氏が過去10年間にわたって、企業がDevOps採用のハイプサイクルをくぐり抜け、変革に対する誤解を解消する過程を支援してきた経験について語ります。_原文(投稿日:2018/07/08)へのリンクGithub.comは、API、認証、Github.comのウェブサイトなど多くの重要なサービスのバックボーンとしてMySQLを使用している。Balancerに基づく設定に置き換え、スプリットブレインとDNSキャッシュの問題を回避した。Githubはさまざまなサービスやタスクのために複数のMySQLクラスタを実行する。そのため、それらを高可用にすることが不可欠である。Githubのインフラストラクチャは、15台のクラスタ、150台のプロダクションサーバ、15TBのMySQLテーブルで構成される複数のデータセンターに分散している。各MySQLクラスタには、書き込み要求に応答する単一のマスタと、マスタのレプリカで、読み取り要求に応答する複数のスレーブで構成される。マスターノードは単一障害点であり、マスタがなければ、書き込みは完全に失敗する。この設定のHA要件には、障害の自動検出、スレーブノードのマスターへの自動プロモーション、新しいマスターノードからクライアントアプリケーションへの自動通知が含まれる。Githubのエンジニアリングチームは、長年にわたってHAのためのいくつかの戦略を採用しており、徐々に組織全体の統一に向かっている。これはMySQLに限定されないため、HAソリューションの要件には、データセンター間の可用性とスプリット・ブレーク防止が含まれている。MySQLマスターディスカバリーには、さまざまな方法がある。以前は、GithubはMySQLマスタノードの検出にDNSと仮想IPアドレス(VIP)を利用していた。クライアントアプリケーションは固定ホスト名に接続し、仮想IP(VIP)にDNSによって解決される。VIPを使用すると、異なるホストにトラフィックをルーティングし、単一のホストに拘束することなくモビリティを提供できる。VIPは常に現在のマスターノードによって所有される。スプリットブレイン状況を含むフェールオーバーイベント中に、VIPの取得および解放プロセスに潜在的な問題があった。これが起こると、2つの異なるホストが同じVIPを持つことができ、トラフィックを間違ったホストにルーティングする可能性がある。異なるデータセンターにあるマスターノードを扱うためには、DNSを変更しなければならず、クライアントのDNSキャッシュのために伝播に時間がかかる可能性がある。Balancerが含まれている。このアーキテクチャでは、クライアントアプリケーションが名前でDNSのマスターIPをルックアップすると、それはAnycastで解決される。Anycastを使用する利点は、すべてのデータセンターで同じIPアドレスに名前が解決されても、そのIPへのクライアントトラフィックは最も近いマスターにルーティングされることである。近いマスターは、同じデータセンターに配置されているマスターである。このルーティングは、現在アクティブなMySQLマスターバックエンドを知っているGLBによって処理される。https://githubengineering.com/mysql-high-availability-at-github/Orchestratorは、Githubのエンジニアリングオープンソースプロジェクトでもあり、マスタ障害の検出とフェールオーバープロセスを行う。レプリカを含むすべてのMySQLノードから引き出された集合的な知識を利用して、マスターの状態に関する決定を下す。書き込みマスターに障害が発生すると、Orchestratorリーダーノードは障害を検出し、フェールオーバープロセスを開始して新しいMySQLマスターを選択する。残りのOrchestratorクラスタノードはこの変更を認識し、ローカルのConsulデーモンを新しいマスター詳細で更新する。Consulは、Hashicorpが提供するサービス発見ツールである。Consulは、マスターノードをキーと値のペアとして保存して追跡する。Consulはデータセンター間で分散モードで実行できるが、Githubの場合、各Consulクラスターはデータセンターレベルで独立している。GLBは、Consulテンプレートを使って、フェールオーバーイベントでマスターステータスの変更通知を受ける。Consulテンプレートは、Consulクラスターを照会してGLB状態を更新する。トラフィックを新しいマスターにルーティングする。「10~13秒」であると述べている。スプリットブレイン、またはフェールオーバー時のConsulの停止につながる、データセンターの隔離にような、より多くの作業が必要なシナリオがいくつかあと述べている。Githubの新しい設定は、ネットワーキングに基づく従来の技術から、プロキシとサービス発見に基づくものへ移行している。Protocol(BGP)を使用した別のアプローチを採用する方が簡単かどうかという議論がある。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見るあなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。登録するとさまざまなことができます。アカウント登録をしてInfoQをお楽しみください。あなたの意見をお聞かせください。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見る様々なイノベーターとアーリーアダプターがお送りするテクノロジーの概要を見る。自分がまだ知らないことに気づいていないと知るあなたが興味のあるトピックスをいつでも最新な情報に。あなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。よい世界へ私たちが暮らす世界を大切に思い、よりよいものにしたいと考えています。人のためのソフトウェア開発を加速し私たちのミッションを実現することで、この思いを成し遂げようとしています。私たちは利益の1%をさまざまな慈善団体に寄付しています。会社として、また従業員として、そうしたことの価値を強く信じているからです。with.プライバシーBTあなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。アドレス*Eメールを変更すると確認のメールが配信されます。会社名:現在の会社名をご入力ください。Other組織規模:現在の組織規模をご入力ください。2,501+国:現在の国を設定してください。Zimbabwe都道府県:現在の都道府県に設定してください。次の都道府県にアップデートする:ニュースレターを購読しますか?インダストリーメールを購読しますか?本Eメールに登録すると、以前より関心のあったトピックの関連情報をお送りする場合がございます。詳細はこちらのプライバシーポリシーをご覧ください。newsletter?新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。