Hva er engineering stack? + Eksempel

Hva er engineering stack? + Eksempel
Anonim

Det korte svaret er at vi bruker Flask for Python på backend, Backbone for Javascript på forsiden, og lagrer dataene våre i MongoDB, Redis og ElasticSearch. Vi er vert på AWS.

Hva er en stabel?

Mange teknologiske deler kreves for å levere et nettsted til deg, og de utfører en rekke funksjoner, blant annet:

  • Opprette sider i en nettleser eller en app, styler dem (farge, skrifter) og gjør dem interaktive (for eksempel å snu hjertet rødt og vise en kommentarboks når du klikker på den). Dette kalles frontend eller klientside
  • Samler informasjonen som trengs for en side (for eksempel spørsmålet, svaret, brukernavnene og bildene, antall hjerter) og sender det til datamaskinen eller telefonen. Dette kalles backend eller server-side
  • Lagring av denne informasjonen, slik at den er tilgjengelig når som helst, det er nødvendig, og lar oss søke etter akkurat den informasjonen vi trenger. Dette kalles databasen, eller datastore
  • Datamaskiner koblet til Internett og alltid på, slik at alle kan få tilgang til nettstedet når som helst. Datamaskinene kalles servere og de er vert et sted.
  • Mange andre kritiske og mindre funksjoner

På hvert av disse lagene er det mange gode alternativer tilgjengelig, og valgene som et lag lager, er basert på teammedlemmernes erfaring og komfort, samt praktiske forhold som kostnad og spesifikke ytelseskrav.

Vår (nesten) full stabel

Noen teknologier installeres, oppdateres og administreres av medlemmer av teamet vårt på våre egne servere og bærbare datamaskiner. De inkluderer:

  • Ryggrad for å organisere Javascript
  • Kompass å gjenbruke og organisere vårt CSS
  • Flask, et Python-rammeverk for å betjene JSON + HTML API og gi full HTML-sider
  • pyres for våre oppdragskøer (sannsynligvis selleri snart)
  • MongoDB å lagre våre data (muligens Postgres snart)
  • Redis for å cache ting som feeds rundt nettstedet, trending spørsmål, og all slags bruk statistikk
  • ElasticSearch for å søke på strøm
  • Nginx for å betjene nettstedet
  • Grunt å redusere, komprimere og revidere Javascript og CSS
  • Capistrano å distribuere vår app og utføre noen andre nyttige oppgaver
  • Dukke for å sette opp programvaren vi trenger på nye servere

Noen teknologier er tjenester bygget og administrert av andre selskaper. Det er ofte mer effektivt å la noen andre fokusere på bestemte problemer i stedet for å gjøre alt selv. Noen tjenester vi bruker er:

  • AWS aka Amazon Web Services for å være vert for våre servere, statiske eiendeler og som en CDN
  • Cloudflare for DNS, caching og noe sikkerhetsnivå
  • Google Analytics og Mixpanel for analyse
  • Papertrail for sentralisert logging
  • Sentry for å spore klientsidefeil
  • DataDog for overvåking av våre servere og tjenester
  • New Relic for å overvåke flaskappappens ytelse
  • Customer.io å sende e-postmeldinger basert på hva du gjør eller ikke gjør i appen
  • Github til for samarbeid og hosting

Og sannsynligvis mange andre.

Det tar mange stykker å bygge og drive et nettsted, men med hjelp av godt bygget verktøy er det ikke så vanskelig!