fevereiro 01, 2025

Um Pouco Sobre Métricas em DevOps

A evolução das métricas em DevOps reflete uma mudança fundamental na forma como medimos o sucesso no desenvolvimento de software. Ao longo do tempo, passamos de métricas puramente baseadas em atividades para um foco em resultados e impacto real.

A Evolução do Valor em Software

O conceito de valor no desenvolvimento de software passou por três eras distintas:

  • Era Tradicional: Caracterizada por projetos extensos e planejamento detalhado, com foco em cronogramas e orçamentos.
  • Era Ágil: Marcada por métodos iterativos e incrementais, priorizando velocidade e eficiência.
  • Era Moderna: Baseada em Entrega Contínua e pesquisa acadêmica rigorosa, com ênfase em resultados mensuráveis.

Framework DORA: Base para Métricas Eficazes

O framework DORA estabelece quatro métricas fundamentais:

  • Frequência de Implantação: Mede a regularidade das entregas em produção
  • Tempo de Entrega: Avalia o período entre o commit e a implantação
  • Taxa de Falha de Mudanças: Monitora a estabilidade das implementações
  • Tempo de Recuperação: Mede a velocidade de restauração após falhas

Princípios para Métricas Saudáveis

Para manter um sistema de métricas eficaz, é essencial considerar:

  • Visibilidade Controlada: As métricas devem ser compartilhadas de forma estratégica, evitando distorções comportamentais.
  • Temporalidade: Algumas métricas podem ser temporárias, focadas em iniciativas específicas, enquanto outras são permanentes.
  • Alinhamento com Objetivos: Cada métrica deve ter um propósito claro e acionável.

Impacto nos Resultados

O monitoramento eficaz das métricas DevOps proporciona:

  • Melhoria Contínua: Permite identificar áreas de aperfeiçoamento e medir o progresso das iniciativas.
  • Tomada de Decisão: Fornece dados concretos para decisões estratégicas e táticas.
  • Satisfação do Cliente: Contribui para melhor qualidade e experiência do usuário.

Conclusão

O sucesso em DevOps não se resume a “fazer mais em menos tempo”, mas sim em gerar maior impacto com menos esforço. As métricas devem refletir essa filosofia, focando em resultados que realmente importam para os usuários e para o negócio, sempre mantendo um equilíbrio entre velocidade, qualidade e valor entregue.

A Revolução da Segurança na Nuvem: Entendendo Policy-as-Code e Compliance-as-Code

No cenário atual da tecnologia, onde aplicações e serviços web são fundamentais para qualquer organização, a segurança e conformidade tornaram-se aspectos cruciais que vão muito além do desenvolvimento inicial. Com a crescente complexidade das regulamentações internacionais, como a Diretiva NIS2 da União Europeia e o DORA (Digital Operational Resilience Act), as empresas enfrentam desafios cada vez maiores para manter seus sistemas seguros e em conformidade.

A complexidade das regras de segurança e conformidade não se resume apenas à sua implementação, mas também à sua natureza dinâmica e em constante evolução. Por exemplo, enquanto a União Europeia estabelece requisitos específicos sobre relatórios de incidentes e responsabilidade criminal, os Estados Unidos, através da SEC (Security and Equities Commission), concentra-se na materialidade potencial das violações de segurança.

Uma das abordagens mais inovadoras para enfrentar esses desafios é a implementação programática de controles através do conceito “as-code”. Assim como o Infrastructure-as-Code (IaC) revolucionou a forma como configuramos servidores e instâncias na nuvem, o Policy-as-Code (PaC) e o Compliance-as-Code (CaC) estão transformando a maneira como gerenciamos segurança e conformidade.

Implementação Prática

Ferramentas e Recursos

O mercado oferece diversas ferramentas que facilitam a implementação dessas práticas. Sistemas como Chef, Puppet, Ansible e Terraform são excelentes para implantações internas, enquanto AWS CloudFormation e Microsoft Azure Resource Manager brilham em ambientes de nuvem específicos. Além disso, recursos open-source como os benchmarks do Center for Internet Security (CIS) e os guias DISA STIGs fornecem bases sólidas para fortalecer a infraestrutura desde o início.

Automatização e Integração

