Jump to section

Sistemas con estado y sin estado

Copiar URL

El estado de una aplicación (o de cualquier otra cosa) hace referencia a su condición o cualidad de existir en un momento determinado. Es su capacidad de estar. El que un sistema tenga estado depende del tiempo durante el cual se registra interacción con él y de la forma en que se debe almacenar esa información. 

Un proceso o una aplicación sin estado se refiere a los casos en que estos están aislados. No se almacena información sobre las operaciones anteriores ni se hace referencia a ellas. Cada operación se lleva a cabo desde cero, como si fuera la primera vez. Las aplicaciones sin estado proporcionan un servicio o una función y usan servidores de impresión, de red de distribución de contenido (CDN) o web para procesar estas solicitudes a corto plazo. 

Un ejemplo de una operación sin estado puede ser la búsqueda en línea de la respuesta a una pregunta que se le haya ocurrido. Usted escribe la pregunta en un motor de búsqueda y presiona la tecla Entrar. Si la operación se interrumpe o se cierra por accidente, simplemente inicia una nueva. Piense en las operaciones sin estado como en máquinas expendedoras: a una solicitud, una respuesta. 

Por otro lado, las aplicaciones y los procesos con estado son aquellos a los que se puede volver una y otra vez, como la banca en línea o el correo electrónico. Se realizan con el contexto de las operaciones anteriores, y la operación actual puede verse afectada por lo que ocurrió previamente. Por estos motivos, las aplicaciones con estado utilizan los mismos servidores cada vez que procesan la solicitud de un usuario.  

En caso de interrumpirse una operación de este tipo, se puede retomar más o menos desde donde la dejó gracias al almacenamiento del contexto y el historial. Las aplicaciones con estado rastrean, por ejemplo, la ubicación de las ventanas, las preferencias de configuración y la actividad reciente. Piense en ellas como en una conversación periódica y constante con la misma persona.

La mayoría de las aplicaciones que usamos diariamente son de este tipo; pero conforme la tecnología avanza, los microservicios y los contenedores facilitan el diseño y la implementación de aplicaciones en la nube. 

El cloud computing y los microservicios se vuelven cada vez más populares, Y lo mismo sucede con la organización de aplicaciones en contenedores, ya sea con o sin estado. Los contenedores son unidades de código para una aplicación que se empaquetan junto con sus bibliotecas y dependencias. Esto les permite trasladarse con facilidad y funcionar en cualquier entorno, tanto en la infraestructura de TI tradicional de una computadora de escritorio como en la nube. 

En un principio, los contenedores se diseñaron para no tener estado, ya que esto se ajustaba a su naturaleza portátil y flexible. Sin embargo, a medida que se extendió su uso, la gente comenzó a organizar en contenedores las aplicaciones con estado actuales (es decir, a diseñarlas y empaquetarlas nuevamente para poder utilizarlas desde ellos). Esto les otorgó la flexibilidad y la rapidez que ofrecen los contenedores, pero con el almacenamiento y el contexto que proporciona el tener estado.

Por eso las aplicaciones con estado pueden ser muy parecidas a las que no tienen, y viceversa. Por ejemplo, puede tener una aplicación sin estado que no requiera almacenamiento a largo plazo, pero que permita al servidor rastrear las solicitudes que se originan en el mismo cliente mediante el uso de cookies. 

A partir del aumento de la popularidad de los contenedores, las empresas comenzaron a proporcionar formas de gestionarlos, independientemente de si tienen estado o no, mediante el almacenamiento de datos, Kubernetes y StatefulSets. El estado se convirtió en una parte importante del almacenamiento en contenedores, así que la pregunta ya no es si conviene utilizar este tipo de contenedores, sino cuándo. 

El uso de contenedores con o sin estado depende del tipo de aplicación que quiera diseñar y lo que necesita que haga. Si usted solo requiere información con rapidez y de forma temporal, entonces debería optar por los contenedores sin estado. En cambio, si la aplicación necesita retener más información sobre lo que sucede entre una sesión y otra, es probable que necesite contenedores con estado.

Cuando se trata de sistemas con estado o sin él, Red Hat tiene todo lo que necesita. Ya sea que esté organizando contenedores con estado en nuestra plataforma de Kubernetes empresarial, Red Hat OpenShift, o que esté diseñando un entorno unificado para el desarrollo de aplicaciones con Red Hat Integration, contará con el respaldo de nuestra soporte galardonado y del mayor ecosistema de partners del sector. 

Descubra la manera de utilizar nuestros productos para diseñar soluciones, aumentar la productividad de los desarrolladores y promover la innovación al estilo open source.

Artículos recomendados

ARTÍCULO

Sistemas con estado y sin estado

El que un sistema tenga estado depende del tiempo durante el cual se registra interacción con él y de la forma en que se debe almacenar esa información.

ARTÍCULO

¿Qué es Quarkus?

Quarkus es una pila de Java propia de Kubernetes que se creó para las compilaciones originales y las máquinas virtuales Java (JVM), la cual permite optimizar esta plataforma especialmente para los contenedores.

ARTÍCULO

¿Qué es la informática sin servidor?

Se trata de un modelo de desarrollo directamente en la nube que posibilita el diseño y la ejecución de aplicaciones sin que sea necesario gestionar servidores.

Más información sobre las aplicaciones desarrolladas en la nube

Productos

Plataforma de aplicaciones empresariales que ofrece servicios probados para lanzar aplicaciones al mercado en la infraestructura que usted escoja.

Contenido adicional

Capacitación

Capacitación gratuita

Developing Cloud-Native Applications with Microservices Architectures