驴Qu茅 es una pila tecnol贸gica?
Para ayudarle a entender por qu茅 es esencial contar con las capas adecuadas en su pila tecnol贸gica, esta p谩gina tratar谩:
- 驴De d贸nde proceden las pilas tecnol贸gicas?
- Capas de la pila tecnol贸gica
- 驴Cu谩les son las diferentes pilas tecnol贸gicas?
- Pilas tecnol贸gicas Couchbase
- Conclusi贸n
Una pila tecnol贸gica permite combinar software, herramientas y servicios para crear una aplicaci贸n web o m贸vil. Cada capa de una pila tecnol贸gica t铆pica es responsable de un tipo distinto de tarea, ya sea la presentaci贸n, la l贸gica de la aplicaci贸n o la persistencia.
驴De d贸nde proceden las pilas tecnol贸gicas?
El concepto de pila tecnol贸gica existe desde los primeros d铆as de la web. Las primeras p谩ginas web eran simples "contenidos est谩ticos". Para recuperar el contenido, las p谩ginas web utilizaban un m茅todo rudimentario de llamada a un programa externo llamado Interfaz com煤n de pasarela (CGI). Un script CGI permitir铆a al servidor web ejecutar un programa para procesar las peticiones de los usuarios. Muchos de estos primeros programas se crearon a mano en el lenguaje de programaci贸n C.
Casi de inmediato, los primeros desarrolladores web empezaron a experimentar con mejores marcos y abstracciones para construir software web. Perl surgi贸 como un lenguaje m谩s sencillo y accesible para escribir este c贸digo. Pero a煤n no era una pila tecnol贸gica.
Tras m谩s innovaci贸n y evoluci贸n, empezaron a surgir diversas pilas tecnol贸gicas. En lugar de escribir el HTML a mano, surgieron bibliotecas y marcos de plantillas de p谩ginas para el capa de presentaci贸n mientras que el resto del programa era de forma libre. Cosas como las bases de datos relacionales proporcionaron una forma clara de gestionar y expresar el acceso a los datos para los desarrolladores de aplicaciones, por lo que la capa de persistencia y surgieron conceptos como los grupos de conexi贸n.
Capas de la pila tecnol贸gica
La gente utiliza diferentes nombres para las mismas capas de la pila, as铆 que para nuestros prop贸sitos simplemente nos referiremos a ellas como capa superior, capa intermedia y capa inferior. Lo que es m谩s importante es la tarea de la que es responsable cada capa, y revisaremos esas responsabilidades de arriba a abajo.
Capa superior de la pila tecnol贸gica: Presentaci贸n
La capa de presentaci贸n de una pila tecnol贸gica es donde se produce el formateo y la localizaci贸n. Por ejemplo, un sitio web puede tener un logotipo y un conjunto de colores, pero a medida que cambian los estilos, es posible que desee cambiar el aspecto y la sensaci贸n. Otro ejemplo de la capa de presentaci贸n es la personalizaci贸n. Si un navegador solicita informaci贸n de un pa铆s en el que los usuarios quieren que las temperaturas se presenten en grados Celsius en lugar de Fahrenheit, la informaci贸n proporcionada ser谩 diferente.
Capa intermedia de la pila tecnol贸gica: L贸gica de aplicaci贸n
La l贸gica de la aplicaci贸n se encuentra en la capa intermedia de su pila tecnol贸gica. Por ejemplo, la solicitud del navegador web puede incluir una ubicaci贸n (p. ej., Austin, Texas) y una zona horaria (Central) que la l贸gica de la aplicaci贸n debe resolver en la consulta correcta a la base de datos.
La capa intermedia puede repartirse utilizando una arquitectura basada en microservicios, que permite que varias partes de la aplicaci贸n se implementen de forma independiente a trav茅s de interfaces de servicio bien descritas.
Capa m谩s baja de la pila tecnol贸gica: Persistencia (o base de datos)
La capa de persistencia es normalmente la capa m谩s baja de la pila, y puede ser tan simple como un conjunto de archivos en un sistema de ficheros. La gesti贸n de datos en un sistema de archivos b谩sico, sin embargo, requiere que un desarrollador desarrolle formas de indexar y acceder a los datos por s铆 mismo - una tarea de enormes proporciones.
En su lugar, la mayor铆a de los desarrolladores optan por una base de datos. Originalmente, la base de datos a la que se recurr铆a era base de datos relacional porque eran los m谩s comunes. Sin embargo, con el tiempo, Bases de datos NoSQL se han convertido en otra opci贸n popular para los desarrolladores debido a la flexibilidad, escalabilidad y capacidades m谩s amplias de NoSQL.
驴Cu谩les son las diferentes pilas tecnol贸gicas?
La pila LAMP (formada por Linux, Apache, MySQL y PHP) se convirti贸 en una de las primeras pilas populares. Linux se convirti贸 en el sistema operativo m谩s utilizado; Apache, en el servidor web m谩s utilizado; MySQL, en la base de datos m谩s utilizada; y PHP, en el lenguaje de programaci贸n y plantillas de p谩ginas m谩s utilizado.
Ejemplos de pila tecnol贸gica
La siguiente lista es s贸lo un ejemplo de lo diversas e interoperables que pueden ser las pilas tecnol贸gicas:
WIMP
Sistema operativo Windows, servidor web IIS, base de datos MySQL y capa de aplicaciones PHP
MAMP
Mac OS, servidor web Apache, base de datos MySQL y capa de aplicaciones PHP
FAMP
Sistema operativo FreeBSD, servidor web Apache, base de datos MySQL y capa de aplicaciones PHP
LAPP
Sistema operativo Linux, servidor web Apache, base de datos PostgreSQL y capa de aplicaciones PHP
LNMP
Sistema operativo Linux, servidor web NGINX, base de datos MySQL y capa de aplicaciones PHP
MEAN
Base de datos MongoDB, controlador de aplicaciones Express.js, presentaci贸n de aplicaciones Angular.js y Node.js
LYME
Sistema operativo Linux, servidor web Yaws, base de datos Mnesia y capa de aplicaciones Erlang.
LYCE
Sistema operativo Linux, servidor web Yaws, base de datos CouchDB y capa de aplicaciones Erlang
ELK
Agregador de b煤squeda/estad铆stica Elasticsearch, recuperaci贸n de registros Logstash, presentaci贸n gr谩fica Kibana
Jamstack
Presentaci贸n en JavaScript, API de acceso a datos y marcado (contenido est谩tico o de plantilla)
Pilas tecnol贸gicas Couchbase
Como plataforma de base de datos en la nube, Couchbase desempe帽a un papel fundamental en las pilas tecnol贸gicas. Dado que integra un conjunto de funciones de acceso y gesti贸n de datos com煤nmente requeridas por los desarrolladores de aplicaciones, Couchbase facilita la escalabilidad y el crecimiento.
La pila CEAN
Esta pila utiliza Couchbase, Express, Angular.js y Node.js. Es similar a la pila MEAN pero utiliza Couchbase como base de datos. CEAN incluso tiene una herramienta de andamiaje de proyectos impulsada por la comunidad.
La pila COdE
Esta pila utiliza Couchbase para la base de datos, Ottoman.js para el mapeador de documentos de objetos (software que facilita el mapeo de estructuras de programaci贸n en bases de datos) y Express.js para el enrutamiento de aplicaciones.
Conclusi贸n
Puede resultarte 煤til pensar en abstraer la aplicaci贸n o el servicio que est谩s creando para tus usuarios como una pila tecnol贸gica. Esta es una buena manera de considerar cuidadosamente cada uno de los componentes individuales y, lo que es m谩s importante, al pensar en las responsabilidades de cada capa por separado, podr谩s construir una arquitectura de sistema m谩s flexible con componentes que sean m谩s intercambiables.