terça-feira, 11 de janeiro de 2022

Utilizando a Engenharia do Caos para gerar Soluções Resilientes

 

Todas as empresas estão percebendo os benefícios da transformação digital, com adoção de soluções em nuvem, que por definição oferecem alta escalabilidade e infinito potencial de crescimento rápido, entretanto essa vantagem pode se tornar uma desvantagem se os recursos começarem a falhar em escala também e causarem danos maiores para todos. 

Sendo o caos basicamente um estado de completa desordem e confusão, como esse conceito aliado a engenharia pode oferecer ideias e validações para a prevenção de falhas das nossas soluções?

Atualmente, durante o processo de arquitetura de soluções, principalmente em nuvem, é extremamente usual a inclusão no desenho final, de recursos e técnicas que visam garantir a resiliência das aplicações contra possíveis falhas. Por definição a resiliência é a capacidade de se recuperar de falhas e tudo continuar funcionando, sua principal meta é retornar um aplicativo para um estado totalmente funcional após uma falha. 

Imagine que exista uma forma de submeter um aplicativo ou uma solução, as possíveis falhas que possam ocorrer no mundo real e valide ao mesmo tempo as condições de resiliência, essa prática é conhecida como Engenharia do Caos, seu propósito é testar a resiliência dos sistemas ao conduzir experimentos que injetam falhas, simulando condições reais.

O conceito deste método é similar ao de uma vacina: injetar partes do vírus inofensivas que irão fornecer imunidade ao seu sistema, sem causar nenhum mal.

Entre os principais benefícios desse método está identificar pontos únicos de falhas na arquitetura, com experimentos de abordagem proativa, que resultam na identificação de falhas, mas também insumos para sua solução.

Analisar os efeitos de falhas no mundo real é outro grande benefício, não sabemos exatamente como uma solução se comporta em situações específicas, executando simulações controladas, ajudará a entender o comportamento.

Todo sistema por padrão deve ter uma excelente observância, a utilização da Engenharia do Caos, exige a implementação de mecanismo de monitoramento e alertas que irão melhorar essa observabilidade. 

Mesmo que estejam tratando de micro serviços, por exemplo, existe um grande complexidade de dependência dos sistemas para que o resultado seja alcançado, na maioria das vezes conseguimos isolar um sistema para garantir sua resiliência, entretanto compreender a propagação de falhas entre os componentes, exige um grande conhecimento de todos os comportamentos, e os experimentos da engenharia do Cais proporcionará uma melhor compreensão dos cenários.

A Engenharia do Caos é uma maneira de garantir a previsibilidade das soluções, gerando de uma forma proativa a implementação da cultura de aceitação do erro como parte do processo de aprendizado.


Recentemente a Microsoft anunciou a versão pública do Azure Chaos Studio, uma plataforma de experimentação de engenharia de caos totalmente gerenciada para acelerar a descoberta de situações singulares de falhas. 

Nos desenhos de arquitetura, em teoria pelo menos, conseguimos criar ambientes extremamente resilientes, porém a verdade é que só conseguiremos verificar essa eficiência numa possível falha. Com a ferramenta Azure Chaos Studio podemos criar várias simulações de cenários como,  alto tráfego de clientes, máquinas com 100% de processamento, falta de memória, serviços que são interrompidos ou afetados por problema, entre outras tantas. Esses experimentos irão fornecer resultados e análises que poderão auxiliar em estratégias e ações para mitigar ou validar a confiabilidade das soluções facilmente.

Através da utilização da plataforma Azure Chaos Studio é possível personalizar experimentos de forma simples e fácil, assim como gerenciamos pastas e arquivos, a interface intuitiva auxilia na organização e fornece uma biblioteca (em contínua expansão) de cenários de falhas. 

Em cada passo do experimento você pode utilizar dois tipos de abordagem de injeção de falhas, que pode ser a instalação de agente dentro de máquina virtual, ou chamadas diretas de serviços, como por exemplo chamadas de API. Outra simplicidade, cada experimento é armazenado no formato JSON, o que facilita muito a administração, compreensão e atualização sistêmica. 


Todo experimento poderá ser acoplado numa esteira de CI/CD para validação de testes de integração ou estresse, a adição de falhas durante esse processo pode auxiliar na localização de problemas que usualmente não seriam encontrados pelos testes.

Outra vantagem no momento, é que até abril/2022 a oferta de execução dos experimentos dentro do Azure Chaos será gratuita e após essa data será cobrado com base na duração pela qual as suas ações do experimento são executadas.

