Що таке інженерний стек компанії? + Приклад

Що таке інженерний стек компанії? + Приклад
Anonim

Коротка відповідь полягає в тому, що ми використовуємо Flask для Python на сервері, Backbone для Javascript на передньому кінці і зберігаємо наші дані в MongoDB, Redis і ElasticSearch. Ми розміщені на AWS.

Що таке стек?

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

  • Створення сторінок у веб-переглядачі або програмі, їх укладання (колір, шрифти) та інтерактивність (наприклад, переведення серця червоним кольором та відображення вікна коментарів під час натискання на неї). Це називається передній або клієнтський
  • Збір інформації, необхідної для сторінки (наприклад, питання, відповідь, імена користувачів і картинки, кількість сердець), а також надсилання на комп'ютер або телефон. Це називається сервер або сервер
  • Зберігаючи цю інформацію, щоб вона була доступна в будь-який час, і дозволяючи нам шукати потрібну інформацію. Це називається базою даних або сховищем даних
  • Комп'ютери, підключені до Інтернету, завжди доступні для будь-якого доступу до веб-сайту. Називаються комп'ютери серверів і вони є розміщено десь.
  • Багато інших критичних і незначних функцій

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

Наш (майже) повний стек

Деякі технології встановлюються, оновлюються і керуються членами нашої команди на наших власних серверах і ноутбуках. Вони включають:

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

Деякі технології - це послуги, створені та керовані іншими компаніями. Часто ефективніше дозволити комусь зосередитися на конкретних проблемах, а не робити все самостійно. Деякі послуги, які ми використовуємо:

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

І, напевно, багато інших.

Для побудови та експлуатації веб-сайту потрібно багато штук, але за допомогою добре побудованих інструментів це не так вже й важко!