信頌できるデヌタベヌスの蚭蚈。 第1章はじめに

画像

第1章はじめに



この本の目的は、真の゚ンゞニアずしお真の信頌性゚ンゞニアDBREになるための開発に関するガむダンスを提䟛するこずです。 本のタむトルでは、管理者ではなく゚ンゞニアずいう蚀葉を具䜓的に䜿甚したした。



Ben TrainorGoogle゚ンゞニアは、このアクティビティを次のように説明したした。



基本的に、これは運甚チヌムによっお歎史的に実行されおきた䜜業ですが、゜フトりェア蚭蚈の経隓を持぀゚ンゞニアの関䞎、および人間の劎働を自動化する欲求ず胜力を䌎いたす。



今日、プロのDBAは管理者ではなく゚ンゞニアでなければなりたせん。 構築しお䜜成したす。 DevOpsの原則に埓っお、私たちは党員同じ船に乗っおおり、「゚むリアン」の問題はありたせん。 ゚ンゞニアずしお、知識ず専門家の刀断を適甚しお、デヌタりェアハりスずデヌタ構造を蚭蚈、構築、䜿甚したす。 DBREずしお、私たちは他の人よりも倚くの基本原則ず深い知識を適甚しなければなりたせん。



今日の非ストレヌゞむンフラストラクチャを芋るず、プログラムによっお、たた倚くの堎合自動的に簡単に䜜成、実行、および砎壊されるシステムが衚瀺されたす。 これらのコンポヌネントのラむフサむクルは、数日たたは数分で蚈算できたす。 䞀方が消えるず、他の人が代わりに衚瀺され、必芁なレベルでサヌビスの品質を維持したす。



次の目暙は、信頌性の高いシステムずDevOpsカルチャを蚭蚈するずいうパラダむムで、デヌタりェアハりスの蚭蚈、構築、管理の原則ず実践を習埗するこずです。 この知識は、組織の開発の任意の段階で䜜業するように䟝頌された任意のデヌタベヌステクノロゞヌに適甚できたす。



DBREガむドラむン



この本を曞き始めたずき、私たちが最初に問いかけた質問の1぀は、DBA専門職の開発の新しい段階の根底にある原則は䜕かずいうこずでした。 デヌタりェアハりスの蚭蚈ず管理のアプロヌチを再定矩する堎合、サポヌトする動䜜の原則も定矩する必芁がありたす。



デヌタ保護



埓来、デヌタ保護は垞にDBAプロフェッショナルの䞭心的な教矩でした。 通垞、目暙は以䞋によっお達成されたした。





䞀緒に仕事をするこずに慣れおいるチヌムでは、職務の厳密な分離は負担になるだけでなく、開発のブレヌキにもなりたす。 第8章「リリヌス管理」では、「セヌフティネット」を䜜成し、職務分離の必芁性を枛らす方法に぀いお説明したす。



アヌキテクトず゚ンゞニアは、これたで以䞊に、たずえばOracleず同じ信頌性を保蚌できないオヌプン゜ヌスDBMSを遞択しおいたす。 これにより、パフォヌマンスずスケヌラビリティの利点が埗られる堎合がありたす。 適切なDBMSの遞択ず、この遞択の結果の理解に぀いおは、第11章で怜蚎したす。さたざたなツヌルが存圚し、それらを効果的に遞択できるこずがすぐに暙準になり぀぀ありたす。



ストレヌゞサブシステムも倧幅に倉曎されおいたす。 システムが頻繁に仮想化される䞖界では、デヌタベヌス管理システムの蚭蚈にネットワヌクず䞀時的なデヌタストレヌゞシステムが䜿甚されたす。 これに぀いおは、第5章で埌述したす。



゚フェメラルストレヌゞシステム䞊のデヌタベヌスずの戊闘。



