TDC 2015 (The Developers Conference)

Nesse ano participamos do TDC 2015 (The Developers Conference), e fomos representados pelo nosso Analista de Infraestrutura Daniel André da Silva e pelo nosso Gerente de Produto Jean Luchtenberg


18/06/2015
Nesse ano participamos do TDC 2015 (The Developers Conference), e fomos representados pelo nosso Analista de Infraestrutura Daniel André da Silva e pelo nosso Gerente de Produto Jean Luchtenberg. O evento possui patrocínio de diversas empresas como Oracle, Microsoft, IBM, Locaweb, Google, Amazon, Intel, entre outros, e aborda diversas áreas ligadas ao desenvolvimento de um software. Agora vamos ao que interessa e ver o que o Dani conta desse grande evento?  thedeconfEventos como a TDC ajudam e muito a abrir os nossos horizontes, visões e nos levam a ver possibilidades antes não tão claras. Participei do evento e uma coisa que senti é que mais pessoas deveriam estar lá, mesmo você fazendo a trilha de DevOps, Web, Testes, etc... todos acabam levando um pouco de tecnologia, gestão, e acreditando em soluções para aquilo que as vezes é impossível de se resolver. Você talvez já se perguntou, “eu não sou desenvolvedor, porque eu iria na conferência de desenvolvedores?”, eu lhe respondo o seguinte: A TDC não é só para desenvolvedores, a conferência foi criada para quem está ligado ao desenvolvimento de software. Muitos assuntos abordados na TheDevConf podem ser utilizados na gestão de um software, o aprimoramento do conhecimento das fases de desenvolvimento de um software é algo que não se aplica só ao engenheiro de software, ao desenvolvedor ou a parte técnica, mas sim também para a parte business, o processo de entrega de um software, a noção sobre qualidade, novas tecnologias que poderiam ser utilizados e estar a par do que há de mais atual no meio Dev. Entre tudo isso ainda havia uma trilha de análise de negócios que chegou a esgotar e tem se ouvido muito bem. Como participei da trilha DevOps vou citar o que encontrei de importante. No inicio foi abordado o tema DevOps, sobre o que é essa nova cultura, e como um DevOps deve se ater em um ambiente de desenvolvimento. Para quem não sabe, esse termo tende a representar um novo perfil na área de tecnologia, uma junção de Dev(Development) e Ops(Operations). Um DevOps tem como desafio: - Esquematizar/Automatizar processos para que as entregas de versões funcionais de um software sejam feitas de forma contínua proporcionando aos clientes correções e funcionalidades muito mais rápidas. O que esperaria meses para ser liberado em um release, acaba saindo em semanas. - Aumentar a qualidade dos testes automatizando-os de diferentes formas a serem executados  repetitivas vezes durante o dia para que seja identificado erros com mais frequência e antecedência. Presenciei em uma palestra que através de um plugin para a ferramenta Jenkins, eram realizados fluxos de testes em paralelo, transformando os testes em procedimentos mais completos e períodos de tempo menores de forma contínua. É importante ressaltar que a diminuição na necessidade de ciclos de testes é positiva no desenvolvimento de um sistema. Porém a repetição do mesmo traz agilidade na identificação de erros/problemas. - Acabar com aquele famoso ditado: “Na minha máquina funciona”  que hoje em dia se houve muito no desenvolvimento de software devido aos diferentes ambientes em que cada aplicação reside. Uma hora falta uma biblioteca, em outra possui uma dependência com versão incompatível e por aí vai. - Diminuir tempo de execução de diversas tarefas executadas na parte de operações. Às vezes cuidar de diversos ambientes causa muito trabalho, hoje em dia grandes empresas possuem uma enorme quantidade de servidores que fornecem serviços. Já pensou caso seja necessário efetuar uma alteração de senha de todos os servidores? Ou então ter que instalar um novo serviço em todas elas, alterar uma configuração de segurança em um servidor web? Vou citar um exemplo mais simples: Alterar a senha do usuário Administrador de 20 servidores. Digamos que leve 5 minutos cada alteração de senha. No final das contas você acaba gastando 100 minutos para realizar essa atividade repetitiva e cansativa. Isso porque foi utilizado um exemplo bem simples. A automatização desse procedimento poderia ser executada em 15 minutos utilizando ferramentas como Puppet, Chef, Ansible, Salt e entre outras que fornece ao DevOps melhor controle e administração de uma rede. Provisionar ambientes padronizados de desenvolvimento, rapidamente. Independente de hardware, sistema operacional, ou softwares que residem no computador de um desenvolvedor, evitando por exemplo que uma instalação de uma versão do Java afete outro sistema que utiliza outra versão. Esse provisionamento tem como objetivo manter ambientes exatamente iguais para todos. No momento você pode estar pensando que isso é praticamente impossível de se fazer, ou já entendeu e está pensando em virtualização. Porém a virtualização de  um hardware causa perda de desempenho, utilização de recursos e outros mais pontos negativos. Mas então como é que isso pode ser feito? Esse é o motivo pelo qual uma nova ferramenta chamada Docker tem ganhado tanto destaque, investimento e apoio de empresas gigantes ao redor do mundo como Amazon, Microsoft, VMWare e IBM. De forma geral o Docker possibilita a criação de um novo sistema operacional isolado, permitindo que você configure um ambiente apenas para determinada aplicação. Você terá suas variáveis do sistema, programas instalados sem depender ou afetar o que já possui em sua máquina. O melhor de tudo é que ele não virtualiza/emula como uma máquina virtual. Tudo se trata de um contêiner que executa uma aplicação, utilizando o próprio hardware. Geralmente as imagens dos sistemas são muito leves, sendo de fácil distribuição e uso. Outro tema muito interessante foi sobre ROI (Return on Investment) ligado a área de DevOps e também a parte de automação de testes. Isto é algo geralmente definido para reduzir custos com testes, diminuir as chances de erros em produção, dando uma maior garantia na liberação de versões de um sistema. Que requer um grande investimento também, porém devemos levar sempre em conta os benefícios que testes automatizados trazem para uma empresa. ROI de DevOps chega mais próximo de implantação e testes automatizados. Para definir o ROI pode-se fazer uso das seguintes métricas: Tempo de criação do ambiente de produção. Redução de atrasos ao meio. Rapidez de entrega de aplicações com garantia de qualidade. Redução de defeitos de produção. Após essa apresentação, foi abordado sobre o Docker Compose que através de um arquivo YML é possível provisionar um ambiente completo composto por banco de dados, aplicação e outros complementos dependentes um do outro, de forma leve e rápida utilizando containers. Outros assuntos atribuídos à trilha DevOps complementaram um pouco mais sobre desenvolvimento de software, como uma palestra sobre testes. Feature Toggles, técnica que fornece um controle a mais na liberação de um software, porém que pode causar muitos problemas se não for bem definido/controlado. Ansible que é uma ferramenta de Gerenciamento de sistemas e infraestrutura de TI, assim como puppet e chef, mas muito mais simples. Acompanhamos também uma demonstração sobre todas as ferramentas integradas de desenvolvimento que compõem o Visual Studio Online. E também sobre Boxen e Kitchen Plan que são ferramentas para automação do gerenciamento e configuração focados no MacOSX. Perto do final teve outra apresentação, com o tema “Piratas do DevOps: Navegando em Águas Misteriosas”, que tratou bastante sobre como ser um Pirata (Um profissional que se arrisca e vai atrás de suas ideologias) e as dificuldades que as vezes enfrenta. Essa palestra fechou com chave de ouro, todas as dicas sobre como ser um pirata trouxe para todos uma visão sobre qual o perfil que um DevOps deve exercer para que as ideias ganhem foco e não sejam deixadas para trás. No final contamos com a presença de um palestrante que trouxe informações relacionadas ao DevOps e ferramentas que podem ser utilizadas neste meio, entre outras coisas muito úteis, até para quem quer ter um pouco de contato. Sugeriram o uso de uma ferramenta de automação de Gerenciamento e Configuração de TI, o Ubuntu Juju, que é fácil, de código aberto e gratuito. Esse foi um pouquinho do que eu consegui absorver da trilha DevOps, espero que tenham gostado!
“O pessimista vê dificuldade em cada oportunidade; o otimista vê oportunidade em cada dificuldade”. Winston Churchill

Inscreva-se para receber novidades