DevOps移動
開発者にルートアクセスを提供するだけではありません!
それでもない。背後にある大きなアイデア”動作” 単に開発者にロープを与えるだけではない。; それ’developersと企業のoperationsチームの間のよりよいコミュニケーションのラインを保障することについて。その多くは新しいものではなく、実は、’前世紀における伝統的な産業(自動車)サプライチェーンにおけるkaizen改善運動の再発です。カンバン・ボードは、顧客とビジネス・パートナーを喜ばせる高品質の製品を日々出荷する取り組みをカバーする、鳥目ダッシュボードの最新のリハッシュ(ワークフロー・インベントリ・マネージャーとして倍増)です。
制約管理がプロセスの鍵です。最初にシステム内のすべてのボトルネックを特定することで、それらのリソースを最適化して効果を最大限に高めることに注力できます。これらの領域を超えた最適化は、ほとんど常に問題になる価値がありません— ワークフローは引き続きこれらのリソースによって制約されます。
トランクベースの開発
スケジュールされたペースでテスト、プロモーション、リリースの各プロセスを自動化して段階的な変更を促すことは、ボールを転がす素晴らしい方法ですが、SaaS/PaaSデプロイメントにおける品質管理の大部分は、の導入を伴います。トランクベースの開発とそのbranch by abstraction concept。(機能や欠点については、リンクをご覧ください。).
要するに、長期的な多元性キット ブランチは、そのすべての地元の開発作業(およびテスト!)の結合結合が、少なくともその部分の総和と同じくらい大きい全体につながるという心理的フィクションを作成します。経験はより良い裁判官であり、これは、広範な新機能セットが既存の本番/リリース・ブランチ・ソース・コードで増分、in-situを設計する必要があることを示しています。基本的に、あなたは生物学世界の物理の限界内であなたの開発戦略をエンジニアリングします。
Surgery on a patient must result
in good outcomes (at all times) for
that patient, not just for siblings
or future generations.
CI/CDパイプライン
トランク・ベース開発は、過去20年間に成長した、結果として自動化された変更管理パイプラインのすべてを基盤としています。
コードは法律(開発+インフラストラクチャ+構成).
最初に歴史的な視点が少しあり、パンチラインはこの4つの段落に従います。ここでの一般的なスレッドは、アパチェはほとんど常にその時間の前にあったということです。
前へ戻る-CFEngine Apache Software Foundationは、すべてのIT構成ファイルおよびサポート・スクリプトをCVSに保持し、その後Subversionに保持しました。さらに、実行した各サービスには関連がありました”ランブック” 管理者を実践的なメンテナンス・コアでガイドします。
ワークフローは理想的ではありませんでした。ローカルでパッチが適用されたFreeBSDポート・ツリーを最初からデプロイ可能な(バイナリ)パッケージに構築する以外に、スタッフは、本番環境への変更をデプロイする際に、まずバージョン管理にコミットし、ターゲット・サーバーにログインし、チェックアウトを更新し、潜在的にサービスを再起動することで、強制することが困難でした。— 手作業で行われるこの繰り返しのトイル。実際には、ほとんどの場合、sysadminsはターゲット・サーバー上で直接ハッキングされ、そのサーバーからコミットされます。’チェックアウトすると、ツリーが再更新されたときに途中で多くのマージ競合が発生する危険性があります(その後、またはある時点で、他のスタッフが実行する将来のアクションによって道路の下)。コラボレーティブな運用チーム向けの、不透明なパスワード管理セキュリティを備えた、透過性の低いワークフロー。
今や彼らはすべてをAにキット-backed puppetのソース・ツリー、一般的なアップストリームのUbuntuパッケージを使用してクラウドに直接プロビジョニング/デプロイ/構成します。これは、スケジュールされてからIT-opsの作業に対するやや最新のアプローチです。キット puppetマスターによるpullsは、最終的にpuppetエージェントのチェックイン時に更新をデプロイします。しかし、CI/CDは今日まで進行中の作業です。
一方、ASF(実際のApacheソフトウェアTLPプロジェクト)での初期のCIのようなイニシアチブは、Apache Gumpそれはサム・ルービーや会社のような素晴らしい同僚の頭脳だった。ガンプしたのは、Subversionリポジトリ内のすべてのコードベースのトランク(ただし、CVSにさかのぼる)のHEAD(すべてのdepのHEADを含む)を定期的にチェックアウト、構築、テストすることで、構築方法(当初はJavaプロジェクトに限られていた)を把握できました。レポートは各開発コミュニティに自動的に送信され、事後対応としてアーカイブされました。この洞察に富んだtoil Automationアクティビティは、現在も(ギットありで)継続しています。 独自のGumpサーバーを実行していない企業規模の開発コミュニティは、ASF (IMO)のアート・ステートの20yです。’/trunk|master/ …内のオープン・ソースのバージョン固定ソフトウェア・モジュールの依存関係から始めましょう。
こちら’s 要点: すべてのソース(開発、インフラストラクチャおよび構成)は、すべてのDevOps担当者が確認できるバージョン制御(必ずしも同じリポジトリを共有しない)に属し、パッチ・リビジョンと本番デプロイメントの間のテスト自動化パイプラインの完全なセットの一部です。IaC/CaC設定の変更がオンデマンドでテスト/プロビジョニング/デプロイされるアートの状態の調査は、私の友人で先見的なPaul Hammantにあります’ウェブサイトこちら。ぜひご覧ください!
仮想化とコンテナ化:a ペット対牛 リダックス
Dockerなどのコンテナ・システムは、カスタマイズ可能で再デプロイ可能な仮想化テクノロジであり、通常はKubernetesなどのMicroService Architecture (MSA)アプリケーション・クラスタ・フレームワークをサポートするために使用されます。仮想化システムが中断した場所を取り上げ、LinuxカーネルベースのVM用に(完全に)分離されたVMごとのオペレーティング・システムの無制限のサポートを取引します。’プログラム可能なカスタマイズと、それらを実行する親のLinuxホストとの統合が大幅に多い。また、複数の依存性チェーンおよびRAW実行可能サーバー・デプロイメントで広範囲に再利用できるように、中央分散サービス(アーティファクトリーなど)に再構築およびアップロードできます。
垂直スケーリングと水平スケーリング
中央サーバーからダウンロード可能な再構成可能なコンテナにより、基本的な仮想化技術で実現が困難な可能性があります。’任意の単一サーバーにロックインされたt’需要に応じてサービスをスケール・アウトするためのハードウェア制限つまり、ホストのコレクション(オンデマンド)に同じコンテナをデプロイすることによる水平スケーリングは、Dockerに基づくMSAフレームワークのすぐに実現可能なファーストクラスの機能です。現在、sameホスト上のCPUコアよりも多数のコンテナをデプロイしています。
実質および実用両方の測定、縁石および制御の消火の努力
他の重要な点の1つは、生産性追跡メトリックで計画と計画外の作業と、それらのタスクにリソースがどのように割り当てられているかを区別することです。計画外作業は消防に相当し、これらのタスクに時間がかかりすぎると、企業の実際のビジネス・ニーズである計画作業はバックログになります。
システムのボトルネックは、計画外の作業にはほとんど対応できないため、負荷の増大とそれに伴うバックログを処理するために十分な追加のリソースを確保することが重要です。
2020年初頭の新型コロナウイルスの主要なスローバック教訓の1つは、ITの面で病院の能力として、少なくとも人員配置を逸脱させること(ハードウェアは別の話です)に関しては、あまりにも無駄であるようなものがあることです。雨の日の予定も、”冗長” スタッフやクロストレーニングの取り組みは、定期的な準備訓練と組み合わせて、医師を遠ざけるだけでなく、実際にはミッションクリティカルです。
プログラムの使用
管理レベルでは、開発と運用変更の両方におけるグローバルな変更管理の視点が不可欠です。両方のチーム・セットが相互に認識している必要があります。’変更。計画の詳細が途中で利用可能になるのが理想的です。**優れたことは、チームが開発担当者と作業担当者の健全な混合である場合に、データ主導型の透明性の高いコラボレーション作業の文化で発生する可能性があります。
マニホールドのステークホルダーを具体的なワーク製品の創造に組み込むという哲学、および進化は、単にdevチームとopsチームを超えて、サーバーエンジニアリングの取り組みに対するコントロールと責任を共有する意味を持っています。この教訓は、創造的な人間表現のための新しい領域がビジネス部門で形成されるだけでなく、ビジネスの古いやり方を再構築するにつれて、現代の企業世界全体で繰り返されています。