O Open Policy Agent (OPA) emerge como uma solução poderosa, permitindo que equipes de infraestrutura controlem cargas de trabalho através de políticas em código Rego. A integração com manifestos YAML e JSON no Kubernetes possibilita a aplicação uniforme de regras em toda a infraestrutura.

O Futuro da Segurança

A demanda por soluções eficazes de PaC e CaC continuará crescendo à medida que mais aplicações migram para a nuvem. A codificação de processos de segurança e conformidade como padrão não apenas simplifica o trabalho, mas também empodera os responsáveis pela construção de aplicações e infraestruturas.

Infraestrutura como Código: Desafios e Perspectivas

O Estado Atual do IaC

O cenário da Infraestrutura como Código (IaC) em 2024 apresenta uma realidade complexa e desafiadora. Apesar de sua promessa revolucionária, muitas organizações ainda enfrentam obstáculos significativos na implementação efetiva dessa abordagem. A automação da infraestrutura, embora teoricamente promissora, continua sendo um processo que demanda considerável esforço manual e apresenta complexidades inesperadas.

A fragmentação das ferramentas e a falta de padronização são aspectos que continuam prejudicando a adoção em larga escala do IaC. Diferentes equipes frequentemente utilizam diferentes ferramentas e abordagens, criando silos tecnológicos que dificultam a colaboração e a manutenção dos sistemas.

Desafios Técnicos e Organizacionais

Complexidade das Ferramentas

O mercado atual oferece uma variedade de ferramentas de IaC, cada uma com suas particularidades e curvas de aprendizado específicas. Terraform, CloudFormation e Pulumi são apenas algumas das opções disponíveis, mas a integração entre elas nem sempre é suave ou intuitiva. A necessidade de dominar múltiplas ferramentas e linguagens pode sobrecarregar as equipes de desenvolvimento.

Gestão de Estados

Um dos aspectos mais desafiadores do IaC é o gerenciamento de estados. A manutenção da consistência entre o estado desejado e o estado real da infraestrutura requer atenção constante e pode ser fonte de problemas significativos quando não adequadamente gerenciada.

Boas Práticas e Soluções

A implementação bem-sucedida de IaC requer uma abordagem estruturada e metodológica. É fundamental estabelecer práticas consistentes de versionamento de código, implementar pipelines de CI/CD robustos e manter uma documentação atualizada e acessível.

A adoção de padrões de projeto e a criação de módulos reutilizáveis podem ajudar a reduzir a complexidade e melhorar a manutenibilidade do código de infraestrutura. A padronização de práticas dentro da organização também contribui para uma melhor colaboração entre equipes.

O Futuro do IaC

Apesar dos desafios atuais, o futuro do IaC parece promissor. A evolução das ferramentas e a crescente maturidade das práticas de DevOps indicam um caminho de maior integração e simplicidade. A automatização continuará sendo um elemento crucial na gestão de infraestrutura moderna, mas é necessário um esforço conjunto da comunidade para superar as limitações atuais.

Conclusão

A Infraestrutura como Código, embora ainda enfrente desafios significativos em 2024, continua sendo uma abordagem fundamental para a modernização da infraestrutura de TI. O sucesso na sua implementação depende de uma combinação de ferramentas adequadas, práticas bem estabelecidas e uma cultura organizacional que promova a colaboração e a inovação contínua.

março 04, 2020

Instalando e configurando o CNTLM no Windows

Por várias vezes houve a necessidade de uma aplicação precisar de acesso à Internet em nosso ambiente de desenvolvimento, porém, por não ser capaz de se autenticar em nosso servidor proxy, acabamos por não poder utilizar a mesma em todo seu potencial.

O CNTLM vem para resolver isso. Ele funciona como um proxy local que faz o trabalho de autenticação no proxy de desenvolvimento. Aqui você verá o passo-a-passo para sua instalação e configuração em sua estação de trabalho.

Você pode baixar a versão 0.92.3 para Windows neste link, e neste outro poderá ver todas as outras versões, caso queira. Baixe e instale em sua estação de trabalho.

