データベース DevOps とは何ですか? イノベーションはどのように促進されるのでしょうか?
公開: 2023-10-26このページにたどり着いた人は、遅くて退屈な手動データベース リリースに不満を抱いているでしょう。
自動化されペースの速いソフトウェア開発ライフ サイクル (SDLC) では、データベース スキーマ管理が車の推進力となり、速度、イノベーション、文化、さらにはビジネス自体の進歩を阻害する可能性があります。
次のようなデータベース リリース ワークフローの固着を解消する方法について説明します。
- 生産性のボトルネックとなるデータベースの除去
- より頻繁に、より安全で安定した、より高速で高品質なソフトウェア リリースを実現します。
- データベース管理者 (DBA) を解放し、ビジネスの進化と拡大を可能にする価値の高いプロジェクトに集中できるようにします
- セキュリティ、コンプライアンス、信頼性で顧客の信頼を向上
Database DevOps は、組織の92%が直面している問題、つまり、迅速な SDLC における一貫したボトルネックであるデータベース デプロイメントをいかに加速するかという問題を解決します。
データベース DevOps とは何ですか?
Database DevOps は、 DevOps の原則をデータベース変更管理に統合し、継続的インテグレーション/継続的デリバリー (CI/CD) パイプラインの「ラスト マイル」を完了します。
これには、コラボレーション文化の変化とデータベース DevOps ツールの導入が含まれます。これらのツールの中で最も優れたものは、自動化、ガバナンス、可観測性を通じて組織に真の価値をもたらします。
DevOps は、本来の形ではソフトウェア開発チームのためのものでした。
その起源を理解すると、その原則をデータベース開発チームに効果的に適用して、コラボレーション、速度、生産性、信頼性のメリットを得ることができます。
そもそも開発と運用はどのようにして集まったのでしょうか?
開発者と IT 運用チームは、何が定着するかを確認し、何かがうまくいくことを期待するために、壁に向かって物事を投げるのをやめなければなりません。 これらのチームは、SDLC の生産性、品質、スピードを向上させるために、ワークフローと目標を調整する必要があります。
開発と運用には当然、相反する優先順位があります。
開発部門は、ソフトウェアのアップデートにより、ユーザーの要求と急速に変化する競争環境に迅速に対応したいと考えています。 運用部門は、安定性、信頼性、監査可能性、安全性の高い顧客サービスを確保したいと考えています。
一方ではスピードと出力を目指し、もう一方では注意深く細心の注意を払ったアプローチを追求するため、結果として生じるワークフローはせいぜいピーク効率以下で動作します。 ある観点から見ると、それらは共通の目標に向かってではなく、互いに対立して取り組んでいるように見えます。
DevOps がデータベース変更管理にどのように変換されるかを両方の側面から見てみましょう。
運用の問題
運用チームは、組織が顧客に価値を提供し、収益を収益に提供できるように、アプリとインフラストラクチャのスムーズな稼働を維持する必要があります。
運用上の問題の多くは、複雑さ、脆弱性、不十分なドキュメント、技術的負債、および次善の回避策から発生します。 それに加えて、リーダーは監査可能性と効率性を確認する必要があります。
アプリとインフラストラクチャの責任者はこれらの問題を解決すると約束しますが、時間を見つけることがほとんどないようです。 おそらく、よりユーザー中心の取り組みや収益促進の取り組みのために、問題の優先順位が下げられるのを目撃したことがあるでしょう。
脆弱性は、最も収益を生み出すシステムや最も重要なプロジェクトで顕著です。
最も障害が発生しやすいシステムは最も重要である傾向があり、緊急の変更の中心地に位置します。 変更が失敗すると、顧客への可用性、収益目標、顧客データのセキュリティ、正確なレポートなど、組織の重要な約束が危険にさらされます。 しかし、運用チームがさらに多くのルール、チェック、組織的対策を重ねると、SDLC のスピードと機敏性が損なわれます。
開発の問題
速い、緊急、今、昨日 – 開発者はこれらのタイムラインに慣れています。 開発チームは、組織の SDLC のプレッシャーとスピードによって成功する可能性もあります。
しかし、新たな技術的課題を解決し、約束されたリリース日に間に合わせるための近道を見つける必要がある別の緊急プロジェクトを任されると、開発チームはより多くの技術的負債を負うことがよくあります。
より多くの機能をより早く、より早く提供することに重点が置かれているため、以前の問題を修正することが常に最上位にあるわけではありません。 この技術的負債が雪だるま式に増えると、すべてが少しずつ難しくなります。全員が少し忙しくなり、仕事に少し時間がかかり、通信が少し遅くなり、作業キューが少し長くなります。
開発プロジェクトがより緊密に結合され、小さなアクションがより大きな失敗を引き起こすにつれて、運用部門は紐を引き締めます。 運用チームはより慎重で、変更に対する寛容性が低いため、進歩するには一連のコミュニケーション、調整、承認が必要です。
タイムラインは伸び続け、品質は低下します。言うまでもなく、開発者の自主性と生産性は徐々に奪われています。 しかし、開発チームの勢いが増すと、アプリの品質、安定性、セキュリティが低下します。
これらすべてがビジネスにどのような影響を与えるのでしょうか?
開発チームと運用チームがこのサイロ化された矛盾したやり取りの中で機能し続けると、悪影響がエンドユーザーに波及します。 ユーザー エクスペリエンスと機能の革新の低下は、遅かれ早かれ、財務、マーケティング、カスタマー サクセスのチームにとって問題になります。
経営幹部が開発チームと運用チームの衝突による影響を感じる頃には、問題は根深く、修正は遅れています。 問題が大きくなりすぎて収益に悪影響を及ぼすと、開発チームと運用チームは、より多くの成果を提供し、UX を改善し、信頼性を高めるよう上からのプレッシャーを感じます。
そしてそのサイクルは続きます。
DevOps: ソフトウェア エンジニアリング チームの結合と統合
DevOps 文化を採用すると、サイロ化されたチームに伴う目標、ワークフロー、成果のズレのサイクルを断ち切ることができます。
DevOps は、Dev と Ops を融合した協力的な文化的アプローチであり、配信プロセスの効率と品質を重視します。 文化的な原則、戦術、リソースを組み合わせて、従来のサイロ化された方法と比較して運用効率を向上させます。 これにより、SDLC 全体を通じて責任の共有が促進されます。
DevOps プラットフォームは、 CI/CDを促進するために一般的に使用されます。
CI/CDとは何ですか?
CI/CD は、コードの変更を共有リポジトリに統合し、そのデプロイを自動化するプロセスと自動化ツールを組み合わせたものです。 DevOps では、CI/CD パイプラインは、SDLC 全体の速度と信頼性の向上に関して不可欠な役割を果たします。 自動化されたテスト、より頻繁な展開、反復的で退屈なタスクの自動化により、これが実現されます。
これらのツールは、DevOps 文化とコラボレーションをサポートする一貫した管理慣行の強化にも役立ちます。
SDLC のすべての段階 (テスト、ステージ、本番) で同じ管理された自動化プロセスを使用することにより、個々の段階では蓄積ドリフトがほとんどまたはまったく発生せず、初期のパイプライン デプロイメントで本番デプロイメントの結果がより正確に予測されます。
成功する DevOps 文化には、最適な結果を達成するために、プラットフォームとインフラストラクチャのエンジニアリング、セキュリティ、コンプライアンス、ガバナンス、リスク管理、エンドユーザーを含むすべての関係者が関与します。
しかし、DevOps プラクティスをコード (ソフトウェアのビルド、テスト、デプロイメントの自動化) にのみ適用しているチームは、プロセス内にまだ手動でエラーが発生しやすいボトルネックであるデータベースの更新があることにすぐに気づきます。
データベース DevOps: CI/CD パイプラインのラスト マイル
出典:リキベース
ソフトウェア チーム向けの DevOps に関する基本概念は理解できましたが、データベースを組み込むまではそのメリットを最大限に実現することはできません。
データベースに焦点を移すと、運用チームと開発チームの間に同じ一般的な問題が存在します。 データベースを変更する場合は、アプリケーションの特定のバージョンをサポートするために必要な状態を維持するために、追加の考慮事項が必要になります。
データベース DevOps の中心となるのは、コードとしてのインフラストラクチャです。これは、より広範な IT 環境のために会社にすでに存在している可能性があります。 データベース サーバーと環境を手動で構成および維持するのではなく、コードベースのスクリプトまたはテンプレートによってデータベース インフラストラクチャがプロビジョニングおよび管理されます。 これは通常、データベース バージョン管理および CI/CD 自動化ツールの形式で提供されます。
Database DevOps は、SDLC の速度と価値を阻害するデータベース更新ワークフローにおける最も一般的で問題のある非効率性を解決します。
データベースの問題
ソフトウェア運用チームと開発チームは、統合と配信の高速無限ループを駆け回りながら、UX を向上させて収益を促進する新しいイノベーションと機能の開発を進めています。
DevOps フレームワークと CI/CD パイプラインを使用すると、データベース スキーマの更新が必要になるまで、猛スピードで作業が進みます。
出典:リキベース
アプリ コードでは、半分以上の時間でデータベースの更新が必要になります。 自動パイプラインによって得られるすべての作業は、DBA が手動で受信、レビュー、バンドル、デプロイする間、停止してしまいます。 多くの場合、DBA はデータベース リリース エンジニアに似ており、常に更新のバックログに取り組んでいます。
データベース リリースのための不格好な手動ワークフローでは、SDLC 全体の速度が低下し、アプリケーション スタック全体に DevOps を実装する速度が低下します。 リリースが遅いだけでなく、人間が促進する複雑で不安定なプロセスに依存しており、人間は破壊的な障害を引き起こす可能性のあるエラーを犯す傾向があります。
手動によるデータベース変更管理には、必要な変更が反映されるまでに時間がかかる可能性があるため、セキュリティとコンプライアンスのリスクも伴います。 侵害は調査が難しくなり、監査に過度の時間とリソースが費やされる可能性があります。
手動監査には、不正確さ、エラー、セキュリティ上の懸念などの危険性もあります。
時間がかかりすぎるため、ソフトウェアとデータベースの更新の数と頻度の爆発的な増加に対応して拡張する能力が限られています。 データベースを手動で移行、拡張、変更、監査する必要がある場合、新しいソフトウェアや機能をサポートするための環境の成長が妨げられます。
文化レベルでは、DevOps を使用しないデータベース変更管理は、ソフトウェア チームとデータベース チームの間に不満と不信感をもたらし、ビジネスの生産性と収益性を損ないます。
ソフトウェア チームとデータベース チームは、エキサイティングなイノベーションに向けて調整や協力を行う代わりに、行き詰まったままになっています。 彼らは、コードレビューを行ったり来たりして、カタツムリのようなペースで更新を進めながら、ゆっくりと退屈に更新作業を行っていますが、これはすべて時代遅れのワークフローと自動化が原因です。
これらの統計は問題の全体像を簡潔に表しています。
- ソフトウェア更新の57%では、対応するデータベースの変更が必要です。
- アプリケーション チームの90%は、リリース速度を上げるというプレッシャーに直面しています。
- チームの46%は、データベースのリリースを加速するのは非常に難しいと回答しています。
- チームの84%が、データベースの更新エラーによる重大な問題を経験しています。
出典: DEVOPSダイジェスト
SDLC で真に競争力のある速度を実現するには、CI/CD パイプラインを拡張してデータベースの更新を含める必要があります。 これはデータベース DevOps が解決する問題です。
データベース DevOps の説明
ソフトウェア コードが DevOps 環境でソース管理を利用するのと同じように、データベース DevOps はデータベース変更コードにソース管理を使用します。 データベースの更新をソフトウェア リリースの事後ステップとして扱うのではなく、ソフトウェアのビルドと展開の自動化に組み込まれます。
自動化、ガバナンス、可観測性を実現するデータベース DevOps は、CI/CD 自動化ツールのサポートにより、データベース変更管理のボトルネックを解消し、ソフトウェア リリースの速度と加速に合わせます。
オートメーション
データベース チームは、ソフトウェア コードから独立してデータベースの変更のテストを自動化できます。 また、コミット時の検証を自動化して、できるだけ早くエラーを検出することもできます。 その結果、データベースの変更は常に正常に動作し、展開可能な状態が維持されます。
データベースのリリースを自動化すると、手作業が不要になり、セキュリティと信頼性のリスクが軽減されます。
ガバナンス
データベース DevOps は、自動化全体を通じてデータベースの変更を管理するための一元的なアクセス制御を実現します。
このアプローチでは、運用環境用のテレメトリを構築し、データベースの問題を迅速に検出して修正し、すべてが意図したとおりに動作することを確認します。 不正エラーが発生した場合、データベース DevOps は、データベース内の基礎となる情報を維持しながら、変更のロールバックをサポートします。
適切な自動化ツールは、非常にわずかな誤差でデータベースの更新を維持し、バックグラウンドで静かに実行されますが、何か問題が発生した場合には DBA に警告します。
可観測性
データベースの変更をコードとして扱うことで、開発ライフサイクル全体を通じて変更メトリクスを可視化できます。
データベース チームは、手動更新に追従するのに苦労する代わりに、ほとんどのプロセスを自動化し、代わりに指標を観察して、スループット、変更頻度、リード タイム、導入の成功率、サービス提供までの時間の継続的な改善を特定できます。
データベース DevOps は可観測性を組み込むことで、ワークフロー改善のための実用的な洞察を提供し、エラーの診断と修復を加速し、監査を簡素化します。
これらの自動化されたワークフローを組み合わせると、生産性、市場シェア、収益性が急速に向上し、開発者、DBA、データベース、ソフトウェア、IT チーム全員のエクスペリエンスが向上することは言うまでもありません。
データベース DevOps とイノベーション
データベース チームは、DevOps を業務に適用すると、より管理しやすく、より頻繁なリリースをより短時間でデプロイできるようになります。
データベース スキーマの更新は、複雑な手動の迂回路ではなく、クリックするだけで実行できます。 最適な設定では、ソフトウェア開発者とデータベース開発者、および DBA は、セルフサービスのデータベース展開を促進する方法で DevOps ツールを構成し、信頼します。
イノベーターとしての DBA
DBA は才能があり貴重な人材ですが、その費用は決して安くはなく、彼らにとっては良いことです。 平均給与が 100,000 ドルを超える DBA は、手動のスキーマ更新リクエストに時間を無駄にする必要はありません。
彼らの知識の深さと広さを考慮すると、手動の更新プロセスに行き詰まってしまうと、その影響は無駄になってしまいます。
DBA向けの革新的な取り組み
データベース DevOps がリリースに関連して DBA が直面する退屈なタスクを自動化すると、DBA は次のようなより価値のある取り組みを自由に追求できるようになります。
- 可観測性
- 容量管理、スケーリング、または自動スケーリング
- セキュリティポリシー管理
- ストレージの最適化
- レプリケーション戦略
- ワークロードの最適化
- 監査とコンプライアンスの管理
- プロセスの継続的な改善
- 継続的な学習
- より広範なチームのコラボレーション
DBA は、組織全体のデータ整合性の確保など、価値の高い戦略的取り組みに集中することもできます。
DBA は、手動によるレビューやリリースの代わりにこれらの領域に焦点を当てることで、パフォーマンス、信頼性、セキュリティを強化し、ビジネス運営の向上、顧客満足度、そして最終的にはデータベースに根ざした収益の増加に貢献できます。
アップグレードされた従業員エクスペリエンスは、満足度、生産性、寿命、専門能力開発に驚異的な効果をもたらします。
開発者の満足度と生産性が向上
生産性の飛躍的な向上は、会社全体に最も広範な影響を及ぼします。
この変革は効率性を超えて、労働文化全体を再構築し、誰もがベストを尽くす力を与えられていると感じる環境を促進します。
変更リリースプロセスを簡素化することで、開発者はレビューを待ったり、変更を行ったり来たりするのに時間を費やす必要がなくなります。 代わりにコードをリリースし、即座にフィードバックを得て変更を加え、次に進むことができます。 これにより、開発者は遅滞なく作業を進めることができます。 スムーズな乗り心地は開発者の幸福感と生産性を高め、生産性と密接に関係しています。
データベース DevOps では、ダーク ローンチ技術 (機能フラグ) を採用することでプレッシャーを軽減し、最適にシームレスなソフトウェアと機能のリリースを可能にします。 このようにして、チームはトグルまたは構成設定を変更するだけで、新しい機能を顧客に安全に導入し、段階的に展開できます。
また、何か問題が発生した場合は、自動ロールバック メカニズムにより、制御された、予測可能な、低ストレスの修正が保証されます。
データベース DevOps では、問題の早期検出と修正による実稼働前の問題解決も重視しています。 問題が本番環境に到達してカスタマー エクスペリエンスに影響を与える前に、初期段階で問題を特定して対処できます。
このアプローチは中断を最小限に抑え、継続的な学習文化を促進します。開発者は専門的に開発し、学んだイノベーションを活性化することで報酬を得ることが奨励されます。 その結果、チーム全体の熱意、オーナーシップ、説明責任、そして自分たちの貢献が組織の成功にとって意味のあるものであることを理解した寿命が長くなります。
データベース DevOps は、リスクを冒しても報われる、信頼性の高い協力的な文化を促進します。
CI/CD の自動化により行き止まりの修正やバグのある機能に無駄な時間を費やすことがなくなるため、リソースの割り当てもより効率的になります。 データベース DevOps はワークフローを洗練し、チームが重要な目標に集中できるようにします。
続きを読む: 開発者の生産性はエンジニアリング チームにとって本当の問題ですか? →
データベース DevOps のビジネス価値の指標
データベース DevOps を導入すると、DBA がより革新的な役割に就くことができると同時に、開発者のエクスペリエンスが向上し、生産性が向上します。 これらの利点は、ビジネスの成果の向上、収益の増加、顧客の満足度の向上などにつながります。
しかし、データベース DevOps に賛同していない経営幹部、経営幹部、リーダー、さらには DBA にとって価値があることを証明するには、これらの改善をどのように測定すればよいでしょうか?
次のものを探してください。
- スループット指標の向上
- コードの作成と変更のデプロイメントは、毎週、毎日、そして時間ごとに移行します
- リードタイムの短縮
- 信頼性指標の向上
- 99 ~ 100% の導入成功率
- サービスを復元するまでの平均時間が短縮される
- 組織のパフォーマンス指標の改善
- 市場シェアの拡大
- 収益性の向上
- 時価総額の指数関数的な成長
組織がすでにDORA DevOps の指標(デプロイメントの頻度、変更のリードタイム、変更の失敗率、サービスの復元にかかる時間) を追跡している場合は、同様の方法で DevOps をデータベースに導入することの価値を誇示できる可能性があります。
データベース DevOps を組織に導入する方法
データベース DevOps を開始するには、文化的な賛同と、CI/CD 自動化のための適切なデータベース DevOps ツールが必要です。
業界をリードするデータベース変更自動化ツールを選択すると、データベース DevOps 変革をサポートする基盤が整います。
適切なデータベース スキーマの移行と自動化プラットフォームを特定するのは簡単かもしれませんが、ビジネスの複雑な組織構造をナビゲートする場合、そのプロセスは非常に困難になります。
次の役割と協力し、それぞれの固有の目標に固有の利点を伝える必要があります。
最高技術責任者
経営幹部は、データベースから最大の収益をもたらす最も優秀な人材を引きつけたいと考えています。
彼らは、テクノロジー組織全体に CI/CD のスピードをもたらし、従業員のスキルを向上させてビジネス成果をさらに高めるためのスペースを創出したいと考えています。
運営責任者
たとえば、運用担当マネージング ディレクターのような人は、能力と能力を向上させて投資を最大化したいと考えています。
データベースでこれを行うには、DBA が退屈に消耗するのではなく、革新とスキルの向上を図っている必要があります。
テクノロジーとインフラストラクチャーのリーダー
テクノロジーまたはプラットフォームのVPは、既存のパイプラインに適合する柔軟性を追求します。
彼らはより多くの機能をより早くリリースすることを優先したいと考えているでしょう。 彼らはデータベース操作が機能していると想定したいと考えていますが、何か問題が発生した場合は即時にアラートを受け取りたいと考えています。
彼らは特に自動化とガバナンスを重視します。
DBA
自動化の利点は DBA にとって最も明らかですが、変更が必要であることを説得するのが最も難しい場合もあります。 レビューとリリースの迅速化を強調し、興味深いイノベーションへの取り組みにより多くの時間が取れることを伝えます。
彼らはより優れた DBA になり、キャリアを向上させ、新しいエキサイティングなデータベース テクノロジと実践に焦点を移すことができます。
データベース DevOps を実現する
1 つのチーム、1 つのデータベースで小規模から始めます。
次に進む前にチームを最高の効率に導き、正しい習慣の構築に集中します。 データベース DevOps チームの自然な興奮が他のチームの関心を呼び起こします。 特定のユースケースをターゲットにし、自動化が最も効果を発揮できる場所を特定します。 他の DevOps ツールおよびプラットフォームとの統合を計画します。
適切なツールとアプローチを使用すると、組織でデータベース DevOps を実現し、データベースを障害からビジネス全体のイノベーション、成長、価値を促進するものに変えることができます。
顧客データベースに収集されたデータを使用して、よりパーソナライズされた顧客コミュニケーションを作成します。 データベース マーケティングでこれを行う方法を学びましょう。