Aplicações stateful e stateless
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.
Stateless
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.
Stateful
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.
Open Technology Sessions
Conheça a série de webinars da Red Hat em português feita para você descobrir como inovar. Aprenda sobre Automação, Infraestrutura, Plataforma de Aplicações, Cloud Services, Inteligência Artificial e muito mais!
Containers
À 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.
Gerenciamento de containers stateless e stateful
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.
Stateful, stateless e a Red Hat
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.