TDD para código de infraestrutura? Acho que não…

Standard

Após iniciar um texto sobre a importância de testes automatizados para código de definição de infraestrutura, refleti sobre o uso de TDD nesses casos e cheguei a uma conclusão um pouco polêmica.

Queria deixar claro que esse texto é propositivo e aberto a mudança de opiniões com base nas interações. Meu objetivo é iniciar esse debate, apresentado as minhas conclusões sobre esse assunto e assim  possamos juntos concluir algo coletivamente sobre isso.

Antes de pular para conclusão, vamos primeira contextualizar o que é TDD. De acordo com o nosso “nerd alfa” Martin Fowler:

“Test-Driven Development (TDD) é uma técnica para construção de software que o processo de desenvolvimento através da escrita de testes.”

De acordo com esse artigo, é uma prática que força o desenvolvedor a pensar sobre seu código antes de ele escrever ele e que TDD é muito mais sobre design do que teste. (Dica do Luis, no comentário).

Continue lendo

Precisamos falar sobre teste automatizado de infraestrutura

Standard

Acredito que seja notável para maioria dos profissionais de TI que estamos passando por uma grande revolução em nossa área. A automação de infraestrutura é uma realidade e não gerenciamos mais serviços e servidores da mesma forma que fazíamos há 10 anos atrás.

Não é mais tolerável ter o prazo de uma semana para entregar um novo servidor para equipe de desenvolvimento, as solicitações normalmente são para o mesmo dia, isso quando os clientes já não conseguem criar seus próprios hosts sem necessidade de abertura de ticket para os sysadmins.

Continue lendo

Escrevendo um livro digital como entrega contínua parte 2

Standard

Nesse artigo pretendo continuar a compartilhar um pouco da minha experiência de escrever um livro digital. Esse é o segundo artigo da série. O primeiro segue aqui.

Escolhendo a plataforma

Agora que já sabemos qual nosso assunto, foco e público alvo, só nos basta começar a escrever. E nesse momento você deve estar se perguntando qual melhor forma de fazer isso.

download-3

Eu não fiz uma pesquisa muito rebuscada sobre isso e acabei usando o primeiro que me foi apresentado. O leanpub é uma plataforma fantástica! Ela tem tudo que eu preciso e talvez você devesse dar uma chance a ela. Segue abaixo as coisas que acho bem relevante nela:

Continue lendo

Uma analise do texto “Docker in Production: A History of Failure”

Standard

Um texto (em inglês apenas) foi lançado na internet e isso causou um certo alvoroço na comunidade, pois já pelo título é bem impactante “Docker em produção: Uma história de fracasso”.

Pelo título eu imaginei que seria uma extensa e detalhada explicação sobre o que deu errado para eles, e apresentar os caminhos que eles seguiram para contornar, assim como demonstrar em qual momento foi impossível continuar.

Pra contextualizar, quero deixar claro que fui ler o texto realmente pensando em obter dados para me ajudar a trabalhar em projetos futuros. Coisas que eu poderia aprender previamente e ver se tinha soluções alternativas, mas infelizmente não foi isso que vi, ao menos não na maioria do texto.

Pra resumir bem, o texto tem um tom bem irônico e é claramente o desabafo de uma equipe frustada com o uso da tecnologia, que na minha opinião foi usada de forma equivocada e até mesmo sem uma pesquisa mais profunda sobre as possíveis soluções e contramedidas.

Pra organizar a minha argumentação, vou separar elas por tópicos do texto.

Continue lendo

Escrevendo um livro digital como entrega contínua parte 1

Standard

Objetivo

A ideia dessa série de artigos é compartilhar a minha experiência de escrever um livro digital sem esforço sobre-humano, ou seja, você não se sentirá necessariamente pressionado a depender de um resultado financeiro do seu livro, pois a ideia é que ele não impacte muito nas suas horas livres.

download-2

No meu caso a falta de tempo foi fruto de uma má distribuição e priorização das minhas atividades, e depois que organizei previamente minhas tarefas diárias e assim eu consegui realizar mais atividades no fim do dia. Eu não vou aprofundar nesse assunto, pois já existem diversas técnicas de como fazer isso disponível na internet.

Um outro assunto que pretendo falar é sobre a entrega contínua do material, pois eu entregava um livro atualizado a cada artigo produzido e assim ter um rápido retorno de críticas sobre o produto.

Com esse rápido retorno é possível inclusive você mudar a estrutura do conteúdo apresentado. Exemplo: Caso seu público já domine o conteúdo que você está construindo, você pode aumentar o nível nos próximos artigos.

Continue lendo

Lançamento da versão estável do livro “Docker Para Desenvolvedores”

Standard

É com grande prazer que anuncio a versão estável, também conhecida como 1.0, do livro “Docker para Desenvolvedores”. Para baixar acesse esse link:

https://leanpub.com/dockerparadesenvolvedores

Entenda como versão estável a reunião do conteúdo mínimo para entendimento do funcionamento básico do Docker para um desenvolvedor de código que nunca interagiu com essa tecnologia de virtualização usando container. Essa versão trata também sobre as melhores práticas para construção de imagens docker, através da utilização de exemplos e evolução de uma base de código simples usada para ilustrar cada boa prática.

Continue lendo

Dockerizando aplicações – Processos de administração

Standard

Seguindo a lista do modelo 12factor, temos “Processos de administração” como décima segunda e ultima boa prática desse modelo.

admin

Toda aplicação demanda administração, isso quer dizer que uma vez implantada é possível que ela precise receber determinados comandos para corrigir possíveis problemas ou simplesmente mudar de comportamento. Como exemplos temos migrações de banco de dados, execução de scripts diversos como backup, e também execução de um console para inspeção do serviço. Continue lendo

Dockerizando aplicações – Paridade entre desenv/produção

Standard

Seguindo a lista do modelo 12factor, temos “Paridade entre desenvolvimento/produção” como décima boa prática.

Untitled Diagram (3)

Infelizmente na maioria dos ambientes de trabalho com software, existe um grande abismo entre o desenvolvimento e a produção. Esse grande buraco não é um mero acaso ou falta de sorte. Ele existe por conta de algumas diferenças entre as equipes de desenvolvimento e infraestrutura. De acordo com o 12factor elas manifestam-se nos seguintes âmbitos:

Continue lendo

Dockerizando aplicações – Descartabilidade

Standard

Seguindo a lista do modelo 12factor, temos “Descartabilidade” como nona boa prática.

Quando falamos de aplicações web, espera-se que mais de um processo atenda a todo tráfego que é requisitado para esse serviço, porém tão importante quanto a habilidade de iniciar novos processos, é a capacidade de que um processo defeituoso termine na mesma velocidade que iniciou, pois um processo que demora para finalizar pode comprometer toda solução, uma vez que ela pode ainda estar atendemos requisições de forma defeituosa.

descartabilidade

Em resumo podemos dizer que aplicações web deveriam ser capazes de remover rapidamente processos defeituosos.

Continue lendo