5

Web ベースのビジネス ソリューションの作成に携わっています。アイデアは、顧客がそれを使用し、ビジネス プロセスと情報を 1 か所にまとめ、システム間通信によって追加のビジネス価値を受け取ることです。要するに、彼らはそれを日常業務のコア ツールとして使用し、それに大きく依存するようになります。

解決策が必要な問題の 1 つは、この Web システムを十分に安全にして、私たちと顧客の両方が満足できる代替手段にする方法です。私は、同じ状況にあった、または同じ状況にある他の人からの良いアドバイスを探しています.

特定のシナリオでは、現在、Java SE 6、Tomcat (Wicket を使用するために必要なサーブレット コンテナーとして)、Hibernate (データベースと対話するため)、および MySQL (DBMS として) の使用を検討しています。

問題とアドバイスは、他のテクノロジ ユーザーにとっても興味深いものになると思います。問題の多くは、HDD の障害、ネットワークへのアクセスなどに関する一般的なものです。

どんなアドバイスでも構いません!私たちを前進させるために、いくつかの質問と考えを提供します。

  • システムは、インターネット経由で到達可能である必要があります。それをホストする方法を決定するとき、何を考えるべきですか? (つまり、Web ホストをインターネットに接続する複数の物理パスが必要か、および同様の質問です。)
  • この種のチェックリストはありますか?ISO 規格や、記事/チェックリスト/学術論文/書籍を調べて正しい方向に進んでいることを確認するその他の方法でしょうか?
  • プロジェクトの後半で、この分野で豊富な経験を持つ人を関与させるのは良い考えだと思います。その場合、私たちは通常の Web 開発者を探しているわけではありません。実際の数よりも多くのコンサルティング会社が、この専門知識を提供できると言う可能性があります。適切な人々と連絡を取る方法に関するヒントはありますか? (私たちはスカンジナビアに拠点を置いているので、そこで誰かを見つけることが望ましいでしょう。)
  • 十分なアップタイムはどれくらいですか?99.99% は妥当な目標のように思えます。しかし、ダウンタイムが発生すると、お客様のビジネスが失われる可能性があります。
  • 各顧客のみが自分のデータにアクセスできることをどのように保証しますか? システムが独自のデータベースにアクセスできるようになるため、難しそうです。多くのテストを含む適切な開発プロセスは、ユーザー権限に関して私たちが持っているすべてです。
  • HDDの故障にどう対処する?RAID 5 は、毎日の増分バックアップと毎週の完全バックアップと組み合わせて十分ですか? それとも、RAID 6 を選択しますか?
  • クライアントにサービスを提供するのに 1 つのサーバーで十分な場合。それでもクラスターを使用しますか? (私はそう思います。) そして、その場合、クラスター内にいくつのノードを持つことになりますか?
  • どのバックアップ戦略を使用しますか?
  • コンピューター クラウドでシステムをホストすることは、良い代替手段だと思いますか? (つまり、Amazon、Google、またはその他によって提供されます。)
  • ハードディスク暗号化を使用しますか? もしそうなら、どの種類ですか?(1 つの明確化: はい、誰かがハードディスクを盗んだ場合にのみ有効ですが、それでもセキュリティが強化され、重要なクライアント ビジネス データへの (物理的な) 侵入者のアクセスを防ぐことができます。)
  • 独自のバックアップを行う方法と、適切な代替手段を顧客に提供していますか? これらの顧客は、技術志向ではありません。その場合、Microsoft Office ファイルを含む ZIP アーカイブで情報をダウンロードするのが良い方法でしょうか?
  • ソリューションをどのように監視しますか?
  • これらのうち、社内で行うべきものと外注するべきものはどれだと思いますか? もちろん、基幹システムは自社で開発します。
  • システムが安全であると感じた場合は、技術者として。技術者ではない人に、それが安全で安全であることをどのように納得させますか?

お時間をいただきありがとうございます!共有する情報があれば幸いです。あとで質問が追加されるかもしれません。

4

4 に答える 4

2

