Care este stiva de inginerie? + Exemplu

Care este stiva de inginerie? + Exemplu
Anonim

Răspunsul scurt este că vom folosi Flask pentru Python pe backend, Backbone pentru Javascript pe front-end și stocăm datele noastre în MongoDB, Redis și ElasticSearch. Suntem găzduiți pe AWS.

Ce este un stiva?

O multitudine de tehnologii sunt necesare pentru a vă furniza un site web și aceștia îndeplinesc o varietate de funcții, printre care:

  • Crearea de pagini într-un browser sau într-o aplicație, styling-ul acestora (culoare, fonturi) și interacțiunea lor (de exemplu, rotirea inimii roșii și afișarea unei casete de comentarii când faceți clic pe ea). Aceasta se numește partea frontală sau partea clientului
  • Colectarea informațiilor necesare pentru o pagină (de exemplu, întrebarea, răspunsul, numele utilizatorilor și imaginile, numărul de inimi) și trimiterea acestora pe computer sau pe telefon. Aceasta se numește backend sau server-side
  • Stocarea acestor informații, astfel încât acestea să fie disponibile ori de câte ori este nevoie și ne permit să căutăm exact informațiile de care avem nevoie. Aceasta se numește baza de date sau datastore
  • Computerele conectate la Internet și întotdeauna, astfel încât oricine poate accesa site-ul în orice moment. Se cheamă calculatoarele servere și ei sunt găzduit undeva.
  • Multe alte funcții critice și minore

La fiecare dintre aceste straturi există o serie de opțiuni bune, iar opțiunile pe care le realizează o echipă se bazează pe experiența și confortul membrilor echipei, precum și pe aspecte practice precum costul și cerințele specifice de performanță.

(Aproape) întregul nostru stack

Unele tehnologii sunt instalate, actualizate și gestionate de membrii echipei noastre pe servere și laptop-uri proprii. Ei includ:

  • Spine pentru a organiza Javascript-ul nostru
  • Compass pentru a reutiliza și organiza CSS-ul nostru
  • Flask, un cadru Python pentru a servi API-ul JSON + HTML și pentru a reda pagini HTML complete
  • pyres pentru cozile de sarcini (probabil Celery în curând)
  • MongoDB pentru a stoca datele noastre (eventual Postgres în curând)
  • Redis la cache lucruri cum ar fi feed-uri în jurul site-ului, întrebări trending, și tot felul de statistici de utilizare
  • ElasticSearch to power search
  • Nginx pentru a servi site-ul
  • Grunt pentru a minimiza, comprima și revizui Javascript și CSS
  • Capistrano pentru a implementa aplicația noastră și pentru a efectua câteva alte activități utile
  • Puppet pentru a configura software-ul de care avem nevoie pe servere noi

Unele tehnologii sunt servicii create și administrate de alte companii. Este adesea mai eficient să permiteți altcuiva să se concentreze asupra unor probleme specifice, în loc să facă totul pe cont propriu. Unele servicii pe care le folosim sunt:

  • AWS, denumite Amazon Web Services, pentru a găzdui serverele noastre, activele statice și ca CDN
  • Cloudflare pentru DNS, cache și un anumit nivel de securitate
  • Google Analytics și Mixpanel pentru analiză
  • Hârtie pentru logare centralizată
  • Sentry pentru urmărirea erorilor din partea clientului
  • DataDog pentru monitorizarea serverelor și serviciilor noastre
  • New Relic pentru monitorizarea performanței aplicației Flask
  • Customer.io pentru a trimite e-mailuri în funcție de ceea ce faceți sau nu în aplicație
  • Github pentru colaborare cu coduri și găzduire

Și probabil mulți alții.

Este nevoie de o mulțime de piese pentru a construi și a opera un site web, dar cu ajutorul unor instrumente bine construite, nu este atât de greu!