Was ist der Engineering Stack? + Beispiel

Was ist der Engineering Stack? + Beispiel
Anonim

Die kurze Antwort ist, dass wir Flask für Python im Backend, Backbone für Javascript im Frontend verwenden und unsere Daten in MongoDB, Redis und ElasticSearch speichern. Wir werden bei AWS gehostet.

Was ist ein Stapel?

Um eine Website für Sie bereitzustellen, ist eine Vielzahl von Technologien erforderlich, die eine Vielzahl von Funktionen ausführen, darunter:

  • Erstellen Sie Seiten in einem Browser oder in einer App, gestalten Sie sie (Farbe, Schriftarten) und gestalten Sie sie interaktiv (z. B. wenn das Herz rot wird und ein Kommentarfeld angezeigt wird, wenn Sie darauf klicken). Dies nennt man das Frontend oder Client-Seite
  • Sammeln der für eine Seite erforderlichen Informationen (z. B. Frage, Antwort, Benutzernamen und -bilder, Anzahl der Herzen) und Senden dieser Informationen an Ihren Computer oder Ihr Telefon. Dies nennt man das Backend oder serverseitig
  • Speichern Sie diese Informationen so, dass sie jederzeit verfügbar sind, und wir können genau nach den Informationen suchen, die wir benötigen. Dies wird als Datenbank oder Datastore bezeichnet
  • Computer sind mit dem Internet verbunden und immer eingeschaltet, sodass jeder jederzeit auf die Website zugreifen kann. Die Computer werden angerufen Server und sie sind gehostet irgendwo.
  • Viele andere kritische und kleinere Funktionen

In jeder dieser Schichten stehen eine Reihe guter Optionen zur Verfügung. Die Entscheidungen, die ein Team trifft, basieren auf der Erfahrung und dem Komfort der Teammitglieder sowie auf praktischen Aspekten wie Kosten und spezifischen Leistungsanforderungen.

Unser (fast) voller Stapel

Einige Technologien werden von Mitgliedern unseres Teams auf eigenen Servern und Laptops installiert, aktualisiert und verwaltet. Sie beinhalten:

  • Backbone, um unser Javascript zu organisieren
  • Kompass zur Wiederverwendung und Organisation unseres CSS
  • Flask, ein Python-Framework, um die JSON + HTML-API bereitzustellen und vollständige HTML-Seiten zu rendern
  • Pyres für unsere Aufgabenwarteschlangen (wahrscheinlich Sellerie bald)
  • MongoDB zum Speichern unserer Daten (möglicherweise bald Postgres)
  • Stellen Sie Dinge wie die Feeds auf der Website, Trendfragen und alle Arten von Nutzungsstatistiken in den Cache
  • ElasticSearch zur Power-Suche
  • Nginx, um die Site zu bedienen
  • Grunt, um Javascript und CSS zu minimieren, zu komprimieren und zu überarbeiten
  • Capistrano, um unsere App bereitzustellen und einige andere hilfreiche Aufgaben auszuführen
  • Puppet zum Einrichten der Software, die wir auf neuen Servern benötigen

Einige Technologien sind Dienste, die von anderen Unternehmen erstellt und verwaltet werden. Es ist oft effizienter, wenn jemand anderes sich auf bestimmte Probleme konzentriert, anstatt alles selbst zu erledigen. Einige Dienste, die wir verwenden, sind:

  • AWS, auch Amazon Web Services genannt, zum Hosten unserer Server, statischer Assets und als CDN
  • Cloudflare für DNS, Caching und ein gewisses Maß an Sicherheit
  • Google Analytics und Mixpanel für die Analyse
  • Papierbahn für die zentrale Protokollierung
  • Sentry zur Verfolgung von clientseitigen Fehlern
  • DataDog zur Überwachung unserer Server und Dienste
  • Neues Relikt zur Überwachung der Leistung der Flask-App
  • Customer.io zum Versenden von E-Mails basierend auf dem, was Sie in der App tun oder nicht tun
  • Github für Code-Collaboration und Hosting

Und wahrscheinlich viele andere.

Der Aufbau und Betrieb einer Website erfordert viele Teile, aber mit Hilfe gut gebauter Tools ist es nicht so schwer!