私も個人的な時間と仕事で Web アプリを作成しているので、上記の質問をする理由が理解できます。仕事では上記の問題は議論されませんが、個人的な仕事ではこれらのことに多くの注意を払います。すべての質問にお答えすることはできませんが、お答えできる質問については、次のようにお答えします。

ソリューションをどのように監視しますか? 私は ASP.NET Web アプリを開発しているので、パフォーマンス モニター、ログ記録、トレース (ただし開発用のみ)、状態監視、および作成中のカスタム Sql Server パフォーマンス監視システムを使用しています (ただし、これを取得する前に)。ロールアウトしたら、AdventNet の AppManager を使用します)。

Which of these things do you think we should do in house and which should be out sourced? We will develop the core system our self's, of course.

私はいつも同じ決断を下しているので、これは素晴らしい質問です。自分のスキルセットにないものはアウトソーシングします (したがって、3D 作業を行う必要がある場合はアウトソーシングします)。また、チームの強みに固執し、ビジネス機能に集中してください。これは、ユーザーを喜ばせたり引き寄せたりするためです (これは、ホーム ユーザー向けの Web アプリの商業的な観点から言えます)。重要な内部システムを外部委託します。バックアップ、監視、ロギングなど (私が利用できるコスト/財源のためにこれを外部委託していません。学習できるように作成しています。したがって、これは長いアプローチですが、自分でコーディングします。しかし、私は楽しんでいます)それ)。

Are there check lists for these kinds of things? Maybe ISO standards or some other way of seeing that we are on the right track by looking through an article/check list/academic paper/book?

Java/MySQL/Hibernate を使用していると言いますが、Microsoft には、Web アプリケーションのセキュリティに関する優れたガイドがあり、一般的にスケーラブルで安全なアプリケーション (Web ベースと Windows ベースの両方) を構築しています。Microsoft Patterns and Practices を参照してください。

Do you think hosting the system in a computer cloud is a good alternative? (i.e. as provided by Amazon, Google or others.)

はい。これは安価で効果的であり、内部アーキテクチャのストレスを軽減します (CDN と Amazon EC2 を使用して静的ファイルを保存する方法を考えています)。私は静的ファイルと呼んでいるので、頻繁に変更されず、キャッシュできるコンテンツを保存できます。

If you feel that the system is secure, as a technical person. How do you convince a non technical person that it's safe and secure?

彼らに違反を引き起こすように依頼してください。

How do we guarantee that each customer only will be able to access its own data? As the system will be able to access it's own database, it seems hard. A proper development process, involving lots of testing, is really all we have regarding user privileges.

この質問が何を求めているのかよくわかりませんが、ログイン システム、メンバーシップ/ロール (ただし、これは ASP.NET のみ)、およびストアド プロシージャを使用して、ユーザーが自分のデータのみを表示し、他の誰でもない。

私も残りの質問への回答に興味があります。

于 2008-10-23T13:35:32.310 に答える
2

免責事項: 私はネットワーク エンジニアではありません。答えられないと思った質問は飛ばした

システムは、インターネット経由で到達可能である必要があります。それをホストする方法を決定するとき、何を考えるべきですか? (つまり、Web ホストをインターネットに接続する複数の物理パスが必要か、および同様の質問です。)

必要に応じてスケールアップします。最初の段階では、冗長なものをすべて必要とすることはないでしょう。人々がビジネス ニーズであなたに依存したら、ネットワークの最も不安定な部分をアップグレードします。インターネットの信頼性が低い場合は、セカンダリ パイプを入手してください。スイッチがダウンしている場合は、2 倍にします。

十分なアップタイムはどれくらいですか?99.99% は妥当な目標のように思えます。しかし、ダウンタイムが発生すると、お客様のビジネスが失われる可能性があります。

ナインズ。ダウンタイムで失う以上にアップタイムにお金を払わないでください。予期せず 1 時間ダウンして 50K を失う場合、ダウンタイムを 1 時間未満に抑えるために約 50K を支払う必要があります。4 ナインズは、年間 52 分のダウンタイムです。それはあなたにとって合理的ですか?ファイブ・ナインは非常に難しいです。開始するためのフォーナインは、おそらくより困難です。私は金融機関で働いており、約 98% から 99% を実行しており、約 50% から 80% のダウンタイムが計画されています。私たちはうまくやっています。

