私は職場で優れたソース管理とプロジェクト管理ソリューションを探しています。GitHub組織とプライベートリポジトリを作成することを提案しました。私は多くの理由でGitHubが大好きですが、これはGitHubについてではありません(実際、私の同僚は競合するプラットフォームを支持してポイントを提示します)-それはプライベートコードをオンラインで保存するについてです。
これが良いアイデアかどうかを理解しようとしています。サーバーコストが(少なくとも直接)必要なくなり、コードの検索(すべてがオンラインになっている)が容易になるため、これは間違いなく有利に思えます。
しかし、私たちのチームは未定であり、私の質問に私を導きます、この決定をするために何を考慮すべきですか?
会社のオフィスが燃え尽きても、コードはサーバーに残っています。
会社のオフィスが焼失しない場合でも、gitリポジトリが配置されているサーバーが停止する場合は、ローカルコピーが残っています。
会社のオフィスビルのサーバーでリポジトリをホストしている場合(ネットワーク共有ドライブと同じように...?)、会社のオフィスが焼き付いた場合、両方を失います。
もちろん、いつものようにまだバックアップが必要です...
「燃え尽きる」を「ランサムウェアに感染する」に置き換えてください。
基本的に、可用性はアップしています。
コードをホストするサードパーティとファイルを共有する必要があります。あなたが本当に大きな会社の秘密を持っているなら、これは許されないかもしれません。たとえば、ヨーロッパ市民の個人情報を含むデータベースがある場合、米国のサードパーティでコードをホストすることは許可されない可能性があります。これは、それらが米国の法律の対象となり、したがって信頼できないためです。 EUプライバシー法を支持する。法的な問題ではない場合でも、第三者が賄賂を使用してプライベートファイルを配布する可能性があることに注意してください。これはおそらくサードパーティにとっては非常に悪いことです(非常に評判が悪い)。
基本的に、機密性は低下しています。
機密性と可用性のトレードオフに問題がない場合は、第三者とオンラインでプライベートコードをホストすることをお勧めします。そうでなければ、しないでください。上司がインテリジェントな決定を行えるようにトレードオフを説明できますが、「いいえ」と聞こえるかもしれません。それはあなたが誰かに決定を与える場合に起こり得ることです。上司がノーと言ったら、それだけです。上司を強引に説得することは非常に良い考えだとは思いません。
明らかにそれはプロバイダーへの信頼の問題であり、ソースコードをどれだけ重視するかです。
しかし、少なくとも過去においては、人々がソースコードを高く評価していたことは明らかだと思います。
「ビジネスプロセスオートメーション」製品の場合。ここでは、社内チームが、ビジネスのニーズに特化したWebサイトやその他のソフトウェアを作成しています。他の人にとってのそのソフトウェアの価値は一般的に非常に低いです。
販売可能なソフトウェア;これは販売しているバイナリであり、ソースコードにアクセスせずにコピーしてハッキングすることができます。
第二に:サードパーティとのコードの保存が実際に現在のレベルを超えてエクスポージャーを増加させるかどうかも検討する必要があります。多くの場合それはしません
要するに、ほとんどの現代のビジネスは日常業務でさまざまなサードパーティを信頼することになります。彼らにとって不可欠でユニークなものでさえ。
この決定プロセスの一部は、少しのテスト、試行錯誤である可能性があります。小さなプロジェクトを取り、いくつかのメンバーにさまざまなサイトのいくつかを試してもらいます。これはチームによるユーザビリティをカバーするはずですが、他の考慮事項があります。
コーディングと配信のプロセス全体を開始します。このプロセスに関与している人が多ければ多いほど、良い結果が得られます。特定の基準に基づくソース管理プラットフォームを採用して、管理職の誰かがすべてを変更することは望まないでしょう。 「この分散アジャイル機能は機能していないので、月曜日の8時から7時にオフィスから作業を開始する必要があります。
私は必ずしもあなたにすべきではないと言っているわけではありませんクラウドで会社のリポジトリをホストしますが、私は個人的にクラウドホスティングのいくつかの欠点と苦痛を経験しました。
インターネット接続の速度と信頼性はどれくらいですか?
私にとっては、これが最大の考慮事項の1つです。たとえば、私の会社はかなり田舎にあります。私たちのイントラ-net速度は非常に高速ですが、私たちのinter-net速度はせいぜい遅く、最悪の場合は非常に不安定です。
使用しているVCSによっては、痛みの一部を軽減することができます。 Gitのような分散バージョン管理システムは、ローカルで作業できるため、so悪くありません。同僚とコードを共有する必要がある場合は、ネットワークドライブで新しいリポジトリを初期化することもできます。比較すると、Team Foundationではこれらのことのどちらも実際には実行できません(ローカルワークスペース全体ではありますが)。
しかし、それは単なるコードです。クラウドでホストされるリポジトリには、コードだけではありません。作業項目(機能/バグリスト)はどうですか?あなたのドキュメント(wiki)はどうですか?継続的な統合ビルドについてはどうですか?これらすべてのものは、コードとともにクラウドでもホストされる可能性があります。インターネット接続がダウンした場合、これらのものがなければどのように機能しますか?
Gitlabは無料のオンプレミスバージョンを提供しており、チームのニーズを超える可能性があります。オンプレミスインストールを強くお勧めします。リスクが大幅に軽減されます。
この決定を下すために何を考慮すべきですか?
あなたはマイナス面を考慮すべきです。私は(他の人たちと共に)現在の雇用主に対して、プライベートなgithubレポで同社の最高の知的財産をホストするのをやめるように勧めました。誤解しないでください。 githubはオープンソースソフトウェアにとって素晴らしいものです。
クローズドソースソフトウェアの場合、github.com(またはいくつかの代替案)がソースコードを世界に公開しないことを非機密保持契約(NDA)に署名しましたか?頑張ってね!
私の意見では、他のエンティティがNDA=と署名するまで、知的財産の宝石を他のエンティティに開示することは非常にクレイジーです。あなたはgithubなどのサービスを使用する予定ですクライアントとNDAに署名するのではなく、非常に長いEULA(エンドユーザーライセンス契約)の形で漠然とした約束を提供します。
Github自体は、これが重大な問題になる可能性があることを認識しており、その結果、Github Enterpriseを独自のサーバーでソースコード(およびその他のプライベートなもの)をホストするメカニズムとして提供しています。