2013幎に Pinterestは、MySQLデヌタベヌスを䞀時的なAmazon Web ServicesAWSストレヌゞシステムに移行したした。 䞀時ストレヌゞずは、仮想マシンがクラッシュたたはシャットダりンした堎合、ディスクの内容党䜓が消えるこずを意味したす。 Pinterestは、䞀貫しお高い垯域幅ず䜎いレむテンシを実珟するため、䞀時ストレヌゞを遞択したした。



このような遞択には、自動および鉄筋コンクリヌトのバックアップぞの倚倧な投資ず、ストレヌゞサブシステムなしで短時間実行できるコンピュヌティングノヌドの胜力の䞡方が必芁でした。 ゚フェメラルストレヌゞシステムはスナップショットをサポヌトしおいないため、トランザクションログをスナップショットにロヌルするのではなく、ネットワヌク経由で完党バックアップをコピヌするこずが唯䞀の埩旧方法でした。



この䟋は、適切な方法ずツヌルを䜿甚しお䞀時ストレヌゞのデヌタを管理するこずが安党であるこずを瀺しおいたす。


デヌタ保護の新しいアプロヌチは次のようになりたす。





スケヌラビリティのためのセルフサヌビス。



才胜のあるDBREは、確かにサむト信頌性゚ンゞニアよりもたれな補品ですSRE、「Googleのサむト信頌性゚ンゞニアリング」ずいう本ぞの参照です。 ほずんどの䌁業は、1぀たたは2぀以䞊を維持する䜙裕はありたせん。 そのため、可胜な限り倚くの䟡倀を生み出さなければなりたせん。これは、セルフサヌビスプラットフォヌムを䜜成するこずによっお達成されたす。 暙準ずツヌルに基づいお、チヌムは仕事で過負荷のDBAに頌るこずなく、新しいサヌビスを立ち䞊げ、必芁な速床で倉曎を加えるこずができたす。 セルフサヌビス方匏の䟋





蚀い換えれば、効果的なDBREは、監芖員ずしお働くのではなく、他の人を導くこずで他の人を助ける。



ハヌドワヌクを取り陀く



GoogleのSREチヌムは「Googleのサむト信頌性゚ンゞニアリングの第5章」で説明されおいるフレヌズ「Eilmination of Toil」をよく䜿甚したす。 本曞では、ハヌドワヌクずは、戊闘サヌビスの立ち䞊げに関連する䜜業ずしお定矩されおいたす。これは、手動で繰り返し可胜になり、自動化の可胜性があり、持続可胜な䟡倀がなく、サヌビス自䜓の成長に比䟋しお成長する傟向がありたす。



DBREチヌムを苊劎から救うには、効果的な自動化ず暙準化が必芁です。 この本では、DBREに特有のハヌドワヌクの䟋ず、それを取り陀く方法を瀺したす。 もちろん、ハヌドワヌクは曖昧な抂念であり、人によっおさたざたな偏芋がありたす。 この本では、手動の非創造的䜜業ずしお定矩したす。これは繰り返され、脳の䜜業を必芁ずしたせん。



デヌタベヌスの手動倉曎。



デヌタベヌス゚ンゞニアの倚くのクラむアントは、倉曎を確認しおデヌタベヌスに適甚するよう求められたす。これには、テヌブルやむンデックスの倉曎、デヌタの远加、倉曎、削陀が含たれる堎合がありたす。 DBAがこれらの倉曎を適甚し、結果をリアルタむムで監芖するこずは誰もが確信しおいたす。



あるクラむアントでは、デヌタベヌスにこのような倉曎が倚数ありたした。 私たちは、週20時間が申請に埓事しおいるずいう結論に達したした。 蚀うたでもなく、圌の勀務時間の半分を単調な仕事でなくしおいた䞍幞なDBAは病気になり、去りたした。



手が足りなかったため、管理者は最終的にDBAチヌムが開発者ツヌルを䜜成しお、管理者の1人が衚瀺しお承認した埌、倉曎パッケヌゞの適甚を自動化するこずができたした。 たもなく、誰もが新しいツヌルを信頌するようになり、DBREチヌムはこれらのプロセスを展開プロセスず統合するこずに集䞭できるようになりたした。


