簡単に言うと、バックエンドにFlask for Python、フロントエンドにBackbone for Javascriptを使用し、データをMongoDB、Redis、およびElasticSearchに格納します。私たちはAWSでホストされています。
スタックとは
Webサイトを提供するには多くの技術が必要です。それらは以下を含むさまざまな機能を実行します。
- ブラウザまたはアプリでページを作成し、それらのスタイル(色、フォント)を変更し、それらをインタラクティブにする(たとえば、クリックするとハートが赤くなり、コメントボックスが表示される)。これは フロントエンド、またはクライアントサイド
- ページに必要な情報(質問、回答、ユーザーの名前と写真、ハートの数など)を収集し、それをコンピュータまたは電話に送信します。これは バックエンド、またはサーバーサイド
- この情報を保存して、必要なときにいつでも利用できるようにして、必要な情報を正確に検索できるようにします。 これはデータベース、またはデータストアと呼ばれます
- インターネットに常時接続されているため、誰でもいつでもWebサイトにアクセスできます。コンピュータはと呼ばれています サーバー そして彼らは ホスト型 どこかに。
- その他多くの重要な機能
これらの各層では、多数の優れたオプションが利用可能であり、チームが行う選択は、チームメンバーの経験と快適さ、およびコストや特定のパフォーマンス要件などの実際的な事項に基づいています。
私たちの(ほぼ)フルスタック
いくつかの技術は私たち自身のサーバーとラップトップ上で私たちのチームのメンバーによってインストールされ、更新され、そして管理されます。それらは含まれます:
- Javascriptを整理するためのバックボーン
- CSSを再利用して整理するためのコンパス
- Flaskは、JSON + HTML APIを提供し、完全なHTMLページをレンダリングするためのPythonフレームワークです。
- 私たちのタスクキューのためのpyres(おそらくセロリも近いうちに)
- 私たちのデータを格納するためのMongoDB(おそらくPostgresも近く)
- サイト周辺のフィード、傾向のある質問、あらゆる種類の利用統計などをキャッシュします。
- ElasticSearchでパワーサーチ
- サイトを提供するNginx
- JavascriptとCSSを縮小、圧縮、改訂する
- Capistranoを使ってアプリをデプロイし、その他いくつかの役に立つタスクを実行します。
- 新しいサーバーに必要なソフトウェアをセットアップするための人形
一部のテクノロジは、他社によって構築および管理されているサービスです。他の誰かが自分自身ですべてをやるのではなく、特定の問題に集中できるようにするほうがより効率的です。私たちが使用しているサービスは次のとおりです。
- 当社のサーバー、静的資産、およびCDNとしてホストするためのAWS、別名アマゾンウェブサービス
- DNS、キャッシュ、およびある程度のセキュリティのためのクラウドフレア
- Google AnalyticsとMixpanel for analytics
- 集中ログ用のPapertrail
- クライアント側のエラーを追跡するためのSentry
- 当社のサーバーおよびサービスを監視するためのDataDog
- Flaskアプリのパフォーマンスを監視するためのNew Relic
- あなたがアプリで何をするかしないかに基づいて電子メールを送信するCustomer.io
- コードコラボレーションとホスティングのためのGithub
そしておそらく他にもたくさんあります。
Webサイトを構築して運用するには多くの作業が必要ですが、十分に構築されたツールを使用すれば、それほど難しくありません。