Agile DevOps: Desenvolva um painel de DevOps

Exiba informações em tempo real para equipes multifuncionais

E se você pudesse obter feedback instantâneo sobre o funcionamento do seu sistema de software a cada mudança aplicada — não somente ao aplicativo de software, mas também ao banco de dados, à infraestrutura e à configuração? Nesta parte final do artigo sobre Agile DevOps Paul Duvall, especialista em DevOps, ajuda a configurar um painel de DevOps usando a ferramenta de software livre CanaryBoard. O painel revela o estado de todo o sistema de software sob desenvolvimento — do check-in à produção — com uma visão rápida.

Paul Duvall, CTO, Stelligent

Paul DuvallPaul Duvall é CTO da Stelligent. Conferencista em muitas dos maiores eventos na área de software, desempenhou praticamente todas as funções em projetos de software: desenvolvedor, gerente de projeto, arquiteto e testador. É o autor principal de Continuous Integration: Improving Software Quality and Reducing Risk (Addison-Wesley, 2007) e ganhador do Jolt Award 2008. Também é autor de Startup@Cloud e DevOps in the Cloud LiveLessons (Pearson Education, junho de 2012). Também participou da redação de vários outros livros. Paul escreveu a série com 20 artigos Automation for the people no developerWorks. Gosta de oferecer aos usuários softwares de alta qualidade mais rapidamente e com maior frequência por meio da entrega contínua e da nuvem. Leia o blog dele em Stelligent.com



01/Nov/2013

Sobre esta Série

Os desenvolvedores podem aprender muito com as operações e vice-versa. Esta série de artigos se dedica a explorar os usos práticos da aplicação da mentalidade de operações ao desenvolvimento e vice-versa — e de considerar os produtos de software como entidades holísticas que podem ser entregues com agilidade e frequência inéditas.

Nesta série, até agora, você aprendeu:

E como os aspectos organizacionais do DevOps são tão importantes quanto os aspectos técnicos, também prescrevi formas de quebrar os silos do desenvolvimento e das operações tradicionais para aprimorar o trabalho em equipe e a comunicação.

Quando todo o sistema de software está descrito em código e é colocado em um repositório de controle de versões, as mudanças são frequentes, gerando a necessidade crucial de feedback preciso em tempo real para todas as pessoas da equipe ou da organização. Neste último artigo da série Agile DevOps , você verá como pode unir todo esse feedback e apresentá-lo em uma forma fácil de "digerir", por meio de um painel de DevOps. Todos os membros de equipes multifuncionais da sua organização podem usar o painel para ver o status do sistema sob desenvolvimento e em produção. Depois disso, eles podem tomar decisões informadas baseadas na realidade — e não nas percepções dos membros da equipe que são mais enfáticos.

Apresentando o CanaryBoard

O CanaryBoard é uma ferramenta de software livre modelada com base na ferramenta de software livre Stashboard (que, por sua vez, se baseia em ferramentas de grandes provedores de nuvens). O objetivo do CanaryBoard é fornecer um log do status dos aplicativos ou serviços por projeto, mas é possível customizá-lo para mostrar o que você quiser. Além disso, é possível executar o CanaryBoard usando plataformas de software livre.

A Figura 1 mostra um painel que eu customizei para mostrar o status de alguns indicadores de DevOps (ambiente, desenvolvimento, teste e implementação) para um projeto. Ao executar scripts quando cada check-in de código ocorre, posso atualizar o painel automaticamente para fornecer um status em tempo real de cada indicador.

Figura 1. Status do painel de DevOps usando o CanaryBoard

É possível customizar o painel do CanaryBoard para mostrar tudo o que for importante para a sua equipe ou organização. Também é possível criar diversos painéis que refletem diversos níveis dentro da organização. Há várias outras plataformas de painel disponíveis que se integram a outras ferramentas — e que talvez você já esteja usando; algumas plataformas de painel são grátis e software livre, e outras requerem taxas mensais. Como desenvolvedor, gosto de ter controle total não só da customização, mas também das plataformas em que o software pode executar. Por isso, a minha empresa criou o CanaryBoard.


