O estado de uma aplicação (ou qualquer outra coisa, realmente) é a sua condição ou qualidade de estar num dado momento no tempo – o seu estado de ser. Se algo é apátrida ou apátrida depende de quanto tempo o estado de interacção com ele está a ser registado e de como essa informação precisa de ser armazenada.
Stateless
Um processo ou aplicação sem estado pode ser entendido isoladamente. Não há conhecimento armazenado ou referência a transacções passadas. Cada transacção é feita pela primeira vez como se fosse do zero. As aplicações Stateless fornecem um serviço ou função e utilizam servidores de entrega de conteúdos (CDN), web, ou servidores de impressão para processar estes pedidos de curto prazo.
Um exemplo de uma transacção sem Estado seria fazer uma pesquisa online para responder a uma pergunta que tenha pensado. Escreve a sua pergunta num motor de busca e carrega em enter. Se a sua transacção for interrompida ou encerrada acidentalmente, basta iniciar uma nova. Pense nas transacções apátridas como uma máquina de venda automática: um único pedido e uma resposta.
Stateful
Aplicações e processos stateful, no entanto, são aqueles que podem ser repetidamente devolvidos, como bancos online ou correio electrónico. São realizados com o contexto de transacções anteriores e a transacção actual pode ser afectada pelo que aconteceu durante transacções anteriores. Por estas razões, as aplicações stateful utilizam os mesmos servidores cada vez que processam um pedido de um utilizador.
Se uma transacção estatal for interrompida, o contexto e o histórico foram armazenados de modo a que se possa mais ou menos retomar de onde parou. As aplicações estatais rastreiam coisas como localização de janelas, definição de preferências, e actividade recente. Pode pensar em transacções estatais como uma conversa periódica contínua com a mesma pessoa.
A maioria das aplicações que usamos no dia-a-dia são estatais, mas à medida que a tecnologia avança, os microserviços e os contentores facilitam a construção e a implementação de aplicações na nuvem.
Containers e state
Como a computação em nuvem e os microserviços crescem em popularidade, também a contentorização de aplicações, quer sejam stateful ou stateless. Os contentores são unidades de código para uma aplicação que são empacotadas, juntamente com as suas bibliotecas e dependências, para que possam ser movidas facilmente e possam ser executadas em qualquer ambiente, seja num ambiente de trabalho, numa infra-estrutura informática tradicional, ou numa nuvem.
Originalmente, os contentores foram construídos para serem sem estado, uma vez que isto se adequava à sua natureza portátil e flexível. Mas à medida que os contentores começaram a ser utilizados de forma mais generalizada, as pessoas começaram a proceder ao contentorização (redesenho e reembalagem com o objectivo de funcionar a partir de contentores) das aplicações de estado existentes. Isto deu-lhes a flexibilidade e rapidez de utilização de contentores, mas com o armazenamento e contexto de apatridia.
Por esta razão, as aplicações apatridias podem parecer-se muito com as apatridias e vice-versa. Por exemplo, pode ter uma aplicação sem estado, que não requer armazenamento a longo prazo, mas que permite ao servidor rastrear pedidos provenientes do mesmo cliente, utilizando cookies.
Gestão de contentores Stateless e StatefulSets
Com o crescimento da popularidade dos contentores, as empresas começaram a fornecer formas de gerir tanto os contentores stateless como os statefulSets utilizando armazenamento de dados, Kubernetes, e StatefulSets. O apatridia é agora uma parte importante do armazenamento de contentores e a questão tornou-se não se deve usar contentores apatridia, mas sim quando.
Se usar ou não recipientes apátridas ou sem apátridas resume-se a uma questão de que tipo de aplicação se está a construir e o que se precisa que faça. O apátrida é o caminho a seguir se precisar apenas de informação de forma transitória, rápida e temporária. Se a sua aplicação requer mais memória do que acontece de uma sessão para outra, no entanto, stateful pode ser o caminho a seguir.
Stateful, stateless, and Red Hat
Quando se trata de stateful ou stateless, o Red Hat tem-no coberto. Quer esteja a orquestrar contentores stateful na nossa plataforma empresarial Kubernetes, Red Hat OpenShift, ou a criar um ambiente unificado para o desenvolvimento de aplicações com Integração Red Hat, será apoiado pelo nosso apoio premiado e pelo maior ecossistema de parceiros da indústria.