A NBCUniversal utiliza o software IBM® UrbanCode Build e IBM® UrbanCode Deploy com o IBM® Cloud for Skytap Solutions como o mecanismo de DevOps, combinando integração, entrega, teste, feedback e monitoramento contínuos em um fluxo de trabalho automatizado, unindo processos, cultura e tecnologia em toda a organização.
A NBCUniversal procurou empregar uma abordagem de DevOps para o desenvolvimento de aplicações em sua complexa empresa, composta por 17 unidades de negócios, a fim de melhorar a qualidade do código, agilizar o desenvolvimento e reduzir custos.
A NBCUniversal utiliza o software IBM UrbanCode e o IBM Cloud for Skytap Solutions para impulsionar o DevOps, combinando integração contínua, entrega, teste, feedback e monitoramento em um fluxo de trabalho automatizado.
Até recentemente, havia uma percepção geral de que apenas a nova geração de organizações nativas da nuvem, aquelas concebidas como disruptivas de mercado e construídas para inovação rápida, embarcaram na jornada do DevOps. Não é bem assim. Para cada Etsy, Uber ou Netflix, existem inúmeras empresas estabelecidas, como a NBCUniversal, que procuram agilizar consistentemente o tempo de colocação de novas aplicações no mercado, aumentar a qualidade do código das aplicações e reduzir os custos de desenvolvimento, testes e implementação através de DevOps.
Essas corporações representam apenas alguns setores. E, independentemente da complexidade organizacional e de TI, eles estão adotando uma abordagem DevOps porque a agilidade — a capacidade de acelerar a inovação e responder mais rapidamente às mudanças nos requisitos de negócios — é vital.
O caminho do DevOps que uma grande empresa segue provavelmente parece bem diferente do de um negócio nascido na nuvem, com certeza. As mais significativas são as questões sobre a melhor forma de promover uma mudança cultural generalizada e transformar processos e paradigmas estabelecidos há muito tempo.
A NBCUniversal cresceu em grande parte por meio de aquisições e, atualmente, compreende 17 empresas individuais e unidades de negócios, incluindo sua presença internacional. Característico da maioria das grandes organizações, seu ambiente de aplicações é diversificado e de várias velocidades, com uma combinação de ambientes locais, de nuvem privada e pública, com aplicações de negócios principais integradas a novas aplicações da web e dispositivos móveis. A equipe de DevOps da empresa precisava unir a grande variabilidade em velocidade, processos, ferramentas, habilidades e cultura entre os desenvolvedores do System of Record (muitas vezes mainframe) e os desenvolvedores do System of Engagement (aplicações baseadas na nuvem e voltadas para o cliente) para alcançar integrações entre esses sistemas.
John Comas, gerente de plataforma DevOps da NBCUniversal, é responsável pelos processos e ferramentas que sustentam o ciclo de vida de desenvolvimento de software (SDLC) de DevOps na NBCUniversal. "Precisávamos fornecer aos nossos clientes de aplicações um SDLC único e padronizado por vários motivos: primeiro, para reduzir os custos de licenciamento de aplicações, eliminando várias instâncias. Em segundo lugar, queríamos fornecer um sistema corporativo padrão e local e migrar o maior número possível de usuários para ele, para que pudéssemos padronizar o suporte e o treinamento. Também queríamos melhorar a qualidade do código desenvolvido, e queríamos desenvolvê-lo mais rápido, com mais eficiência e com menor custo", diz ele. "Nossas compilações e implementações tinham altas taxas de falha e, como nossas equipes de aplicações quase não faziam testes, havia versões que provavelmente nunca deveriam ter entrado em produção, resultando em muitas interrupções."
Empreender a jornada de DevOps se tornou o ímpeto para a criação de um fluxo de trabalho em quatro grupos que não estavam historicamente bem integrados: as equipes de desenvolvimento, controle de qualidade, execução e SDLC. A jornada engloba tecnologia e mentalidade, acelerando a inovação ao dividir processos complexos nas menores unidades de trabalho e executá-los em paralelo sempre que possível.
A Comas e o diretor sênior de estratégia e colaboração de serviços da NBCUniversal, Charles Williams, posicionaram o DevOps internamente como uma plataforma/framework compartilhada para entregar inovação mais rapidamente. A plataforma IBM UrbanCode — UrbanCode Build (software de automação de criação de aplicações) e UrbanCode Deploy (software de automação de liberação de aplicações) — atua como o mecanismo de DevOps, permitindo que a NBCUniversal combine integração contínua, entrega contínua, testes contínuos, feedback contínuo e monitoramento contínuo em um fluxo de trabalho automatizado, unindo processo, cultura e tecnologia em toda a organização.
A plataforma UrbanCode oferece suporte a um conjunto diversificado de ambientes de TI e oferece recursos completos de auditoria, o que é fundamental para uma empresa complexa, como a NBCUniversal. "Com os produtos UrbanCode, podemos fornecer compilação como serviço para a organização. Posso reproduzir qualquer compilação que entre no UrbanCode com o clique de um botão", diz Comas. "Temos um único dashboard unificado onde posso ver toda a atividade. E temos registros claros sobre o que foi compilado, os binários relacionados a essa compilação, o que foi feito com ela, como foi testada, em que ambiente foi implementada, tudo isso. Dê-me uma data e, se quiser saber o que foi implementado na produção naquela data, eu posso lhe contar tudo.”
A NBCUniversal usa o IBM Cloud for Skytap Solutions (ICSS), desenvolvido pela Skytap, parceira de negócios da IBM, em conjunto com o software IBM UrbanCode Deploy para automatizar a configuração e o gerenciamento do ambiente de teste durante todo o ciclo de vida do desenvolvimento de software e paralelizar o teste de regressão como parte da automação de controle de qualidade.
Em um caso, o grupo de televisão da NBCUniversal usou o ICSS para reduzir seus testes de regressão de 6 a 8 semanas para apenas 3 horas para o Compass, uma grande aplicação usada para agendamento de programas de TV. Associado ao Compass está um enorme conjunto de testes de regressão composto por 1.000 casos de teste. Antes de utilizar o ICSS, a equipe de controle de qualidade da organização executava esses testes localmente, cada teste executado em série. Agora, eles configuraram um ambiente de 50 máquinas de teste, todas apontando para o ambiente Compass QA no local, com 20 testes sendo executados por máquina em paralelo.
Por meio do DevOps, a NBCUniversal dividiu o que antes era um processo monolítico em partes componentes, com a equipe de DevOps da Comas assumindo a liderança, fornecendo a infraestrutura que suporta as ferramentas de DevOps, gerenciando as próprias ferramentas e gerenciando as melhores práticas no uso dessas ferramentas. A equipe também cria as automações para as equipes de desenvolvimento.
Defender o DevOps não foi fácil no início; nem todos estavam receptivos, então Comas e Williams tiveram que superar alguns obstáculos culturais. "John e eu já conversamos sobre DevOps há um tempo, mas a conversa entrava por um ouvido e saía pelo outro. Foi quando começamos a falar sobre recursos e, em seguida, mostrá-los aos proprietários das aplicações e, em seguida, ao ambiente de controle de qualidade, que começamos a perceber interesse", diz Williams. “A certa altura, acho que John e eu até decidimos parar de usar a palavra 'DevOps', porque ela não significava nada para a maioria das pessoas. Maior velocidade de entrega no desenvolvimento de aplicações; ser capaz de executar testes de forma repetida e consistente e obter resultados rápidos — isso é importante. Quando falamos nesses termos, começamos a mudar a cultura. E quando tivemos algumas oportunidades de demonstrar nossos recursos de desenvolvimento ágil, começamos a ouvir: 'Ah, então isso é DevOps. Era isso que eu queria'".
Nesse sentido, ferramentas e tecnologia, como o software UrbanCode, impulsionaram a cultura e a mudança de processos. "Acho que as ferramentas ajudaram a fortalecer o resultado da mudança na cultura; desenvolvimento mais ágil, mais testes shift left", diz Williams. "As ferramentas serviram de base para o processo de DevOps que imaginamos: um fluxo de trabalho de ponta a ponta."
O grupo de televisão da NBCUniversal em Nova York é um exemplo de como a jornada DevOps da organização tomou forma. Essa unidade de negócios específica é o braço de distribuição de televisão da NBCUniversal e é, em parte, responsável pela programação dos conteúdos transmitidos em todas as estações de propriedade da NBCUniversal. Conforme observado anteriormente, a aplicação Compass é fundamental para essa tarefa.
Comas e sua equipe migraram o desenvolvimento para o Compass — um enorme software baseado em .net app — para a plataforma UrbanCode há cerca de 18 meses. “Eu descreveria o processo anterior do Compass como um processo 'manumático'; o código era enviado para o repositório, a pessoa clicava manualmente no botão de compilação e em seguida o implementava em algum ambiente. Depois da implementação em algum ambiente, o código basicamente ficava a cargo da equipe de controle de qualidade”, diz ele. “Então, passava-se uma semana e eles obtinham alguns resultados, outra compilação era feita e enviada de volta para o controle de qualidade, e assim por diante. Portanto, o tempo de lançamento de uma aplicação no mercado era muito alto: 20 semanas para o lançamento. Um dos motivos pelos quais demorou tanto é que a equipe de controle de qualidade fazia testes em grande escala em uma versão que poderia ou não atender aos requisitos de negócios.”
O objetivo da equipe de aplicação do Compass era reduzir esse tempo em 75%, para cinco semanas. “Assim que os transferimos para a plataforma UrbanCode, eles conseguiram atingir esse objetivo. Na verdade, agora pretendemos reduzir o tempo de lançamento no mercado para duas semanas”, afirma Comas. Primeiro, sua equipe integrou a automação de controle de qualidade ao fluxo de trabalho do Compass, eliminando a necessidade de executar manualmente vários testes de controle de qualidade para cada implementação. “Começamos com testes shift left. Testamos a versão da aplicação por unidade e fizemos uma análise de cobertura de código nela, ao mesmo tempo em que iniciamos um pequeno teste funcional onde observávamos os diferentes requisitos de negócios e criávamos testes que os exerceriam. Portanto, antes mesmo de o lançamento chegar à equipe de controle de qualidade e tornar-se totalmente funcional e testado por regressão, poderíamos obter feedback imediato se o lançamento era bom ou não. Isso, por si só, acelerou muito as coisas.”
A abordagem DevOps da NBCUniversal também quebrou silos na implementação. “Historicamente, os lançamentos só podiam ocorrer em determinados dias da semana — normalmente terça e quinta à noite — e se você perdesse essa janela, não poderia fazer um lançamento até a janela seguinte”, diz Comas. “Portanto, trabalhando com a equipe do Compass Run, agora podemos fazer implementações na produção com muito mais frequência, resultando em lançamentos menores e mais frequentes. Assim, eles têm uma agilidade muito maior e conseguem atender aos requisitos do negócio com muito mais rapidez. Resumindo, a qualidade do código melhorou, está mais rápido e conseguimos atender aos requisitos de negócios com muito mais rapidez.”
Do ponto de vista tecnológico, Comas diz que a plataforma UrbanCode dá à sua equipe a capacidade de integrar uma ampla gama de ferramentas em um fluxo de trabalho automatizado, eliminando a dependência excessiva dos desenvolvedores. “Com o UrbanCode, quando um desenvolvedor envia código sem testes unitários adequados, ele será sinalizado. Se um desenvolvedor não tiver isso como parte do fluxo de trabalho, você não terá ciência disso. Não haveria feedback sobre o processo informando o status da aplicação. Nosso fluxo de trabalho do Compass é provavelmente a automação mais completa que temos, e a tecnologia está nos ajudando a aumentar a qualidade da aplicação, melhorando a qualidade de compilação em uma ordem de grandeza. Além disso, estamos entregando as mudanças que a empresa deseja com muito mais rapidez. Esses são os objetivos finais; as razões pelas quais estamos nesta jornada de DevOps.”
Para Williams e Comas, DevOps significa desenvolver confiança e credibilidade e instituir previsibilidade, velocidade e qualidade no ciclo de vida de entrega de softwares. “Estamos fornecendo uma infraestrutura robusta que garante um nível de qualidade e de serviço às nossas equipes de aplicações”, afirma Comas. Na verdade, a equipe de DevOps está ganhando tanta credibilidade que as unidades de negócios agora estão pedindo sua ajuda em projetos maiores. “Como mostramos que os recursos são flexíveis e expansíveis e que nos permitem entregar em um prazo muito apertado, observamos um aumento de seis vezes no volume de projetos, de dez para mais de 60 aplicações. Estamos fornecendo um caminho para a produção de aplicações que gera um nível de confiança que nunca tivemos antes.”
A NBCUniversal é um conglomerado multinacional multimídia com sede na cidade de Nova York. A empresa, com receita de aproximadamente US$ 30 bilhões, está envolvida principalmente nos setores de mídia e entretenimento; entre suas divisões mais significativas estão a rede de televisão NBC e o grandioso estúdio de cinema Universal Studios. Por meio de sua divisão Universal Parks & Resorts, é também a terceira maior operadora de parques de diversões do mundo.
© Copyright IBM Corporation 2016. IBM Cloud, Route 100, Somers, NY 10589 Produzido nos Estados Unidos da América, novembro de 2016. IBM, o logotipo da IBM, ibm.com e UrbanCode são marcas comerciais da International Business Machines Corp., registradas em várias jurisdições em todo o mundo. Outros nomes de produtos e serviços podem ser marcas comerciais da IBM ou de outras empresas. A lista atual de marcas registradas da IBM está disponível na web em "Informações sobre direitos autorais e marcas registradas" em ibm.com/legal/copytrade.shtml. Este documento está como na data da primeira publicação e pode ser alterado pela IBM a qualquer momento. Nem todas as ofertas estão disponíveis em todos os países nos quais a IBM opera. É responsabilidade do usuário avaliar e verificar a operação de qualquer outro produto ou programa com produtos e programas da IBM. AS INFORMAÇÕES CONTIDAS NESTE DOCUMENTO SÃO FORNECIDAS NO ESTADO EM QUE SE ENCONTRAM, SEM QUALQUER GARANTIA, EXPRESSA OU IMPLÍCITA, INCLUSIVE SEM NENHUMA GARANTIA DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UMA DETERMINADA FINALIDADE NEM QUALQUER GARANTIA OU CONDIÇÃO DE NÃO INFRAÇÃO. Os produtos da IBM têm garantia de acordo com os termos e condições dos contratos sob os quais são fornecidos. Todas as declarações relativas ao direcionamento e às intenções da IBM no futuro estão sujeitas a alterações ou retirada sem aviso prévio e representam apenas metas e objetivos.