Configurando o painel de DevOps

Opções, opções

É possível executar o CanaryBoard em praticamente qualquer sistema operacional e usar praticamente qualquer linguagem de programação para modificar os dados enviados ao serviço por meio da API de REST. Este artigo usa:

  • Ruby para acessar a API RESTful do CanaryBoard
  • Linux para hospedar o CanaryBoard
  • A mesma instância do Linux para executar os scripts do CanaryBoard

Embora os exemplos sejam específicos para esta coleção de ferramentas, é possível alterar ligeiramente as instruções para suprir as necessidades do seu provedor de infraestrutura, sistema operacional, sistema de empacotamento e linguagem de programação.

Para usar a ferramenta CanaryBoard em uma instância do Linux® , ative e lance uma instância de computação, instale os pacotes necessários, faça download e configure arquivos e execute o CanaryBoard.

Etapa 1: faça o download do servidor e ative-o

Faça o download do servidor Ubuntu 12.04 LTS (consulte Recursos para obter um link para a página de download). Em seguida, ative a instância do Ubuntu.

Etapa 2: instale pacotes

ssh no servidor e execute os comandos descritos na seção Installing Rails on Ubuntu 12.04 LTS do "leia-me" do CanaryBoard em https://github.com/stelligent/canaryboard/ (consulte Recursos). Executando os comandos, você irá instalar todos os pacotes necessários, incluindo o Ruby Version Manager (RVM), Ruby, Git e Rails. (Se você estiver usando um sistema de empacotamento que não seja o apt-get— , tais como yum ou rpm— , modifique os comandos conforme o necessário.)

Agora que você instalou todos os pacotes, está pronto para instalar, configurar e executar o CanaryBoard.

Etapa 3: instale, configure e execute o CanaryBoard

O CanaryBoard é um aplicativo em Rails e uma API RESTful desenvolvida pela Stelligent e hospedada no GitHub. Para começar a usar o aplicativo, é necessário seguir algumas etapas. As etapas envolvem obter a cópia mais recente a partir do repositório Git, instalar os gems de Ruby de que o CanaryBoard precisa, configurar e semear o banco de dados, executar testes automatizados e iniciar o servidor do Rails. Você encontra as etapas exatas a seguir na seção Installing CanaryBoard do leia-me do CanaryBoard (consulte Recursos).

Ative o website do aplicativo CanaryBoard digitando http://localhost:3000 no seu navegador. (Se necessário, mude localhost para o seu local de servidor.) Certifique-se de que a porta 3000 esteja disponível.

Você deve ver um quadro de status vazio, como o da Figura 2:

Figura 2. Painel em branco pronto para ser configurado

Clique no link Log in para exibir uma tela de login semelhante à da Figura 3:

Figura 3. Tela de login do CanaryBoard

Insira o nome de usuário padrão (admin) e a senha padrão (admin). Depois de efetuar login, clique no link Profile e, em seguida, em Edit para mudar a senha padrão.

