Krátká odpověď zní, že používáme Flask for Python na backendu, Backbone for Javascript na front-endu a ukládáme naše data do MongoDB, Redis a ElasticSearch. Jsme hostováni na AWS.
Co je to hromada?
Pro dodávání webových stránek je vyžadováno mnoho technologií a plní různé funkce, včetně:
- Vytváření stránek v prohlížeči nebo aplikaci, jejich tvarování (barva, fonty) a jejich interaktivita (např. Otáčení červeného srdce a zobrazení pole s poznámkou, když na něj kliknete). Toto se nazývá nebo na straně klienta
- Shromažďování informací potřebných pro stránku (např. Otázka, odpověď, jména uživatelů a obrázky, počet srdcí) a odeslání do počítače nebo telefonu. Toto se nazývá nebo na straně serveru
- Ukládání těchto informací, takže je k dispozici kdykoliv je potřeba, a umožňuje nám vyhledat přesně ty informace, které potřebujeme. To se nazývá databáze nebo datastore
- Počítače připojené k internetu a vždy tak, aby kdokoliv mohl kdykoliv přistupovat na webové stránky. Počítače jsou volány servery a jsou hostované někde.
- Mnoho dalších kritických a drobných funkcí
V každé z těchto vrstev je k dispozici celá řada dobrých možností a výběr každého týmu je založen na zkušenostech a pohodlí členů týmu a na praktických záležitostech, jako jsou náklady a specifické požadavky na výkon.
Náš (téměř) plný zásobník
Některé technologie jsou instalovány, aktualizovány a spravovány členy našeho týmu na vlastních serverech a noteboocích. Obsahují:
- Páteřní uspořádání našeho Javascriptu
- Kompas k opětovnému použití a organizaci našeho CSS
- Baňka, Python framework sloužící JSON + HTML API a vykreslování plných HTML stránek
- hranice pro naše fronty úkolů (pravděpodobně celer)
- MongoDB ukládá naše data (možná Postgres brzy)
- Přepište do mezipaměti věci, jako jsou kanály kolem webu, trendy otázky a všechny druhy použití statistiky
- ElasticSearch pro vyhledávání výkonu
- Nginx sloužit webu
- Chceme, aby naše Javascript a CSS byly zhuštěné, komprimované a revidované
- Capistrano nasadit naši aplikaci a provádět několik dalších užitečných úkolů
- Loutka pro nastavení potřebného softwaru na nových serverech
Některé technologie jsou služby vybudované a spravované jinými společnostmi. Často je efektivnější nechat někoho jiného zaměřit se na specifické problémy místo toho, aby dělal všechno sami. Některé služby, které používáme, jsou:
- AWS aka Amazon Web Services pro hostování našich serverů, statických aktiv a jako CDN
- Cloudflare pro DNS, ukládání do mezipaměti a určitou úroveň zabezpečení
- Google Analytics a Mixpanel pro analýzu
- Papertrail pro centralizované protokolování
- Sentry pro sledování chyb na straně klienta
- DataDog pro monitorování našich serverů a služeb
- Nový Relic pro sledování výkonu baňkové aplikace
- Customer.io odesílat e-maily na základě toho, co děláte nebo neuděláte v aplikaci
- Github pro spolupráci s kódem a hostování
A pravděpodobně mnoho dalších.
Vytvoření a provozování webové stránky trvá spoustu kusů, ale za pomoci dobře postavených nástrojů to není tak těžké!