Что такое инженерный стек? + Пример

Что такое инженерный стек? + Пример
Anonim

Короткий ответ заключается в том, что мы используем Flask для Python на бэкэнде, Backbone для Javascript на фронтэнде и храним наши данные в MongoDB, Redis и ElasticSearch. Мы размещены на AWS.

Что такое стек?

Для предоставления вам веб-сайта требуется много технологий, которые выполняют различные функции, в том числе:

  • Создание страниц в браузере или приложении, их стилизация (цвет, шрифты) и их интерактивность (например, окрашивание сердца в красный цвет и отображение комментария при нажатии на него). Это называется передний конец или на стороне клиента
  • Соберите информацию, необходимую для страницы (например, вопрос, ответ, имена пользователей и изображения, количество сердец), и отправьте ее на свой компьютер или телефон. Это называется серверная часть или сторона сервера
  • Хранение этой информации, чтобы она была доступна в любое время, когда это необходимо, и позволяющая нам искать именно ту информацию, которая нам нужна. Это называется база данных или хранилище данных
  • Компьютеры подключены к Интернету и всегда включены, так что любой может получить доступ к сайту в любое время. Компьютеры называются серверы и они состоялся где-то.
  • Многие другие важные и второстепенные функции

На каждом из этих уровней доступен ряд хороших вариантов, и выбор, который делает каждая команда, основан на опыте и комфорте членов команды, а также на практических вопросах, таких как стоимость и конкретные требования к производительности.

Наш (почти) полный стек

Некоторые технологии устанавливаются, обновляются и управляются членами нашей команды на наших собственных серверах и ноутбуках. Они включают:

  • Основа для организации нашего Javascript
  • Компас для повторного использования и организации нашего CSS
  • Flask, платформа Python для обслуживания JSON + HTML API и для отображения полных HTML-страниц
  • костры для наших очередей задач (скорее всего, сельдерей скоро)
  • MongoDB для хранения наших данных (возможно, скоро Postgres)
  • Redis для кэширования таких вещей, как каналы вокруг сайта, актуальные вопросы и все виды статистики использования
  • ElasticSearch для мощного поиска
  • Nginx для обслуживания сайта
  • Ворчать, чтобы минимизировать, сжать и пересмотреть наш Javascript и CSS
  • Capistrano, чтобы развернуть наше приложение и выполнить несколько других полезных задач
  • Puppet для установки необходимого нам программного обеспечения на новые серверы

Некоторые технологии являются услугами, созданными и управляемыми другими компаниями. Часто эффективнее позволить кому-то другому сосредоточиться на конкретных проблемах, а не делать все самостоятельно. Некоторые услуги, которые мы используем:

  • AWS или Amazon Web Services для размещения наших серверов, статических ресурсов и CDN.
  • Cloudflare для DNS, кеширование и некоторый уровень безопасности
  • Google Analytics и Mixpanel для аналитики
  • Papertrail для централизованной регистрации
  • Sentry для отслеживания ошибок на стороне клиента
  • DataDog для мониторинга наших серверов и сервисов
  • Новая Relic для мониторинга производительности приложения Flask
  • Customer.io для отправки электронных писем на основе того, что вы делаете или не делаете в приложении
  • Github для совместной работы над кодом и хостинга

И, вероятно, многие другие.

Создание и управление веб-сайтом требует много усилий, но с помощью хорошо сконструированных инструментов это не так сложно!