Podemos entender, que é fundamental para a qualidade das nossas soluções, que as possíveis falhas ou comportamentos inesperados possam ser identificados e resolvidos antes mesmo que se manifestem. O investimento para garantir a resiliência de uma arquitetura será a entrega de valor com eficiência e eficácia para os clientes. 

Quanto mais escalável e complexa a solução, maior será a responsabilidade em mantê-la estável independentemente das condições externas que possam afetá-la. A Engenharia do Caos auxiliará na garantia da previsibilidade, de uma forma proativa, melhorando a confiabilidade das soluções. 

Fontes

Azure Chaos Studio - https://azure.microsoft.com/services/chaos-studio


Marcelo Goberto de Azevedo 

Cloud Engineering Lead na GFT Brasil

//marcelogoberto.com.br



segunda-feira, 27 de dezembro de 2021

10 lições do Almirante McRaven Aplicadas em sua Carreira

O Almirante William H. McRaven foi um SEAL que serviu durante 37 anos na Marinha do Estados Unidos e através de seu livro “Arrume a sua Cama” exemplificou valiosas lições que aprendeu nesta organização e que podemos aplicar em nossas carreiras para ajudar no desenvolvimento profissional.


No livro, "A Montanha de Nuvem", acompanhe a trajetória de Elias, um camponês que parte em busca de um sonho distante, apenas para descobrir que as respostas sempre estiveram mais próximas do que imaginava. Assim como nas lições do Almirante McRaven, a história reforça que a jornada é tão importante quanto o destino e que nossas escolhas moldam quem nos tornamos.

Clique para baixar "A Montanha de Nuvem" de graça pelo Kindle Unlimited . 📚✨



Pequenas tarefas são importantes

Todos somos guiados a executar grandes feitos para aumentar a eficiência de nossas conquistas, entretanto para executar esses feitos é fundamental ter controle, planejamento, persistência, resiliência, tenacidade, sagacidade entre outras habilidades. E precisamos praticar todas essas habilidades várias vezes ao dia para aumentar nosso domínio delas, basicamente executando tarefas menores com primor, se você consegue criar um alto nível de comprometimento com a execução de uma tarefa, mesmo que pequena, sua mente irá se moldar a executar sempre os passos do procedimento para garantir o desempenho.

Ajude e permita-se ser ajudado

Todos nós atuamos em grupos, grandes ou pequenos, são raros os objetivos corporativos em que a atuação depende somente da nossa ação. Praticamente temos que fortalecer nossas relações para aumentar as chances de sucesso para conquistar as metas, entregas, indicadores entre outros fatores. E a melhor forma de criar relações fortes e ajudar e permitir ser ajudado, isso criará um vínculo mais forte, pois irá demonstrar seu comprometimento tanto em estender a mão, como humildade para solicitar uma mão estendida.

Seja humano com humanos

Nós sempre gostamos quando somos tratados com respeito, atenção e cuidado, se isso é tão importante para nós, devemos defender esses tratamentos e estendê-lo a todos que nos cercam. Mesmo estando no meio empresarial ainda somos pessoas com todo o pacote incluso, portanto se faz necessário que tenhamos a sublime sutileza de praticar empatia com o próximo.

Abrace suas falhas e aprenda com elas

Voltando ao tema que todos somos humanos, uma certeza universal é que humanos são falíveis, tendo essa certeza em mente como podemos transformar essa condição em vantagem na carreira? Simplesmente aprendendo com cada uma das suas falhas, mesmo que elas aconteçam repetidamente, porque será através da análise e conhecimento da causa e efeito, que poderemos gerar novos comportamentos preventivos para evitá-las e até mesmo aprimorar nossa eficiência.

Dificuldades são nicho das fortalezas

Sempre ouvimos o quanto é importante sair da zona de conforto, isso porque estar nesta conjuntura é garantia que obstáculos apareceram e precisaram ser superados, e durante esse processo nossa mente irá desenvolver nossos caminhos neurais e armazenar novos conhecimentos. Os resultados dessas dificuldades será criar novas habilidades que poderão ser transformadas em vantagens, por isso, é essencial se expor com controle nestas situações para possibilitar a criação de fortalezas.

Não tenha medo, de absolutamente nada

São insignificantes as situações dentro de uma empresa que você irá colocar sua vida em risco, o máximo que poderá acontecer é não dar certo. Dado que você está num ambiente seguro, você não precisa ter medo de nada para que possa arriscar em dar um próximo passo, assumir uma nova posição, atuar em outra área, ou seja, cada oportunidade sempre é um trampolim para o próximo nível, basta estar na prancha para produzir experiências e ter a chance de impulsionar sua carreira.

Exale confiança e coragem