Para executar o código de exemplo deste artigo, é necessário obter a chave da API que é configurada como parte da semeadura de dados. Volte para o seu perfil (http://localhost:3000/profile) e copie o valor da chave de API. A Figura 4 mostra um exemplo da tela de perfil com uma chave de API:

Figura 4. Perfil do usuário usado para obter a chave da API

Atualizando programaticamente o painel de DevOps

Você irá usar dois scripts de Ruby customizáveis — set-indicators.rb e update-indicators.rb — para criar os indicadores do painel por meio da API de REST do CanaryBoard.

Comece pelo prompt de comandos do servidor Linux e crie um novo arquivo do Ruby chamado set-indicators.rb. Acesse o arquivo set-indicators.rb que está disponível por meio de um hyperlink na seção Using CanaryBoard do leia-me do CanaryBoard (consulte Recursos) e cole o conteúdo no arquivo set-indicators.rb que você acabou de criar. Se não estiver executando o seu servidor no localhost, substitua a parte de localhost do valor da variável API_URL pelo local do seu servidor. Mude o valor de API_KEY de changeme para o valor obtido a partir da página do perfil do CanaryBoard. Você irá executar o script set-indicators.rb mais tarde.

Scripts versáteis

Tenha em mente que — com modificações — é possível usar os scripts do CanaryBoard em praticamente qualquer outra plataforma que possa executar o Ruby on Rails.

Agora, a partir da linha de comando do servidor do Linux, crie um novo arquivo do Ruby chamado update-indicators.rb. Acesse o arquivo update-indicators.rb que está disponível por meio de um hyperlink na seção Using CanaryBoard do leia-me do CanaryBoard (consulte Recursos) e cole o conteúdo no arquivo update-indicators.rb que você acabou de criar. Se não estiver executando o seu servidor no localhost, substitua a parte de localhost do valor da variável API_URL pelo local do seu servidor. Mude o valor de API_KEY de changeme para o valor obtido a partir da página do perfil do CanaryBoard.

Execute os programas Ruby usando estes comandos (que pressupõem que os arquivos set-indicators.rb eupdate-indicators.rb estão no diretório inicial da sua instância):

sudo ruby ~/set-indicators.rb
sudo ruby ~/update-indicators.rb

No seu navegador, acesse https://localhost:3000/ (ou equivalente) para ver os resultados dos serviços e eventos que você criou. Quando o código de update-indicators.rb é executado, ele atualiza todos os eventos dos serviços listados no script. Clicando em qualquer indicador no painel, é possível ver um histórico desses eventos. Se você deseja que esse script execute em todo check-in de código, é possível chamá-lo a partir do servidor de integração contínua ou executá-lo por meio do cron ou outro sistema de planejamento. A Figura 5 mostra exemplos de resultados do serviço Deploy:

Figura 5. Log de evento referente ao indicador do serviço Deploy

Os scripts set-indicators.rb e update-indicators.rb são codificados permanentemente para serviços específicos, mas é possível tornar todo o código dinâmico.


Conclusão

Participe

A comunidade de transformação Agile do developerWorks fornece notícias, discussões e treinamento para ajudar você e sua organização a desenvolver um alicerce baseado em princípios de agile.

Neste artigo, o último da série Agile DevOps , você aprendeu a usar a ferramenta de software livre CanaryBoard para fornecer feedback contínuo a todos os membros das equipes de desenvolvimento e operações. Muitas ferramentas de monitoramento de sistemas e aplicativos fornecem uma grande quantidade de informações que podem ser incorporadas aos painéis de DevOps para ajudar os engenheiros e outros profissionais a tomar decisões mais informadas.

Compartilhar as minhas experiências com vocês ao longo dos últimos meses foi uma grande aventura. Nesta série, meu objetivo é mostrar como e por que aprender as melhores abordagens e práticas de equipes e culturas que tradicionalmente são totalmente diferentes: desenvolvimento e operações. Eu incentivo a considerar o software como sistemas holísticos e integrados — não como algo que é "jogado por cima do muro" para outra equipe da organização.

Recursos

Aprender

Obter produtos e tecnologias

  • CanaryBoard: o CanaryBoard é uma ferramenta de software livre que exibe o status de um sistema de software por projeto/serviço e data.
  • Ubuntu: faça o download da versão 12.04.2 LTS do Ubuntu.
  • IBM Tivoli Provisioning Manager: o Tivoli® Provisioning Manager possibilita uma infraestrutura dinâmica ao automatizar o gerenciamento de servidores físicos, servidores virtuais, software, armazenamento e redes.
  • IBM Tivoli System Automation for Multiplatforms: o Tivoli System Automation for Multiplatforms fornece alta disponibilidade e automação para serviços de TI e aplicativos corporativos.
  • Avalie os produtos IBM do jeito que for melhor para você: faça o download de uma avaliação de produto, experimente um produto online, use um produto em um ambiente de nuvem ou passe algumas horas no Sandbox da SOA aprendendo a implementar a Arquitetura Orientada a Serviços eficientemente.

Discutir

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Software livre
ArticleID=951248
ArticleTitle=Agile DevOps: Desenvolva um painel de DevOps
publish-date=11012013