私は5人のチームのリードデベロッパーです。 3つだけがコーダーです。そして、プログラマーだけが、アプリケーションを本番サーバーにロールアウトするのに十分な技術を持っています。
私たちのアプリはかなり成功しており、いくつかの有名なクライアントを獲得しています。これらのクライアントは通常、非常に残忍なセキュリティ監査を実施します。ほとんどの場合、これらの監査に合格しています。しかし、私たちをつまずかせる1つの領域は、職務の分離です。例えば彼らは1人/チームが開発環境を処理し、1人/チームが本番環境を処理することを望んでいます。さらに、場合によっては、作業を行う(本番環境にプッシュするなど)作業を監視/監督/承認する人も別の役割にしたいことがあります。
3人の技術者しかいない場合の問題は、一部のクライアントが必要とする職務の分離を維持しながら、 バス係数 を高く維持できないことです。
考え?ソリューション?同様のリソース問題に直面しましたか?
pSこのdevopsとbus-factorにタグを付けようとしましたが、新しいタグを作成するのに十分な担当者がいません。
私は個人的にこの決定をする必要はありませんでしたが、私はそのような職務の分離が実装されている環境で働いています。
あなたはこのビジネスのオーナーですか、それとも他の人のために働いていますか?
私が尋ねる理由は、現実的にはこれがビジネス上の決定に帰着するからです。 (明らかなinfosecの観点を除いて-「すべてを切り離す!」)
答えを見つけるには、自分/所有者/ CFOに次の質問をする必要があります。
職務の分離を実装するために従業員を追加するためのコストは、それを必要とするクライアントに失われるビジネスの量よりも少ないか、または追加のビジネスを失うことなく、より多くの従業員の給与をカバーするために販売されるソフトウェアのコストを上げることができるか価格の上昇に?
もしそうなら、あなたは財政的に赤字になることなく、より多くの従業員を加えることができます。
エンタープライズITセキュリティの世界へようこそ。ご存知のように、セキュリティ部門が「ベストプラクティス」で漠然と振る舞う推奨事項を作成するのは簡単です。これを現場で実装することははるかに困難です。しかし、あなたはこれに対処することができ、あなたはいくつかの利益を得るでしょう。
ワンクリックデプロイメント-新しいリリースは簡単にインストールできるようにパッケージ化する必要があります。これを、Puppetなどを使用した自動デプロイメントと組み合わせることができます。その時点で、技術的な知識の少ない同僚に任せることができるように、展開は単純である必要があります。このアプローチの利点の1つは、デプロイメントのミスを回避できることです。開発者は、運用前に完全な展開をテストできます。
ログ相関-Splunkのようなものを使用して、サーバーを中央のログ相関サーバーに記録させます。開発チームに、職務の分離に違反することなく、これへの読み取り専用アクセスを与えることができます。また、CPU、メモリ、ディスクなどを集中監視することもできます。理想的には、ログの自動分析が十分に行われていて、技術に詳しくない同僚が問題がないかどうかを判断できます。
自動化できるだけ多く。定期的なメンテナンスはスクリプト化してスケジュールする必要があります。アプリサーバーの再起動など、問題に対する特定の応答をスクリプト化することもできます。
緊急アクセス-場合によっては、開発者がログインしてそれを修正するためにライブでログインする必要がある方法でアプリが破損することがあります。これは、職務の分離があっても許容できます。 「ops guyが障害を識別し、支援を要求する」、「マネージャーが緊急アクセスを承認する」、「ops guyが開発者に一時的なパスワードを発行する」のようなプロセスがおそらく必要です。
それをすべて行う場合、技術スタッフの少ない2人の同僚を運用スタッフとして使用できます。 opsの役割のスキルが低下しているため、バス係数(ナイスタームBTW)は深刻な影響を受けません。
アプリをオンプレミスで実行していますか、それともクラウドで実行していますか? Platform-as-a-Serviceクラウドを使用してこの要件に準拠する方が簡単です。