Wat is de technische stapel? + Voorbeeld

Wat is de technische stapel? + Voorbeeld
Anonim

Het korte antwoord is dat we Flask gebruiken voor Python op de backend, Backbone voor Javascript op de front-end, en onze gegevens opslaan in MongoDB, Redis en ElasticSearch. We worden gehost op AWS.

Wat is een stapel?

Er zijn heel veel technologie vereist om een website aan u te leveren en ze vervullen een verscheidenheid aan functies, waaronder:

  • Pagina's in een browser of app maken, deze (kleur, lettertypen) stylen en interactief maken (bijvoorbeeld het hart rood maken en een opmerkingenvak weergeven wanneer u erop klikt). Dit wordt het front-end, of client-side
  • Verzamel de informatie die nodig is voor een pagina (bijvoorbeeld de vraag, het antwoord, de gebruikersnamen en afbeeldingen, het aantal harten) en verzend deze naar uw computer of telefoon. Dit wordt het backend of server-side
  • Deze informatie opslaan zodat deze altijd beschikbaar is en ons in staat stelt precies de informatie te vinden die we nodig hebben. Dit wordt de database of datastore genoemd
  • Computers die met internet zijn verbonden en altijd aan staan zodat iedereen op elk gewenst moment toegang heeft tot de website. De computers worden gebeld servers en zij zijn gehost ergens.
  • Veel andere kritische en minder belangrijke functies

Bij elk van deze lagen zijn een aantal goede opties beschikbaar en de keuzes die een team maakt, zijn gebaseerd op de ervaring en het comfort van de teamleden, evenals praktische zaken zoals kosten en specifieke prestatievereisten.

Onze (bijna) volledige stapel

Sommige technologieën worden geïnstalleerd, bijgewerkt en beheerd door leden van ons team op onze eigen servers en laptops. Ze bevatten:

  • Backbone om onze Javascript te organiseren
  • Kompas om onze CSS opnieuw te gebruiken en te organiseren
  • Flask, een Python-framework voor de JSON + HTML API en voor het weergeven van volledige HTML-pagina's
  • pyres voor onze takenwachtrijen (waarschijnlijk binnenkort Celery)
  • MongoDB om onze gegevens op te slaan (mogelijk binnenkort Postgres)
  • Redis om zaken zoals de feeds rond de site te cachen, trending vragen en allerlei gebruiksstatistieken
  • ElasticSearch om het zoeken te stroomlijnen
  • Nginx om de site te bedienen
  • Grunt om onze Javascript en CSS te verkleinen, comprimeren en herzien
  • Capistrano om onze app te implementeren en een paar andere nuttige taken uit te voeren
  • Puppet om de software in te stellen die we nodig hebben op nieuwe servers

Sommige technologieën zijn services die door andere bedrijven worden gebouwd en beheerd. Het is vaak efficiënter om iemand anders te laten focussen op specifieke problemen in plaats van alles zelf te doen. Sommige diensten die we gebruiken zijn:

  • AWS aka Amazon Web Services om onze servers, statische activa en als een CDN te hosten
  • Cloudflare voor DNS, caching en een bepaald niveau van beveiliging
  • Google Analytics en Mixpanel voor analyse
  • Papertrail voor gecentraliseerd loggen
  • Sentry voor het opsporen van fouten aan clientzijde
  • DataDog voor het monitoren van onze servers en services
  • Nieuwe relikwie voor het monitoren van de prestaties van de Flask-app
  • Customer.io om e-mails te verzenden op basis van wat u wel of niet doet in de app
  • Github voor code-samenwerking en hosting

En waarschijnlijk vele anderen.

Het kost veel moeite om een website te bouwen en te exploiteren, maar met de hulp van goed gebouwde tools is het niet zo moeilijk!