のエンジニアリングスタックは何ですか? +例

のエンジニアリングスタックは何ですか? +例
Anonim

簡単に言うと、バックエンドに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サイトを構築して運用するには多くの作業が必要ですが、十分に構築されたツールを使用すれば、それほど難しくありません。