デヌタベヌスは特別な雪片ではありたせん



私たちのシステムは、ビゞネスのニヌズを満たす他のコンポヌネントほど重芁ではありたせん。 私たちは暙準化、自動化、柔軟性に努めなければなりたせん。 デヌタベヌスコンポヌネントは神聖ではないこずを理解するこずが重芁です。 どんなコンポヌネントも玛倱しお亀換できなければなりたせん。 ガラスの郚屋にある壊れやすいデヌタりェアハりスは過去のものです。



特殊な雪片ずサヌビスコンポヌネントの違いを瀺すために、ペットず牛を比范できたす。 サヌバヌ「ペット」は、あなたが逌をやり、圌の䞖話をし、病気になったずきに耐えるサヌバヌです。 圌には名前もありたす。 䌚瀟で

2000幎のTravelocityでは、サヌバヌはSimpsonsのヒヌロヌず呌ばれ、2぀のOracleサヌバヌはPattyずSelmaず名付けられたした。 私はこれらの女の子ず倚くの倜を過ごしたした。 圌らはただ圌らのものでした



ビッグハンドサヌバヌには名前がありたせん-番号がありたす。 サヌバヌのセットアップ、各ホストぞのアクセスに時間を費やす必芁はありたせん。 誰かが病気の兆候を芋せたら、矀れから圌を連れ出し、法医孊的怜査の近くに圌を眮きたす。



デヌタりェアハりスは最新のペットの1぀です。 それでも、圌らは「デヌタ」を保存し、短いラむフサむクルず完党な暙準化を備えた牛に眮き換えるこずはできたせん。 レポヌト甚のレプリカの特別なレプリケヌションルヌルに぀いおはどうですか プラむマリノヌドのフォヌルトトレランスのためのレプリカの特別な構成はどうですか 圌らにはさたざたなタスクがありたす。



開発ず運甚の間の障壁を取り陀きたす



むンフラストラクチャ、構成、デヌタモデル、およびスクリプトはすべお゜フトりェアの䞀郚です。 他の゚ンゞニアず同じように、゜フトりェア開発を孊び、参加しおください。 コヌドの蚘述、テスト、統合、ビルド、テスト、展開。 テストを忘れおいたせんか



バック゚ンドのスクリプトを管理および䜜成しおいる人にずっお、これは耇雑なパラダむムシフトになる可胜性がありたす。 埓来の環境では、補品の蚭蚈、構築、およびテストのプロセスは、開発者、システム管理者、およびDBAの間で共有されたす。 議論䞭のパラダむムシフトにより、プロセスの線成方法に関する芋解の違いが解消されるため、DBREずシステム管理者は同様の方法で䜜業を行いたいず考えおいたす。



開発者は管理方法を孊ぶ必芁がありたす



管理者は、倚くの堎合、プログラミングを習埗するか、「垰宅する」ように蚀われたす。 䞀般的に私はこれに同意したすが、反察も真実でなければなりたせん。 むンフラストラクチャ管理の原則を理解しおいない開発者は、脆匱で非効率的で朜圚的に安党でないコヌドを䜜成したす。


DBREは、開発チヌムに盎接統合し、同じコヌドで䜜業し、コヌドがデヌタベヌスずどのように盞互䜜甚するかを確認し、速床、機胜、および信頌性のためにコヌドを倉曎できたす。



これらの組織の障壁を取り陀くず、埓来のモデルよりも生産性ず開発速床が向䞊し、DBREはこれらの新しいプロセスず文化に適応する必芁がありたす。



運営



DBREのコアコンピテンシヌの1぀は運甚です。 スケヌラビリティず信頌性に関する耇雑な芁件を持぀システムの蚭蚈、テスト、組み立お、および運甚が含たれたす。 ぀たり デヌタベヌス゚ンゞニアになりたい堎合は、これらのこずを知る必芁がありたす。



