¿Qué es la pila de ingeniería? + Ejemplo

¿Qué es la pila de ingeniería? + Ejemplo
Anonim

La respuesta corta es que usamos Flask for Python en el backend, Backbone para Javascript en el front-end y almacenamos nuestros datos en MongoDB, Redis y ElasticSearch. Estamos alojados en AWS.

¿Qué es una pila?

Se requiere una gran cantidad de piezas de tecnología para entregarle un sitio web, y realizan una variedad de funciones, que incluyen:

  • Crear páginas en un navegador o una aplicación, aplicarles un estilo (color, fuentes) y hacerlas interactivas (por ejemplo, convertir el corazón en rojo y mostrar un cuadro de comentarios al hacer clic en él). Esto se llama front-end, o del lado del cliente
  • Recopilar la información necesaria para una página (por ejemplo, la pregunta, la respuesta, los nombres de usuario y las imágenes, el número de corazones) y enviarla a su computadora o teléfono. Esto se llama backend, o servidor
  • Almacenar esta información para que esté disponible en cualquier momento que sea necesaria, y nos permite buscar exactamente la información que necesitamos. Esto se llama la base de datos, o almacén de datos
  • Computadoras conectadas a Internet y siempre encendidas para que cualquier persona pueda acceder al sitio web en cualquier momento. Las computadoras se llaman servidores y estan alojado algun lado.
  • Muchas otras funciones críticas y menores.

En cada una de estas capas, hay una serie de buenas opciones disponibles y las decisiones que toma cualquier equipo se basan en la experiencia y la comodidad de los miembros del equipo, así como en cuestiones prácticas como el costo y los requisitos específicos de rendimiento.

Nuestra (casi) pila completa

Los miembros de nuestro equipo instalan, actualizan y administran algunas tecnologías en nuestros propios servidores y computadoras portátiles. Incluyen:

  • Backbone para organizar nuestro Javascript.
  • Brújula para reutilizar y organizar nuestro CSS.
  • Flask, un framework Python para servir la API JSON + HTML y para representar páginas HTML completas
  • piras para nuestras colas de tareas (probablemente apio pronto)
  • MongoDB para almacenar nuestros datos (posiblemente Postgres pronto)
  • Redise para almacenar en caché cosas como las fuentes en el sitio, las preguntas de tendencias y todo tipo de estadísticas de uso
  • ElasticSearch para potenciar la búsqueda
  • Nginx para servir el sitio
  • Haga clic para minimizar, comprimir y revisar nuestro Javascript y CSS.
  • Capistrano para implementar nuestra aplicación y realizar algunas otras tareas útiles
  • Puppet para configurar el software que necesitamos en nuevos servidores.

Algunas tecnologías son servicios construidos y gestionados por otras empresas. A menudo es más eficiente dejar que alguien más se centre en problemas específicos en lugar de hacerlo todo por nosotros mismos. Algunos de los servicios que utilizamos son:

  • AWS también conocido como Amazon Web Services para alojar nuestros servidores, activos estáticos y como CDN
  • Cloudflare para DNS, almacenamiento en caché y cierto nivel de seguridad
  • Google Analytics y Mixpanel para Analytics
  • Papertrail para la tala centralizada
  • Sentry para el seguimiento de errores del lado del cliente
  • DataDog para monitorear nuestros servidores y servicios
  • New Relic para monitorear el rendimiento de la aplicación Flask
  • Customer.io para enviar correos electrónicos según lo que haga o no haga en la aplicación
  • Github para código de colaboración y hosting.

Y probablemente muchos otros.

Se necesita un montón de piezas para construir y operar un sitio web, pero con la ayuda de herramientas bien construidas, ¡no es tan difícil!