Qual è lo stack di ingegneria? + Esempio

Qual è lo stack di ingegneria? + Esempio
Anonim

La risposta breve è che utilizziamo Flask per Python sul backend, Backbone per Javascript sul front-end e memorizziamo i nostri dati in MongoDB, Redis ed ElasticSearch. Siamo ospitati su AWS.

Cos'è una pila?

Sono necessari molti pezzi di tecnologia per fornire un sito Web e svolgono una varietà di funzioni, tra cui:

  • Creare pagine in un browser o un'app, modellarle (colore, caratteri) e renderle interattive (ad esempio, trasformare il cuore in rosso e mostrare una casella di commento quando si fa clic su di esso). Questo è chiamato il front-end o lato client
  • Raccogliere le informazioni necessarie per una pagina (ad esempio la domanda, la risposta, i nomi utente e le immagini, il numero di cuori) e inviarla al computer o al telefono. Questo è chiamato il back-end o lato server
  • Memorizzando queste informazioni in modo che siano disponibili ogni volta che è necessario e permettendoci di cercare esattamente le informazioni di cui abbiamo bisogno. Questo è chiamato il database o datastore
  • Computer connessi a Internet e sempre attivi in modo che chiunque possa accedere al sito Web in qualsiasi momento. I computer sono chiamati server e loro sono ospitato da qualche parte.
  • Molte altre funzioni critiche e minori

In ognuno di questi livelli sono disponibili numerose opzioni valide e le scelte fatte da ciascun team si basano sull'esperienza e sul comfort dei membri del team, nonché su questioni pratiche come i costi e i requisiti specifici di rendimento.

Il nostro (quasi) stack completo

Alcune tecnologie sono installate, aggiornate e gestite dai membri del nostro team sui nostri server e laptop. Loro includono:

  • Backbone per organizzare il nostro Javascript
  • Bussola per riutilizzare e organizzare i nostri CSS
  • Flask, un framework Python per servire l'API JSON + HTML e per visualizzare pagine HTML complete
  • pire per le code delle attività (probabilmente Celery a breve)
  • MongoDB per memorizzare i nostri dati (eventualmente Postgres a breve)
  • Redis per memorizzare nella cache cose come i feed intorno al sito, le domande di tendenza e tutti i tipi di statistiche di utilizzo
  • ElasticSearch per alimentare la ricerca
  • Nginx per servire il sito
  • Grunt per minimizzare, comprimere e revisionare i nostri Javascript e CSS
  • Capistrano per implementare la nostra app ed eseguire alcune altre attività utili
  • Puppet per configurare il software di cui abbiamo bisogno sui nuovi server

Alcune tecnologie sono servizi creati e gestiti da altre società. Spesso è più efficiente lasciare che qualcun altro si concentri su problemi specifici invece di fare tutto da soli. Alcuni servizi che usiamo sono:

  • AWS aka Amazon Web Services per ospitare i nostri server, asset statici e come CDN
  • Cloudflare per DNS, memorizzazione nella cache e un certo livello di sicurezza
  • Google Analytics e Mixpanel per analisi
  • Papertrail per la registrazione centralizzata
  • Sentry per il monitoraggio degli errori lato client
  • DataDog per il monitoraggio dei nostri server e servizi
  • Nuova reliquia per il monitoraggio delle prestazioni dell'app Flask
  • Customer.io per inviare e-mail in base a ciò che fai o non fai nell'app
  • Github per la collaborazione e l'hosting del codice

E probabilmente molti altri.

Ci vuole un sacco di pezzi per costruire e gestire un sito web, ma con l'aiuto di strumenti ben costruiti, non è così difficile!