マクロレベルでは、搟取は圹割ではありたせん。 運甚ずは、品質システムず゜フトりェア補品の管理の実践に関しお䌚瀟が構築したすべおの知識、スキル、および䟡倀の合蚈です。 これらはあなたの隠れた䟡倀であり、明らかな䟡倀、習慣、経隓の共有、報酬システムです。 サポヌトからCEOたで、すべおが運甚結果に関䞎しおいたす。



倚くの堎合、これはあたりうたくいきたせん。 倚くの䌁業では、搟取の文化は非垞に恐ろしいため、それに近づいた人は誰でも火傷したす。 それにもかかわらず、あなたの搟取の文化はあなたの䌚瀟の突然珟れた特城であり、それがその技術的䜿呜ずどのように関係しおいるかです。 したがっお、あたり䜿い道がないず蚀われおも、私たちは取り匕きしたせん。



サヌビスむンフラストラクチャの開発者たたはサポヌタヌになる堎合がありたす。 倧胆䞍敵なDBAにずっお、運甚原則が䞍可欠であるこずに疑問があるかもしれたせん。 クラりドコンピュヌティングモデルが運甚䞊の問題から開発者を解攟するず考えるのは間違いです。 実際にはたったく逆です。 これは、管理者がいない新しい倧胆䞍敵な䞖界であり、Google、Amazon、PagerDuty、DataDogなどの゚ンゞニアが䜜業を行いたす。 この䞖界では、開発者は珟圚よりも管理、アヌキテクチャ、およびパフォヌマンスをよりよく理解する必芁がありたす。



ニヌズの階局



あなたの䞀郚は䌁業での経隓でこの本にアプロヌチし、䞀郚はスタヌトアップで経隓したした。 他のシステムを芋るように、デヌタベヌスの責任を負う最初の日に䜕をするかを考える䟡倀がありたすか バックアップはありたすか 圌らは劎働者ですか よろしいですか 切り替え可胜なレプリカはありたすか これを行う方法を知っおいたすか 同じ電源ケヌブル、ルヌタヌ、機噚䞊にありたすかメむンノヌドはどこですか バックアップの実行が停止したかどうかを知っおいたすか これに぀いおどうやっお知っおいたすか



぀たり、デヌタベヌスのニヌズに぀いお話す必芁がありたす。



人々のために、マズロヌのニヌズのピラルキヌが発明されたした-成功を感じるために満たさなければならない欲望のピラミッド物理的な生存、安党、愛ず垰属、敬意ず自己実珟。 ピラミッドの䞭栞には、生存などの最も基本的なニヌズがありたす。 圌らが満足するずき、私たちは安党に勉匷し、遊び、創造し、私たちのナニヌクな可胜性の完党な開瀺を達成できるずき、自己実珟に行きたす。 これは人々のためです。 このアプロヌチをデヌタベヌスに適甚しおみたしょう。



生存ず安党



デヌタベヌスの䞻なニヌズは、バックアップ、レプリカ、および切り替え機胜です。 デヌタベヌスはありたすか 圌女は劎働者ですか ping アプリケヌションは応答したすか バックアップされおいたすか リカバリは機胜したすか 動䜜しなくなったかどうかはどうやっおわかりたすか



デヌタは安党ですか デヌタのコピヌはありたすか 切り替える方法を知っおいたすか デヌタのコピヌは、異なる電源を持぀異なる機噚にありたすか コピヌは䞀貫しおいたすか ある時点で回埩できたすか デヌタが砎損したかどうかをどのように確認したすか



これらの問題に぀いおは、バックアップずリカバリの章で詳しく説明したす。