各顧客のみが自分のデータにアクセスできることをどのように保証しますか? システムが独自のデータベースにアクセスできるようになるため、難しそうです。多くのテストを含む適切な開発プロセスは、ユーザー権限に関して私たちが持っているすべてです。

同じ問題があります。優れた開発者、適切な開発慣行、自動テスト、手動テスト、開発ツール (例: オブジェクトがパブリック コンテキストで使用されたときに警告を発する独自データを装飾する属性)、コード スキャナー (例: 独自仕様を持つテーブルを使用する proc とコードの検索)参照せずにインジケーター)、コードレビューなど。

どのバックアップ戦略を使用しますか?

私が合理的に余裕がある最高。可能であれば、24 時間は毎時、3 週間は毎日、無限は毎週と言うでしょう。

コンピューター クラウドでシステムをホストすることは、良い代替手段だと思いますか? (つまり、Amazon、Google、またはその他によって提供されます。)

Joel は、コア ビジネスをアウトソーシングすべきではないとよく言います。あなたのコア ビジネスがドキュメントの保存である場合は、そうではないかもしれません。あなたのコア ビジネスがドキュメントに付随するものである場合は、合理的と思われます。

ハードディスク暗号化を使用しますか? もしそうなら、どの種類ですか?

これは、システムがハッキングされた場合ではなく、誰かがハードディスクを盗んだ場合にのみ役に立ちます。あなたは暗号化を間違って見ています。暗号化のための暗号化は必要ありません。実際に役立つ場所で暗号化が必要です。HTTPS は適切な暗号化です。おそらく (おそらく) 各ドキュメントをドキュメントごとに暗号化し、それを復号化するためにユーザーにパスキーを要求します。

独自のバックアップを行う方法と、適切な代替手段を顧客に提供していますか? これらの顧客は、技術志向ではありません。その場合、Microsoft Office ファイルを含む ZIP アーカイブで情報をダウンロードするのが良い方法でしょうか?

それは何があっても良い機能です。バックアップとして請求するのは合理的ですが、ネットトップにバックアップ ソリューションを本当に提供したい場合は、それよりも堅牢である必要があります。

ソリューションをどのように監視しますか?

私のブラックベリーへの SMS アラート、使用状況の健全性チェック、システムのトラブルシューティングができる 24 時間年中無休のオンコール担当者。

システムが安全であると感じた場合は、技術者として。技術者ではない人に、それが安全で安全であることをどのように納得させますか?

非技術者?ウェブサイト全体に南京錠を配置します。または、技術者の友人に (あなたのセキュリティを見せて) 安全であることを納得させ、その友人に非技術者を保証してもらいます。

于 2008-10-23T13:51:05.663 に答える
0

システムは、インターネット経由で到達可能である必要があります。それをホストする方法を決定するとき、何を考えるべきですか? (つまり、Web ホストをインターネットに接続する複数の物理パスが必要か、および同様の質問です。)

99% のアップタイムが必要な場合は、そうします。Server Vault という会社を検討します。

この種のチェックリストはありますか?ISO 規格や、記事/チェックリスト/学術論文/書籍を調べて正しい方向に進んでいることを確認するその他の方法でしょうか?

私が見たものではありません。通常、それは、各災害と緩和のためのポリシーを通過し、配置することを意味します。

プロジェクトの後半で、この分野で豊富な経験を持つ人を関与させるのは良い考えだと思います. その場合、私たちは通常の Web 開発者を探しているわけではありません。実際の数よりも多くのコンサルティング会社が、この専門知識を提供できると言う可能性があります。適切な人々と連絡を取る方法に関するヒントはありますか? (私たちはスカンジナビアに拠点を置いているので、そこで誰かを見つけることが望ましいでしょう。)

Internet Security Solutions または At Stake に確認します。彼らは世界中にいると思います。

