Há um tempinho atrás surgiu dentro do time de ALM da Lambda3 uma rica discussão sobre o modelo de licenciamento do serviço de Build do Visual Studio Team Services (VSTS).
O quê? Você não sabia que os builds no VSTS são cobrados? Então é melhor você ler este post.
O Visual Studio Team Services oferece um serviço de automação de build e deployment que atende não apenas às contas mantidas no próprio VSTS, mas também a repositórios externos como os do GitHub. Os mesmos agentes que oferecem os serviços de automação de build são usados também para a automação de releases. Ou seja, a discussão neste post abrange não apenas Build mas também Release Management.
Há vários níveis de serviço e modelos de cobrança para o Serviço de Build do VSTS. Assim, deixe-me primeiro tranquilizar a todos: Apesar de ser licenciado, o serviço de build oferece um nível básico (e gratuito) de serviço. Ufa!
Vamos conhecer então o serviço gratuito de build.
Serviço Gratuito
O serviço gratuito oferece 240 minutos por mês de tempo de build e/ou release. Em outras palavras, se seu time tem um build de CI que dura em média cinco minutos, você conseguirá rodar uns cinquenta builds por mês. Não é pouco, mas certamente não é o suficiente para a maioria dos times.
Além da quantidade limitada de minutos por mês, o serviço gratuito é restrito também a:
- Duração máxima de 30 minutos para um único build e/ou release. Dessa forma, se algum de seus builds (ou releases) demorar mais que meia-hora, ele será abortado;
- Apenas um job simultâneo. Você pode rodar apenas uma coisa (seja build ou release) por vez. Se outros builds forem agendados, eles ficarão na fila (FIFO) até que o build em andamento termine.
Precisa de mais build do que o serviço gratuito é capaz de oferecer? Então vamos falar das opções mais parrudas.
Serviço pago
Para ter acesso aos serviços pagos, a primeira providência é configurar a cobrança (“billing”) em sua conta do VSTS. Após esse passo, é possível contratar os serviços adicionais de build.
Agentes Hospedados
Sua primeira opção para poder rodar mais builds é contratar um Agente Hospedado de Build (“Hosted Build Agent”). Com ele, você tem uma máquina administrada e mantida pela Microsoft – você só paga pelo uso.
Quando você opta por um agente hospedado você não paga mais por minutos, mas sim um valor fixo de 40 dólares por mês. Isso significa que, independentemente da quantidade de builds que você rodar, você paga apenas um valor fixo! Existem, porém, algumas limitações:
- Duração máxima de 360 minutos para um único build e/ou release. Até porque, venhamos e convenhamos: Se seu build demorar mais de SEIS HORAS para acabar, ele MERECE ser abortado!
- Apenas um job simultâneo. Tal como no serviço gratuito, você não pode rodar mais de um build por agente por vez. Entretanto, você pode contratar mais de um agente e, nesse caso, poderia ter mais jobs simultâneos (um job por agente).
Agentes privados
Os agentes hospedados discutidos acima são bem convenientes – afinal, você não precisa se preocupar em dar manutenção neles – mas têm um enorme “porém”: Você não pode instalar nada neles! Se você quiser ter controle sobre o que é instalado no seu agente de build – por exemplo, seu sistema tem dependências que devem estar previamente instalados na máquina de build – então agentes hospedados não são uma opção. Nesse caso, a solução é usar agentes privados.
Agentes privados são máquinas de build criadas e mantidas por você. Por serem suas, podem estar on-premises ou numa máquina virtual na nuvem. Podem ser Windows, Linux ou Mac. E podem rodar qualquer software que você quiser e/ou precisar. E, acima de tudo, você não paga pelo uso e pode rodar jobs de longa duração, na quantidade que você bem entender. Seu custo é apenas o de licenciamento do agente: O primeiro agente é gratuito, mas a partir do segundo agente privado deverá ser pago 15 dólares por mês pelo direito de uso desse agente.
Ativando o serviço pago
No Portal do Azure, você pode acessar as opções de sua conta de VSTS e adicionar agentes hospedados e/ou privados na seção Build and Deployment service:
Builds XAML
Se você ainda estiver usando Builds XAML, as opções acima não se aplicam a você. Não dá para contratar agentes hospedados e nem agentes privados. Nesse caso, sua alternativa é comprar minutos adicionais. Com mais minutos, você poder rodar mais builds por mês.
Para comprar mais minutos você pode acessar a seção de configuração do Visual Studio Team Services do Portal Clássico do Azure. Na página de configuração da sua conta de VSTS, clique na aba de Escala (“Scale”) para acessar os planos de pagamento dos diversos serviços do VSTS.
Uma vez lá, altere a opção Build para Pago (“Paid”) e defina o limite máximo de consumo (para evitar “surpresinhas” no final do mês!). Se o limite máximo de minutos for atingido, o serviço de build é desligado até o mês seguinte para não gerar cobranças adicionais.
Conclusão
O serviço de build do VSTS é bastante flexível e poderoso – não apenas tecnicamente mas também em seus modelos de cobrança. Dá para encontrar um modelo que se encaixe melhor no perfil do seu time e que ofereça o melhor custo-benefício!
E você, usa os serviços de build do VSTS? Divida sua experiência conosco nos comentários!
Um abraço,
Igor
(Cross-post de http://www.tshooter.com.br/2016/07/26/como-e-licenciado-o-servico-de-build-do-visual-studio-team-services/)
Igor Abade
Igor Abade V. Leite ([email protected]) é Microsoft MVP (Most Valuable Professional) de Visual Studio ALM desde 2006. Palestrante em diversos eventos da comunidade de desenvolvimento de software (TechEd Brasil, The Developers’ Conference, DevOps Summit Brasil, Agile Brazil, Visual Studio Summit, QCON e outros), é também autor de artigos em revistas e sites como o MSDN Brasil. Desde março de 2011 é um dos sócios da Lambda3, uma consultoria especializada em ALM, desenvolvimento de software e treinamentos. Siga-o no Twitter @igorabade.