はじめに
この記事は、「経験豊富な」というよりも「最小の」カテゴリのカテゴリですが、システム管理者の専門的な文化を強化することを目的としています。
作品の詳細のために、私はレーキ、最適化、命を吹き込み、透明で美しいものにしなければならない最も多様な地獄の雲を継承しています。 これらの注記は、おそらくシステム管理では一般に受け入れられないポイントの例です。
これらのアンチパターンが生成される理由は、締め切り、法律、ビジネスのペース、そして最終的には単なる愚かさです。 しかし、記事の目的は異なります。 私は建設的な議論を生み出したいと思います。 しかし、その結果はこの記事の主な目標です。
アンチパターンを満たす:
1.管理者による手動制御/システム構成。
これは何ですか
これはおそらく、特に他の人によって補強された場合に、最も頻繁で最も危険なアンチパターンです。 問題の本質は、「人は間違いを犯しがちです」という3つの言葉で説明できます。 そして、よく知られている法律に従って、トラブルが発生する可能性がある場合、それは必ず発生します。 そのため、時々、 このcommitのような同様のケースがあります。 もちろん、この特定の状況の白痴の程度は超越的であり、 それほど愚かに間違われることは決してないでしょうが、予防策を講じることは簡単ではありませんか?
あなたはそれについて何ができますか?
最も簡単なことは、自分でssh経由でサーバーにアクセスしないことです。 一般的に! マスター構成管理システム: Opscode Chef 、 PuppetまたはCFEngineなど。 ロシア語(およびHabréも含む)を含む利用可能な基本情報は、理解を深めて使用を開始するのに十分です。
2.システムのアップグレードを妨げるサードパーティのコンポーネント。
それは何であり、何をすべきですか?
rubyに出会ったが、その時点でrvm / rbenvを発見しなかったすべてのシステム管理者は、少なくとも一度は彼のサーバー上のソースからそれを収集し、実稼働で使用したことはほぼ確実です。 そして今、問題は、16のフロントエンドサーバーで非常に緊急にルビーを更新する必要があることです。これは、root権限をリモートで取得できるようにする重要な脆弱性を閉じるパッチがリリースされているためです(もちろん、例は天井から取られていますが、それは人生で起こります)。 各サーバーに手動でアクセスしますか? または、それにもかかわらず、テストマシンで新しいパッケージを収集し、最初のアンチパターンの説明のツールを使用してすべてのサーバーを集中的に更新しますか? 答えは明らかだと思います。
3.標準化の欠如。
それは何であり、何をすべきですか?
奇妙なことに、このアンチパターンは最初の2つの原因または結果のいずれかです。 疑わしい起源の非標準リポジトリが接続された異なるバージョンのdebian、centos、gentooを実行する16のフロントエンドサーバーの動物園を想像してみてください。 提示? 交差した? これはいいです。
幸いなことに、これと戦うことはまったく難しくありません。 ガイドラインを書き、それらに従ってください。 何がもっと簡単だろうか?
4.監視と通知の欠如。
それは何であり、何をすべきですか?
奇妙なことですが、時には50%未満の企業がこれに罪を犯しているようです。 NagiosとMonitがすべての種類のメトリックを収集し、異常な事態が発生した場合に喜んで運用チームに手紙を送信することさえできない場合、オフィスで24時間連続して1回、かなり緊張して過ごすことが保証されます。 または多分48。
このアンチパターンに対処することは非常に簡単であり、ツールを選択する際の想像力の飛行は宗教的信念によってのみ制限されます。 必要に応じて、 NagiosまたはZabbix + Cactiを保持するか、 CirconusやNewRelicなどのSaaSソリューションを使用できます。 (はい、私たちにはCirconusがあります。いいえ、これは広告ではありません)。
また、素晴らしいツール-PagerDuty-にすべてのメールアラートをラップします。OpsSMSメッセージを喜んで送信し、勤務スケジュールの設定を支援します。一般的に非常にクールで柔軟です。
5.ファイル変更追跡の欠如。
それは何であり、何をすべきですか?
昨日、構成ファイルを編集しました。 そしてもう一つ。 そして、チェンジャーが来て、そこで何か他のものが支配しました。 そして今日、私たち二人は午前3時にオフィスに呼ばれました、そして今、私たちは怒って、隣人を殺す準備ができていますよね? これも多くの人によく知られていますが、間違いありません。 しかし、Linusは2005年にGitを作成し、gitの前に他のvcがありました。 何かを編集した後にgitコミットを行うのは1秒です。 しかし、不測の事態に備えて構成をロールバックする際の問題からあなたを救うのは、この便利な習慣です。 そして、構成管理システムと連携して、これは日常業務のほぼ主要かつ最も重要なスキルになります。 バージョン管理システムを使用し、決して変更しないという正しい習慣を開発する価値があります。
結論は?
この記事の最良の結果は、誰もが自分の制作を振り返り、通常は数か月間手に入らないものを修正し、怠inessを整理し、一度賢明に行うことです。
さて、そして私が上で書いたように、コメントでこのリストを続けることは素晴らしいことです。
便利なリンク
1. devopsweekly.com-英語ですが、非常に興味深い週刊ニュースレター
2. agilesysadmin.net-経験豊富なシステム管理者であり、DevOpsムーブメントの伝道者の1人によるすばらしい英語のブログ
3. シェフクックブック -コミュニティによって作成されたシェフレシピ集。
4. Chefを使用したテスト駆動型インフラストラクチャの予約-Chefのレシピを作成およびテストする方法について説明している本。