十分なアップタイムはどれくらいですか?99.99% は妥当な目標のように思えます。しかし、ダウンタイムが発生すると、お客様のビジネスが失われる可能性があります。

あなたが構築したものに顧客のビジネスを依存させたいのであれば、ダウンタイムは本当に受け入れられません。これは、サーバーと DR サイトをクラスター化することで実現できます。現時点では、これは実行可能かもしれないので、月に数時間程度のメンテナンス ウィンドウを設けても問題ないと思います。真夜中にダウンタイムがある場合は、顧客が日中にいる可能性があるため、顧客がどこにいるかを確認する必要があります。

How do we guarantee that each customer only will be able to access

独自のデータ?システムが独自のデータベースにアクセスできるようになるため、難しそうです。多くのテストを含む適切な開発プロセスは、ユーザー権限に関して私たちが持っているすべてです。

たくさんのテスト。どこかに穴を残さないように、頻繁に侵入テストを行うことをお勧めします。

HDDの故障にどう対処する?RAID 5 は、毎日の増分バックアップと毎週の完全バックアップと組み合わせて十分ですか? それとも、RAID 6 を選択しますか?

ある種の Raid と複数のサーバーを使用します。サーバーがダウンした場合にアラートを出すには、何らかの監視が必要です。ホストする場所によっては、レンタルできる何らかの監視ソリューションがある場合があるため、何かがオフラインになった場合に通知する責任があります. サーバーの監視には Nagios を使用することをお勧めします。

If one server is enough to serve the clients. Would you still use a cluster? (I would think so.) And in that case, how many nodes would you have in the cluster? 

はい、何が起こるかわかりません。

   Which backup strategy would you use?

DR サイト、ログ配布 (複数の db サーバーの同期を維持するプロセスがあることを知っている sql サーバーを知っています)、および夜間のバックアップを備えたクラスター化されたソリューション。すべてのバックアップはオフサイトに発送し、少なくとも 7 日間保管する必要があります。また、データの安全性を確保するために暗号化する必要があります。

Do you think hosting the system in a computer cloud is a good alternative? (i.e. as provided by Amazon, Google or others.) 

まだ信頼できるかどうかわかりませんが、非常に高価だと聞いています。ミッション クリティカルなシステムについては、私が知っていることを利用し、実績のあるテクノロジを使用します。それは私の意見ですが。彼らはうまくいくかもしれません。

Would you use hard disk encryption? And if so, which kind? (One clarification: Yes it's only good if someone steals the hard disk, but that's still added security and may prevent (physical) intruders access to vital client business data.) 

おそらくそうではありません。サーバーの速度が大幅に低下します。サーバーを安全に保つために信頼できるホスティング サービスを使用したいと考えています。

Is providing the customer with a way to do their own backups as well a good alternative? These customers won't be technically oriented. So in that case downloading the information in a ZIP archive containing Microsoft Office files might be a good way? 

オプションを提供するのは良いことかもしれませんが、包括的なバックアップ戦略を示すことができれば、それで十分だと思います.

How would you monitor the solution? 

Nagios のようなもので、ホスティング サービスを利用してサーバーの状態を監視します。100% のアップタイムを実現するには、誰かが常にサーバー モニターを監視している NOC のような場所にいる必要があります。

これらのうち、社内で行うべきものと外注するべきものはどれだと思いますか? もちろん、基幹システムは自社で開発します。

あなたが快適で有能なことをしてください。プログラミングとテストのように聞こえます。サーバーのセットアップ、ホスティング、監視を行う人を雇います。これの鍵は、最低入札者と一緒に行かないことです。良い仕事をしてくれる人と一緒に行きましょう。

If you feel that the system is secure, as a technical person. How do you convince a non technical person that it's safe and secure? 

従うポリシーと手順の文書化されたセットがあります。使用するすべてのベンダーのリストと、それらから購入したもの、およびそれらがどのように実行されるように構成されているかを確認できます。契約するすべてのベンダーが評判が良く、実績があることを確認してください。

于 2009-03-04T22:24:06.763 に答える