Após instalar, vá até o diretório em que instalou o CNTLM (se usou as configurações padrão, o diretório de instalação deverá ser “C:\Program Files (x86)\Cntlm”) e edite o arquivo “cntlm.ini”. As propriedades que deve se atentar neste arquivo são:

  • Username: seu nome de usuário na rede corporativa
  • Domain: nome de domínio do seu usuário
  • PassNTLMv2: credencial (senha) que será usada para fazer a autenticação. Ela é gerada por uma ferramenta que acompanha o CNTLM. Veremos como gerar essa credencial mais adiante.
  • Proxy: endereço e porta do proxy corporativo
  • NoProxy: lista de endereços / domínios que as requisições não devem passar por este proxy
  • Listen: IP e porta local que o serviço CNTLM deve usar para atender as requisições
  • Gateway: especifica se o CNTLM deve atender requisições de outros computadores que não o que ele está instalado (cuidado para não deixar o proxy com livre acesso)
  • Allow: IPs ou máscaras de rede permitidas à acessar seu serviço CNTLM
  • Deny: IPs ou máscaras de rede proibidas de acessar seu serviço CNTLM
  • Header: user agent a ser utilizado nas requisições que usarem o CNTLM

Todos os campos acima tem valores que devem ser informados diretamente por você, menos o campo PassNTLMv2. Este deve ser gerado através de uma chamada parametrizada ao próprio CNTLM. Para isso, você precisa abrir um prompt de comando no diretório de instalação do CNTLM e entrar com o comando abaixo:

cntlm -H -d <dominio> -u <usuario>

Onde:
- dominio: nome de domínio do seu usuário
- usuario: seu nome de usuário na rede corporativa

A execução deste comando vai lhe pedir que digite sua senha e irá retornar uma resultado parecido com este:

PassLM FA7DF47717E70894072FCB3CE22C6972PassNT 
1FD530CC1DC2D2FE7CEF002B231388FCPassNTLMv2 
E9B2B3437DC6DF4558A145E6855A22A7 # Only for user ‘usuario’, domain ‘dominio.com.br’

Copie o valor do resultado da linha “PassNTLMv2” e insira ele no campo de mesmo nome no arquivo “cntlm.ini”. Este procedimento precisará ser realizado todas as vezes que houver alteração de sua senha.

Exemplo 01: Vamos simular uma configuração para um usuário fictício de nome José da Silva. O nome de usuário dele será “jsilva”, o endereço do proxy corporativo é “proxy.empresa.com.br” e ele responde na porta 80. Queremos que o CNTLM responda somente a requisições locais e que ignore todas as requisições pertencentes à subrede 172.16.*. Vamos ver como ficaria o arquivo de configuração.

  • Username jsilva
  • Domain scopus.com.br
  • PassNTLMv2 (gerar usando o procedimento citado anteriormente e inserir aqui)
  • Proxy iwacorp.scopus.com.br:80
  • NoProxy 172.16.*
  • Listen 127.0.0.1:3128
  • Gateway no
  • Allow 127.0.0.1
  • Header User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)

Pronto. Agora é só salvar o arquivo e reiniciar o serviço “Cntlm Authentication Proxy” nos serviços do Windows. Você precisa dizer para sua aplicação que ela poderá usar o proxy local nos IPs 127.0.0.1 e 192.168.*, porta 3128.

ATENÇÃO: O Serviço do CNTLM no Windows inicia de forma automática. Como ele precisa se autenticar no proxy corporativo para poder atuar como proxy local, ele usará suas credenciais para isso. É muito importante manter essas credenciais atualizadas no CNTLM para evitar que sua conta de usuário seja bloqueada por tentativas de autenticação com senha expirada. Fique atento.

maio 13, 2013

IFTTT: O que é e como ele vai se tornar seu grande amigo


IFTTT vem de "If This Then That" (em português, "Se Isso Então Aquilo"). E apesar de seu nome simples e que não diz muita coisa, é uma ferramenta muito interessante que provavelmente te ajudará a automatizar algumas das tarefas mais maçantes de sua vida.

maio 06, 2013

maio 01, 2013

Opções gratuitas para leitura de PDFs


Se você é como eu, que não teve muitas experiências felizes com o leitor de PDF da Adobe, o Adobe Reader, então essas dicas serão valiosas par você! Separei algumas opções alternativas gratuitas e interessantes para a visualização de PDFs no Windows, substituindo seu tradicional leitor.