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

Dockerizando aplicações – Concorrência

Standard

Seguindo a lista do modelo 12factor, temos “Concorrência” como oitava boa prática.

Durante o processo de desenvolvimento de uma aplicação é difícil imaginar o volume de requisição que ela terá no momento que for colocada em produção. Por outro lado, ter um serviço que suporte grandes volumes de uso é algo esperado nas soluções modernas, pois nada é mais frustante do que solicitar acesso a uma aplicação e ela não estar disponível. Demonstra falta de cuidado e de profissionalismo na maioria dos casos.

Quando uma aplicação é colocada em produção normalmente ela é dimensionada para uma determinada carga esperada, porém é importante que o serviço esteja pronto para escalar, ou seja, a solução deve ser capaz de iniciar novos processo da mesma aplicação caso necessário, sem que isso afete negativamente o produto. A figura abaixo apresenta um gráfico de escalabilidade de serviços.

Untitled Diagram (2)

Continue lendo

Dockerizando aplicações – Vínculo de portas

Standard

Seguindo a lista do modelo 12factor, temos “Vínculos de portas” como sétima boa prática.

É comum encontrar aplicações que são executadas dentro de contêineres de servidores web, tal como Tomcat, ou Jboss, por exemplo. Normalmente essas aplicações são implantadas dentro desses serviços para que possam ser acessadas pelos usuários externamente.

Ego_network

Continue lendo