O que o System Center tem a ver com TFS e ALM?

Quando se fala de ALM na Plataforma Microsoft, geralmente o primeiro que vem à cabeça é “TFS”. Mas ultimamente há um outro nome que vem surgindo com uma frequência cada vez maior nas rodas de discussão sobre ALM: System Center.

Mas afinal, o que é que o tal System Center tem a ver com ALM?

O escopo de ALM é maior do que você imagina

Para muitas pessoas, ALM nada mais é que uma ferramenta de controle de versão combinada com um issue tracker e um servidor de automação de build. Francamente, essa percepção limitada não chega a ser exatamente uma surpresa, se considerarmos que:

  1. Os fabricantes de ferramentas (Microsoft, IBM, HP e outros) na maioria das vezes falam mais da ferramenta do que do problema que elas se propõem a resolver. Para muitas pessoas, TFS é a mesma coisa que ALM;
  2. Até há pouco tempo atrás falávamos de SDLC (Software Development Lifecycle) ao invés de ALM. Daí dá para perceber que nos preocupávamos apenas com o ciclo de vida de desenvolvimento da aplicação e, por isso, focamos mais nas ferramentas usadas pelos times de desenvolvimento.

Agora, acredite ou não, ALM tem um escopo beeem maior que apenas o desenvolvimento do produto.

ALM (Application Lifecycle Management, ou “Gestão do Ciclo de Vida da Aplicação”) é a coordenação das atividades do ciclo de vida de uma aplicação, incluindo requisitos, modelagem, desenvolvimento, construção, testes, manutenção e operações.

Viu como vamos além do mero desenvolvimento? Costumo dizer a meus alunos nos treinamentos que ministro que, de maneira simplificada, ALM envolve tudo o que acontece desde o instante em que um usuário tem uma ideia ou uma necessidade para um novo sistema até o instante em que esse sistema é colocado em produção e precisa ser mantido funcionando. O desenvolvimento da aplicação é, em si, apenas uma parte disso tudo. Obviamente é uma parte muito importante, mas ainda assim apenas uma parte.

Uma outra parte tão importante quanto o desenvolvimento da aplicação é o que o mercado normalmente chama de Operações – e que nós desenvolvedores chamados de “os caras da infra” Smile. Afinal, não adianta nada criar uma aplicação estado-da-arte se ela não puder ser implantada em nosso ambiente de produção ou se ficar indisponível para nossos usuários na maior parte do tempo. Uma evidência de como a integração dos times e práticas de Operações finalmente entrou na pauta de ALM é o movimento de DevOps, com a preocupação de discutir as melhores técnicas, abordagens e soluções para tornar mais efetiva a cooperação entre Desenvolvimento e Operações.

Diagrama de ALM

Um dos maiores desafios que os times de Desenvolvimento e Operações encontram ao tentar coordenar essa cooperação é fazer as informações fluírem de maneira eficiente entre as áreas/ambientes de Desenvolvimento e Produção. Se por um lado os desenvolvedores tipicamente são proibidos de chegar perto do ambiente de produção, por outro eles precisam interagir com o ambiente de produção de várias formas: seja para garantir que sua aplicação foi corretamente instalada/implantada, seja para ter acesso a métricas, logs, evidências de erros e outras informações que os ajudem a aperfeiçoar suas aplicações. No diagrama de ALM (figura acima) os círculos vermelhos representam pontos de atrito comuns, onde geralmente há dificuldade para troca de informações.

É aí que entra o System Center – para ajudar os times de Desenvolvimento e Operações a compartilhar informações de maneira mais eficiente, permitindo que ALM realmente cubra o ciclo de vida da aplicação.

O que é o System Center?

De acordo com a Microsoft, o System Center “oferece gerenciamento unificado de ambientes on-premise, em provedores de serviços e em ambientes Windows Azure”. Esse amplo serviço de gerenciamento cobre funcionalidades como:

  • Provisionamento de Infraestrutura;
  • Monitoramento de desempenho de aplicações;
  • Automação e self-service;
  • Gestão de serviços de TI.

O System Center 2012 R2 é composto de vários produtos individuais, que se integram e se complementam nessa tarefa de gerenciar um ambiente híbrido de TI. São eles:

  • System Center App Controller (SCAC): O SCAC é uma ferramenta de autoatendimento (self-service) para provisionamento de máquinas virtuais e serviços. Mal comparando, é como se fosse uma versão do portal de gerenciamento do Azure mas que pudesse criar VMs e serviços também em servidores no seu data center;
  • System Center Service Manager (SCSM): Ferramenta para gestão de incidentes de TI. Com o SCSM você pode montar uma solução para o Service Desk da sua empresa, registrando os incidentes (os famosos “tickets”) de suporte;
  • System Center Orchestrator (SCO): O Orchestrator é uma solução de gerenciamento de fluxos de trabalho (workflows). Com ele, é possível criar workflows que “orquestram” a criação, monitoramento e implantação de recursos. Em outras palavras, você pode criar workflows que implantem uma aplicação em produção, execute testes de fumaça automáticos e faça um rollback em caso de problemas durante os testes. Tudo sem intervenção manual;
  • System Center Operations Manager (SCOM): Uma das ferramentas mais conhecidas da família System Center, o SCOM faz o monitoramento de servidores e aplicações, capturando dados diagnósticos e sinalizando eventuais problemas de infraestrutura. Sabe aqueles dashboards cheios de luzinhas verdes e vermelhas que ficam na parede do pessoal de infraestrutura, sinalizando onde tem problemas de desempenho ou de comportamento? Então, aquilo é feito com o SCOM;
  • System Center Configuration Manager (SCCM): O SCCM é usado para gerenciar a configuração de computadores e dispositivos móveis. Com ele você pode, por exemplo, automatizar a instalação de aplicações em milhares de desktops ao mesmo tempo, além de inventariar a configuração de software e hardware de sua empresa. Com o SCCM é possível montar o “famoso” CMDB do ITIL;
  • System Center Virtual Machine Manager (SCVMM): O SCVMM é usado para configurar e gerenciar ambientes virtualizados, facilitando a gestão dos hosts (servidores hospedeiros de máquinas virtuais) e o provisionamento inteligente de máquinas virtuais;
  • System Center Data Protection Manager (SCDPM): Solução de backup e proteção de dados da família System Center.