Uma vez que o medo não faz parte do seu dia a dia, você tem a obrigação de estar sempre confiante no próximo passo, na execução de uma tarefa, assumir uma responsabilidade. Enfim, utilize todo seu histórico profissional e pessoal para balizar essa coragem e transmitir aos colegas sua confiança no sucesso de qualquer empreitada. O positivismo realista com certeza irá garantir que o caminho se torne mais leve.

Sempre esteja preparado

Não importa a situação, condição ou local, se você está previamente municiado de informações suas chances de sucesso aumentam vertiginosamente. Para as situações já conhecidas você tem a obrigação de se preparar antecipadamente, para as desconhecidas você poderá criar roteiros de aquisição de novos conhecimentos para ir aumentando suas habilidades em assuntos diversos.

Seja Pró-Realista

Resumidamente, o positivismo é a capacidade de ter domínio dos conhecimentos para tratar as situações, acoplando a isso, a realidade, podemos gerar um fator motivacional que fornecerá uma força extra para auxiliar na execução de tarefas. É mais ou menos como vislumbrar o destino antes mesmo de sair do lugar numa caminhada, se você conhecer o local que irá chegar a caminhada se torna mais fácil, pois você disparará um gatilho em sua mente que criará uma zona de segurança.

Para criar resiliência, você não pode evitá-la

Só podemos criar resistência se fortalecermos o material, neste caso o material é nossa mente e a resistência é expor-se a situação fora da nossa zona de conforto, mas só o fato de se expor- não é suficiente, é indispensável que não desistamos no caminho, porque tudo aquilo que é diferente gerará desconforto e muitas vezes tentamos nos convencer que não é mais necessário, são raras as ocasiões que devemos desistir, para isso faça sempre um excelente plano de execução para tomar ciência de todas as dificuldades que enfrentará e esteja preparado mentalmente para vencê-las.

Acredito que utilizando essas dicas, poderemos alavancar nossas carreiras em curto, médio e longo prazo. O mais importante, assim como arrumar sua cama diariamente explanado pelo Almirante McRaven, é criar consciência da sua responsabilidade sobre sua carreira, conduzi-la para a direção que deseja e trará-lá com planejamento para garantir um crescimento contínuo e eficaz.

Marcelo Goberto de Azevedo 

Arquiteto Corporativo Nuvem

//marcelogoberto.com.br

segunda-feira, 13 de setembro de 2021

Seu amigo Pato de Borracha

 

Normalmente quem trabalha com construção de alguma solução tecnológica, já se encontrou em uma situação em que a solução não parecia ser possível ou muito difícil. Entretanto, foi somente começar a falar sobre o problema para alguém, que a resolução magicamente apareceu. Ou seja, esse alguém foi uma inspiração? Não exatamente, ela simplesmente prestou o papel de ouvinte para a explanação do problema. Então, visto que esse ouvinte não teve um papel de interação ou contribuição, poderíamos meramente substituí-lo por qualquer coisa? A resposta é SIM.

O processo de explicar ou ensinar aumenta as ligações neurais em nosso cérebro, o que nos proporcionar mais acessos as informações retidas, o resultado disso é que durante a explanação passamos a fornecer mais perspectivas baseadas nas novas informações acessadas. Ou seja, faz seu cérebro alternar de faixa e funcionar de uma maneira diferente da mentalidade usual. 

O Pato de Borracha é basicamente uma técnica utilizar por muitos desenvolvedores para auxiliar esse processo de aumentar o acesso às informações, evitando a “visão de túnel", para explicar algo a outra pessoa, primeiro você precisa entendê-lo completamente. No livro O Programador Pragmático, de Andy Hunt e Dave Thomas, é descrita uma passagem em que o programador repassa linha a linha seu código explicando para o pato, e como resultado consegue identificar a falha e corrigi-la.

Pode parecer um processo ingênuo, entretanto existe um método para que o Pato de Borracha possa ativar, vamos a ele:

  1. Verbalize o contexto resumido do problema para o Pato de Borracha;

  2. Vá revisando e falando passo a passo todas as informações (código, diagramas, listas);

  3. Por fim, dê um alguns momentos ao Pato de Borracha, que a solução aparecerá em sua mente.

Claro que o último passo é só uma figura de linguagem, posso garantir que funcionará em 99% dos casos. O ato de dividir um problema em termos mais simples, passo a passo, costuma ser suficiente para tornar o problema mais solucionável. Vamos lá, fale com seu amigo Pato de Borracha.


Marcelo Goberto de Azevedo 

Arquiteto na GFT Brasil

//marcelogoberto.com.br