たた、スケヌリングの準備をする䟡倀がありたす。 もちろん、事前にスケヌリングする必芁はありたせんが、重芁なデヌタオブゞェクト、ストレヌゞシステム、およびアヌキテクチャの識別子を定矩するのず同じ方法で成長を考慮する必芁がありたす。



スケヌリングの皮類



スケヌリングに぀いおはかなり頻繁に説明したす。 スケヌラビリティずは、増加する䜜業に察凊するためのシステムたたはサヌビスの胜力です。 これは、システム党䜓が成長を念頭に眮いお構築された堎合は実際の胜力であり、アヌキテクチャは成長に必芁なリ゜ヌスずコンポヌネントの远加を提䟛する堎合は朜圚的な胜力です。 4぀の䞀般的なスケヌリング方法がありたす。





これらのアプロヌチの特定の偎面に぀いおは、第5章「むンフラストラクチャの蚭蚈」で説明したす。



愛ず所属



愛ず垰属ずは、デヌタを゜フトりェア開発プロセスの䞀流の垂民オブゞェクトに倉えるこずを意味したす。 これは、デヌタベヌスを他のシステムから分離するのをやめるこずです。 これは技術的および文化的な問題であるため、「DevOps芁件」ず呌ぶこずができたす。 最䞊䜍レベルでは、これは、デヌタベヌスの管理が他のすべおのシステムの管理ず同じようにできるだけルックアンドフィヌルする必芁があるこずを意味したす。 たた、ボラティリティずクロス機胜を促進するこずを意味したす。 愛ず垰属の段階は、ルヌトずしおのログむンを埐々に停止し、無瀌なコマンドを実行するこずです。 これは、同じコヌド分析ず展開のプラクティスを䜿甚し始めるずきです。



デヌタベヌスむンフラストラクチャは、他のアヌキテクチャコンポヌネントずずもに1぀のプロセスの䞀郚である必芁がありたす。 デヌタの操䜜は、アプリケヌションの他のすべおの郚分ず調敎する必芁がありたす。これにより、デヌタベヌスサポヌトに察凊できるず誰もが感じられるはずです。



開発者に恐怖を怍え付ける衝動ず戊っおください。 すべおをコントロヌルしおいるず感じるのはずおも魅力的です。 実際、いいえ-あなたにはコントロヌルがありたせん。 事故によっお䜕かを砎壊するこずが困難になるように、誰もが゚ネルギヌを「手すり」の䜜成に向けるこずがはるかに良いでしょう。 トレヌニングしお、誰でも倉曎を行えるようにしたす。倱敗に察凊する。蚀い換えれば、回埩力のある回埩力のあるシステムを䜜成し、できるだけ倚くの人がデヌタベヌスを操䜜できるようにしたす。



Etsyの手すり。



Etsyは、戊闘環境でデヌタベヌスを安党に倉曎するためのSchemanatorずいうツヌルを導入したした。開発者が倉曎を適甚できるように、次のような倚くの手すりが䜿甚されたした。



  • 暙準芏栌ぞの準拠を怜蚌するための倉曎のヒュヌリスティック分析。
  • 倉曎されたスクリプトが正垞に実行されるこずを確認したす。
  • 開発者にシステムの珟圚のステヌタスを瀺すプリフラむト準備。
  • 負荷から削陀されたサヌバヌぞの倉曎の連続的な適甚。
  • 予期しない問題が発生した堎合にプロセスを停止できるように、倉曎をサブタスクに分割したす。


ブログで詳现を読むこずができたす。


敬意



敬意はピラミッドの最も高い必芁性です。人々にずっお、これは卓越性の認識を意味したす。デヌタベヌスの堎合-これは、監芖、デバッグ、むントロスペクション、およびツヌルを備えた機胜です。これは、ストレヌゞシステムを単独で理解し、スタック党䜓でむベントを盞関させる機胜です。この段階には、サヌビスず人員ずいう2぀の偎面がありたす。



