Jump to section

Stateful x stateless: qual a diferença?

Copiar URL

O estado de uma aplicação (ou de qualquer outra coisa, na verdade) é a condição ou a qualidade dela em um determinado momento: é seu estado de existência. Para determinar se algo é stateful ou stateless, basta considerar o tempo em que seu estado de interação é registrado e como essas informações precisam ser armazenadas. 

Uma aplicação ou processo stateless são recursos isolados. Nenhuma referência ou informação sobre transações antigas são armazenadas, e cada uma delas é feita do zero. As aplicações stateless fornecem uma função ou serviço e usam a rede de entrega de conteúdo (CDN), a web ou servidores de impressão para processar essas solicitações a curto prazo. 

Por exemplo, uma transação stateless pode ser uma pesquisa online que você faz para tirar alguma dúvida. Você digita sua consulta no mecanismo de pesquisa e pressiona enter. Se a transação for interrompida ou encerrada sem querer, você precisará começar outra. As transações stateless são como máquinas de vendas automáticas: você faz uma solicitação e recebe uma resposta. 

Aplicações e os processos stateful são aqueles que podem ser usados mais de uma vez, como e-mails e serviços bancários online. Eles são executados com base no contexto das transações anteriores. Dependendo do que aconteceu nelas, isso pode afetar as transações atuais. Por isso, as aplicações stateful usam os mesmos servidores sempre que processam uma solicitação do usuário.  

Se uma transação stateful for interrompida, você conseguirá retomá-la praticamente de onde parou, já que o contexto e o histórico são armazenados. As aplicações stateful acompanham informações como localização da janela, preferências de configuração e atividades recentes. Pense em transações stateful como uma conversa periódica e contínua com a mesma pessoa.

A maioria das aplicações que usamos no dia a dia é stateful. E, à medida que novos avanços tecnológicos surgem, os microsserviços e containers facilitam a criação e implantação de aplicações na nuvem. 

À medida que a cloud computing e os microsserviços ficam ainda mais conhecidos, o uso da conteinerização de aplicações stateful e stateless também aumenta. Os containers são unidades de códigos de uma aplicação empacotadas com bibliotecas e dependências. Assim, é possível transferi-los com facilidade e executá-los em todos os ambientes, seja no desktop, na infraestrutura de TI tradicional ou na nuvem. 

Originalmente, os containers foram desenvolvidos como stateless, já que essa característica era mais adequada à portabilidade e flexibilidade deles. No entanto, com o aumento do uso dos containers, as pessoas começaram a reprojetar e reempacotar suas aplicações stateful para executá-las nessa tecnologia, realizando a conteinerização. Isso forneceu a elas a flexibilidade e a velocidade dos containers, aliadas ao armazenamento e ao contexto do modelo stateful.

Por isso, as aplicações stateful são muito parecidas com as stateless e vice-versa. Por exemplo, talvez você tenha uma aplicação stateless que não exige armazenamento a longo prazo, mas que permite ao servidor acompanhar as solicitações do mesmo cliente usando cookies. 

Com o aumento do uso dos containers, as empresas começaram a fornecer maneiras de gerenciar containers stateless e stateful por meio do armazenamento de dados, do Kubernetes e dos StatefulSets. O modelo stateful é hoje parte essencial do armazenamento em container. As empresas entenderam que os containers stateful são necessários e agora se perguntam quando devem usá-los. 

O que determina o uso de containers stateless ou stateful é o tipo de aplicação desenvolvida e a finalidade dela. Se você precisa de informações temporárias com rapidez, stateless é a opção mais adequada. No entanto, se a aplicação exige o armazenamento das informações de todas as sessões, escolha o modelo stateful.

Quando falamos de stateful ou stateless, a Red Hat tem a melhor solução para você. Aproveite nosso suporte premiado e o maior ecossistema de parceiros do setor. Não importa se você está orquestrando containers stateful com o Red Hat OpenShift, nossa plataforma do Kubernetes pronta para empresas, ou criando um ambiente unificado para o desenvolvimento de aplicações com o Red Hat Integration

Veja como todos os nossos produtos criam soluções, aumentam a produtividade dos desenvolvedores e promovem a inovação: tudo com a filosofia open source.

Leitura recomendada

ARTIGO

Stateful x stateless

Para determinar se algo é stateful ou stateless, basta considerar o tempo em que seu estado de interação é registrado e como essas informações precisam ser armazenadas.

ARTIGO

O que é Quarkus?

Quarkus é um stack Java nativo em Kubernetes que foi desenvolvido para máquinas virtuais Java (JVMs) e compilação nativa, otimizando essa linguagem especificamente para containers.

ARTIGO

O que é serverless?

Serverless é um modelo de desenvolvimento nativo em nuvem para criação e execução de aplicações sem o gerenciamento de servidores.

Leia mais sobre aplicações nativas em nuvem

Soluções Red Hat

Uma plataforma de aplicações para empresas que oferece serviços testados para lançar aplicações na infraestrutura de sua escolha.

 

Conteúdo adicional

Caso de sucesso

Banco Galicia, da Argentina, integra novos clientes corporativos em minutos com sua plataforma de NLP inteligente.

VÍDEO - THE SOURCE TV

O futuro da nuvem: a evolução das soluções cloud

Aprenda mais sobre a evolução e o futuro das soluções em nuvem com os especialistas da Red Hat

E-book

O caminho para a adoção de aplicações nativas em nuvem

Caso de sucesso

KPMG

A KPMG melhora os resultados dos serviços estaduais ao cidadão por meio de uma moderna plataforma de integração de sistemas.

Treinamentos Red Hat

Treinamento gratuito

Developing Cloud-Native Applications with Microservices Architectures