Hvad er engineering stack? + Eksempel

Hvad er engineering stack? + Eksempel
Anonim

Det korte svar er, at vi bruger Flask til Python på backend, Backbone for Javascript på forsiden, og gem vores data i MongoDB, Redis og ElasticSearch. Vi er vært på AWS.

Hvad er en stak?

Der kræves mange teknologier til at levere en hjemmeside til dig, og de udfører en række funktioner, herunder:

  • Oprettelse af sider i en browser eller en app, styling dem (farve, skrifttyper) og gør dem interaktive (f.eks. Dreje hjertet rødt og vise en kommentarboks, når du klikker på den). Dette kaldes frontend eller klientside
  • Indsamler de nødvendige oplysninger til en side (fx spørgsmålet, svaret, brugernavne og billeder, antallet af hjerter) og sender det til din computer eller telefon. Dette kaldes backend eller server-side
  • Lagring af disse oplysninger, så den er tilgængelig, når det er nødvendigt, og giver os mulighed for at søge efter nøjagtigt de oplysninger, vi har brug for. Dette kaldes databasen eller datastore
  • Computere tilsluttet internettet og altid på, så alle kan få adgang til hjemmesiden til enhver tid. Computererne hedder servere og de er hostet et eller andet sted.
  • Mange andre kritiske og mindre funktioner

På hvert af disse lag er der en række gode muligheder, og de valg, som et team gør, er baseret på gruppemedlemmernes erfaring og komfort samt praktiske forhold som omkostninger og specifikke præstationsbehov.

Vores (næsten) fulde stack

Nogle teknologier installeres, opdateres og styres af medlemmer af vores team på vores egne servere og bærbare computere. De omfatter:

  • Backbone til at organisere vores Javascript
  • Kompass at genbruge og organisere vores CSS
  • Flask, en Python ramme til at tjene JSON + HTML API og gøre fuld HTML sider
  • pyres for vores opgaver køer (sandsynligvis selleri snart)
  • MongoDB til at gemme vores data (muligvis Postgres snart)
  • Redis til at cache ting som feeds omkring webstedet, trending spørgsmål og alle former for brugsstatistik
  • ElasticSearch for power search
  • Nginx at tjene stedet
  • Grunt til at reducere, komprimere og revidere vores Javascript og CSS
  • Capistrano at distribuere vores app og udføre et par andre hjælpsomme opgaver
  • Dukke til at oprette den software, vi har brug for på nye servere

Nogle teknologier er tjenester bygget og styret af andre virksomheder. Det er ofte mere effektivt at lade en anden fokusere på specifikke problemer i stedet for at gøre alt selv. Nogle tjenester vi bruger er:

  • AWS aka Amazon Web Services for at være vært for vores servere, statiske aktiver og som en CDN
  • Cloudflare for DNS, caching og et vis niveau af sikkerhed
  • Google Analytics og Mixpanel til analyse
  • Papertrail til centraliseret logning
  • Skyld for at spore klientsidefejl
  • DataDog til overvågning af vores servere og tjenester
  • New Relic til overvågning af Flask appens ydeevne
  • Customer.io at sende e-mails baseret på, hvad du gør eller ikke gør i appen
  • Github til til kode samarbejde og hosting

Og sandsynligvis mange andre.

Det kræver mange stykker at bygge og drive en hjemmeside, men med hjælp fra velbyggede værktøjer er det ikke så svært!