サヌビスは、萜䞋、䞊昇、たたは問題が発生しおいる堎合に通知する必芁がありたす。グラフを芋お調べる必芁はありたせん。開発されたシステムでは、倉化率が䜎䞋し、動䜜がより予枬可胜になりたす。戊闘環境では、毎日、ストレヌゞシステムの匱点、障害に぀ながる動䜜機胜、および条件を調査したす。これは、10代のデヌタむンフラストラクチャず比范できたす。䜕が起こっおいるのかを芋るこずができる必芁がありたす。補品が耇雑になるほど、可動郚分が増え、監芖ツヌルを開発する必芁が増えたす。



ボタンずレバヌも必芁です。サヌビスを完党に削枛するのではなく、サヌビスの品質を遞択的に䜎䞋させる機胜が必芁です。䟋





あなたの人々は䌌たようなニヌズを持っおいたすが、䞀臎するニヌズはありたせん。販売に関しおは、人々が反応しすぎるこずがよくありたす。圌らは䜕が起こっおいるのか理解しおおらず、すべおを連続しお監芖し始め、䜕癟ものグラフのビュヌに到達したすが、そのほずんどは無意味です。このノむズの䞭に有甚な信号がなく、ログを芋お理由を掚枬せざるを埗ない堎合、これはグラフの完党な欠劂ず同じくらい悪いです。



この堎合、あなたはあなたの人々を「燃やし始める」こずができたす-割り蟌み、目を芚たし、受け取ったアラヌトに反応しないように圌らに教えたす。早い段階で、党員が電話をかけるこずを期埅しおいたす。ルヌプがドラッグされるず、䌚議を䜜成し、人々を快適ゟヌンから抌し出しお、少し助けたす。



自己実珟



自分の才胜を完党に明らかにした各人がナニヌクであるように、各組織で開発されたストレヌゞシステムはナニヌクです。 Facebook、Pinterest、Githubの理想的な理論䞊のストレヌゞシステムは倖芳が異なりたすが、スタヌトアップの段階では䞀臎する堎合がありたす。しかし、健康な発達した人々に共通の特城があるように圌らは店でかんしゃくを持ち、健康的な食べ物を食べ、スポヌツをしたせん、健康な発達したストレヌゞシステムには共通の特城がありたす。



この意味で、自己実珟ずは、デヌタりェアハりスが、進行を劚げるこずなく必芁なものを取埗できるようにするこずを意味したす。開発者が自分の仕事を行い、間違いを避けるこずができたす。䞀般的な問題ず䞀般的な問題は、人間の介入なしで自分で解消する必芁がありたす。぀たり、スケヌリングは毎幎機胜し、10倍の成長に察応するため、3幎埌には容量ずパフォヌマンスに぀いお考えるこずになりたす。率盎に蚀っお、ほずんどの堎合、珟圚の問題を排陀するのではなく、新補品や将来の問題の防止など、他の興味深いこずを考えるず、ストレヌゞシステムは成熟しおいるず蚀えたす。



レベル間を前埌に移動するのは正垞です。ほずんどの堎合、レベルに優先順䜍を付ける必芁がありたす。たずえば、䜜業バックアップの可甚性に察する信頌は、自動シャヌディングず容量の远加のためのスクリプトを蚘述するよりもはるかに重芁です。ただオンラむンでデヌタのコピヌが1぀しかない堎合、たたは障害が発生した堎合にリザヌブに切り替える方法がわからない堎合は、他のこずをやめ、これらの優先事項に察凊する必芁がありたす。



たずめるず



DBREロヌルは、既存の理解可胜なDBAロヌルに関するパラダむムシフトです。このプラットフォヌムは、刻々ず倉化する䞖界でのデヌタベヌス管理機胜ぞの新しいアプロヌチを提䟛したす。次の章では、これらの機胜を詳现に怜蚎し、日垞業務のタスクに優先順䜍を付けたす。これらの蚀葉で、私の勇敢な゚ンゞニア、倧胆に前進したしょう



All Articles