Família System Center 2012 R2

System Center e ALM

Com essa enormidade de ferramentas e recursos, fica difícil saber como – e onde – o System Center pode ajudar no ciclo de ALM. Abaixo seguem alguns exemplos de como usar as ferramentas do System Center em conjunto com a família de produtos Visual Studio ALM para melhorar seu processo de DevOps.

System Center Service Manager

SCSM no ciclo de ALMComo é que você coleta as demandas de seus usuários? Como eles podem solicitar o desenvolvimento de novas aplicações ou abrir chamados de suporte para informar erros de sistema? Expor o TFS a seus usuários finais, pedindo para que eles cadastrem work items diretamente no servidor, não é prático nem tampouco amigável. Com o SCSM integrado ao TFS, você poderia fazer a gestão de tickets e solicitações no System Center e, uma vez validadas e priorizadas, seriam convertidas automaticamente em itens de trabalho do TFS. Isso é tipicamente feito através da criação de workflows no System Center Orchestrator, que monitoram o SCSM e o TFS e replicam informações entre os dois.

System Center Service Manager

System Center Operations Manager

SCOM no ciclo de ALMNão basta colocar uma aplicação em produção. Tem que garantir que ela funcione adequadamente. E quando ela não está mais funcionando, o que fazer? O SCOM facilita bastante isso, oferecendo ferramentas que se integram ao TFS e permitem que o desenvolvedor reproduza mais rapidamente os defeitos encontrados em produção. O exemplo mais comum é a abertura automática de incidentes: quando uma aplicação tem um mal funcionamento em produção (por exemplo, ela sofreu um crash), o SCOM captura informações a respeito do que estava acontecendo naquele instante e gera um log do IntelliTrace, com informações como lista de exceções, stack traces, módulos em memória e afins. Essas informações são inseridas num “bug” no TFS para que o time de desenvolvimento possa analisar o comportamento em produção sem precisar sequer saber em qual servidor a aplicação está rodando!

System Center Operations Manager

System Center Orchestrator

SCO no ciclo de ALMO System Center Orchestrator (anteriormente conhecido pelo codinome “Opalis”) é o grande curinga da família System Center. Como toda ferramenta de workflow e orquestração, ele é extremamente flexível. Porém, no ciclo de ALM seu papel de destaque é sem dúvida o de orquestração de implantações. Com o SCO você pode criar workflows ricos para implantação e validação automáticas de sua aplicação.

System Center Orchestrator

System Center Virtual Machine Manager

imageO papel do SCVMM no ciclo de ALM é um pouco diferente do dos seus “irmãos”, pois ele está do outro lado do ciclo. Ao invés de suportar o time de Operações, o SCVMM é usado pelo time de Desenvolvimento como parte do recurso de Lab Management do TFS + Microsoft Test Manager, introduzido na versão 2010. Com ele, os times podem provisionar e gerenciar ambientes de desenvolvimento e testes num modelo de autoatendimento, sem precisar envolver a galera de Infra. Basta eles liberarem alguns hosts Hyper-V e os modelos de máquina virtual que o time de desenvolvimento consegue gerenciar seus próprios ambientes.

System Center Virtual Machine Manager

SCOM MP for TFS

Vimos que o SCOM pode ser usado para monitorar as aplicações que seu time colocou em produção, além dos ambientes em que elas estão sendo executadas. Mas ele não se limita a isso. Com o uso do SCOM Management Pack for TFS você pode monitorar o próprio TFS, de modo a simplificar a administração do seu servidor. Ou você prefere descobrir do jeito mais difícil que seu servidor está ficando sem espaço em disco ou que há um problema de desempenho no banco de dados do back-end do TFS?

Conclusão

ALM é um assunto muito amplo. Não é à toa que temos eventos falando só sobre isso, dada a gama de informações. E o System Center é uma peça fundamental para as empresas que desejam montar um ambiente de ALM para a Plataforma Microsoft. Se você quiser experimentar um pouco do que pode ser feito com o System Center e o TFS, baixe a máquina virtual de DevOps do Brian Keller (um pouco desatualizada, é verdade; mas ainda muito útil) e faça os hands-on labs.

Um abraço,
Igor



18/03/2014 | Por Igor Abade V. Leite | Em Técnico | Tempo de leitura: 9 mins.

Postagens relacionadas