Maio de 2018

Volume 33, Número 5

DevOps - qualquer idioma, qualquer plataforma com projetos de DevOps do Azure

Por Willy-Peter Schaub, Alex Mullans | De 2018 maio

Nos últimos dois anos, Microsoft tenha implantado um ambiciosa CI (integração contínua) e a iniciativa de pipeline de fornecimento contínuo (CD) para sua plataforma de DevOps. O ALM | Equipe DevOps Rangers foi ativada no esforço, que abrangem a criação do e lições aprendidas de cada versão, em várias postagens de blog e em MSDN Magazine artigos como "Aplicando DevOps para um projeto de Software" (msdn.com/magazine/mt767695) e "Caminho para o fornecimento contínuo com o Visual Studio Team Services" (msdn.com/magazine/mt814804). Anos de investimento estiver pagando dividendos, como Microsoft hoje apresenta um ecossistema de DevOps heterogêneo e rápido criado em torno de uma plataforma do Visual Studio Team Services (VSTS) que evoluiu por leaps e bounds.

Por trás desse esforço são as equipes de desenvolvimento que dão suporte interno de demanda para estruturas de aplicativos populares, integração de pipeline de CI/CD automática e transparente e suporte interno de monitoramento — no idioma e a plataforma de sua escolha. Além disso, os desenvolvedores desejam criar qualquer aplicativo, em qualquer serviço do Azure, em minutos. Velocidade e simplicidade são muito importante.

Projetos do Microsoft Azure DevOps (bit.ly/2E5zkWG) atende a todas essas necessidades. Ele permite que os desenvolvedores iniciar um aplicativo em qualquer serviço de aplicativo do Azure em apenas algumas etapas rápidas, fornecendo que tudo que for necessário para desenvolver, implantar e monitorar um aplicativo. Criar um projeto de DevOps e provisiona todos os recursos do Azure e fornece um repositório de código de Git, integração Application Insights e uma configuração de pipeline de entrega contínua para implantação no Azure. O permite do painel de projeto DevOps monitorar código confirmações, compilações e implantações de um único modo de exibição no portal do Azure.

Este artigo explora como habilitar o DevOps projetos baseados em nuvem CI/CD usando o VSTS para:

  • Colocar em funcionamento com um novo aplicativo e um pipeline DevOps completo em apenas alguns minutos
  • Suporte a uma ampla variedade de estruturas conhecidas, como .NET, Java, PHP, Node.js e Python
  • Integrar interna do Application Insights para análise imediata e ideias acionáveis
  • Começar do zero ou trazer um aplicativo existente do GitHub

Como alternativa, vamos pode examinar o projeto DevOps como um recurso para ajudar os usuários "Introdução" no Azure. Imagine um desenvolvedor que precisa para desenvolver e implantar uma solução de Node.js do Azure. O usuário precisa localizar qual serviço do Azure funciona melhor para o idioma, o cenário de plataforma e estrutura, o protótipo do ambiente e, finalmente, crie um processo para a equipe de engenharia. Cada etapa tem uma curva de aprendizagem e vários pontos de falha. O projeto de DevOps simplifica tudo isso e torna à prova de falhas. Não é praticamente DevOps, mas também sobre simplificar a começar no Azure.

Discutir DevOps

Gostaria de pausa por um tempo para reiterar nossa definição de DevOps na Microsoft. Como Donovan marrom, principal gerente DevOps do grupo do Azure descreve: "DevOps é a união de pessoas, processos e produtos para habilitar a entrega contínua do valor para nossos usuários finais."

Você também pode examinar o DevOps no site da Microsoft (aka.ms/devops) para obter informações sobre as lições aprendidas pela divisão de desenvolvedores da Microsoft durante nossa jornada de sete anos para DevOps Agile. Que esforço produziu uma cultura que é voltada para o cliente coloca produção primeiro e fornece valor continuamente em um ritmo de nuvem de três semanas.

Neste artigo, nos concentraremos na parte mais fácil de nossa definição DevOps, os produtos. Conforme mencionado, os desenvolvedores desejam um processo que é fácil, rápida e consistente. Eles exigem suporte de sua escolha de plataforma e linguagem de programação, bem como a automação e pipelines CI/CD fora da caixa.

Conforme mostrado na Figura 1, um pipeline de CI/CD é uma sequência de distintas práticas usadas para integrar continuamente, testar e implantar as alterações na produção. Informações de telemetria, comentários de usuário e fluxo de incidentes de site dinâmico voltar para informar decisões, aprimorar futuras versões e mais importante, avalie a hipótese que motivados a implantação. Ele é sobre continuamente fornecendo valor.

Práticas recomendadas de DevOps
Figura 1 DevOps práticas

Projetos de DevOps do Azure

Com o Azure DevOps projetos, você pode criar um aplicativo do Azure, em um serviço do Azure, em minutos. Você também obtém a integração de pipeline de CI/CD completa automática, monitoramento interno e implantação para a plataforma de sua escolha. Conforme mostrado na tabela Figura 2, há vários tipos de aplicativo, a estrutura e a implantação para escolher ao criar um novo projeto de DevOps. É importante observar que essa tabela reflete as informações no momento da gravação e que suporte interno será melhoraram quando que você ler isso.

Figura 2 aplicativo, Framework e opções de implantação

Aplicativo Estrutura Implantação do Windows Implantação do Linux
    Aplicativo Web Máquinas virtuais Aplicativo Web Aplicativo Web para contêineres
.NET ASP.NET X X    
ASP.NET Core X X X X
Java Sprint X     X
JSF X     X
Node.js Express.js X     X
Sails.js       X
Node.js simples X     X
PHP Laravel X     X
Simple PHP X     X
Python Django X   X  
Garrafa X   X  
Bulbo X   X X

Vamos explorar como criar um novo projeto de DevOps no portal do Azure, criando um par de aplicativos. É recomendável que você Introdução ao Azure DevOps projetos e acompanhar usando suas próprias contas do Azure e VSTS. Essa abordagem permite explorar as soluções resultantes em detalhes.

Conforme mostrado na Figura 3, o primeiro exemplo de aplicativo é baseado em Java e o Spring framework e foi implantado como um aplicativo Web no Windows. É um dos muitos exemplos possíveis que mostra uma combinação de tecnologias em execução no Windows, um cenário comum para os desenvolvedores.

Java, JSF, Web App no aplicativo do Windows
Figura 3 Java, JSF, Web App no aplicativo do Windows

No portal do Azure, você cria um novo projeto de DevOps. Você pode escolher um conjunto de aplicativos de amostra desenvolvidos usando .NET, Node.js, PHP, Python ou Java, ou você pode colocar o nosso próprio código.

Para implantar o aplicativo, (1), selecione o aplicativo de exemplo do Java, (2) Escolha Spring como sua estrutura de aplicativo e (3) selecione o aplicativo Web no Windows como seu serviço do Azure para implantar o aplicativo. Em seguida, (4) digite um novo nome de projeto e confirmar ou alterar os detalhes do Azure e do VSTS. Você criará uma nova conta do VSTS e alterar o local do serviço de aplicativo para Centre Canadá. Da mesma forma, você pode alterar as configurações do Azure, como assinatura, plano, o nome do aplicativo Web e o local do aplicativo Web de preços. Validações internas Certifique-se de que os valores corretos sejam inseridos e evita falhas de downstream.

Uma vez concluído, repita o exercício, mas desta vez selecione .NET, .NET Core Framework e o aplicativo Web para os contêineres no Linux para implantar o aplicativo. Esse é outro exemplo simple que mostra como uma combinação de tecnologias pode executar em um contêiner no Linux. Ao concluir estas quatro etapas simples, você criou dois projetos DevOps, conforme mostrado no Figura 4.

DevOps projetos
Figura 4 DevOps projetos

Esses projetos permitem a fácil e rapidamente criar pipelines de CI/CD completos para vários idiomas populares, estruturas e plataformas. Este é um ativo útil para projetos experimentais e demonstrações rápidas e é uma ótima maneira de obter sua equipe de desenvolvimento iniciada com um processo abrangente, extensível e consistente.

Magic em segundo plano

Obviamente, nada disso aconteceu por mágica. Quando você clica no botão Concluído depois de selecionar a estrutura de tempo de execução, o serviço e a configuração, ela foi iniciada uma sequência de estágios distintos, mostrado na a Figura5. Você pode navegar para o painel de projeto DevOps mostrado selecionando o novo projeto na lista de projetos de DevOps ou usando as notificações no portal do Azure.

Modo de pipeline no Azure
Figura 5 Pipeline exibição no Azure

Os quatro estágios envolvidos são:

  1. Recursos do Azure: Criado e configurado seus recursos de serviço de aplicativo do Azure, o plano de serviço de aplicativo e ponto de extremidade do aplicativo.
  2. Repositório: Criado um repositório Git distribuído e check-in do código de exemplo.
  3. Pipeline de CI/CD: Conectado diretamente com a solução de colaboração do VSTS para engenharia equipes, permitindo que você planejar, testar, versão e monitorar suas soluções.
  4. Informações do aplicativo:  Criar e configurar sua telemetria do Application Insights. Essa ferramenta permite o monitoramento e de aprendizado para detectar problemas e continuamente analisam proativamente e teste de hipóteses sem código ativo.

Observe que as fases do projeto DevOps não apenas criado e configurado um Pipeline(see section 3 in Figure 5) CI/CD, também executada um pull do seu código, uma compilação de integração contínua e implantado no ambiente de desenvolvimento da versão.

No painel projeto DevOps, monitorar os pipelines de CI/CD, telemetria do Application Insights e navegue até os recursos do Azure ou VSTS relevantes.

Quando você navega para sua nova conta do VSTS, você encontrará dois novos projetos: JaSpWeADemo e dNCoWe4DDemo (Figura 6). Eles são vinculados para os dois projetos DevOps do Azure.

Conta de serviços do Visual StudioTeam e projetos de equipe
Figura 6 Visual StudioTeam Services conta e projetos de equipe

Na compilação de CI executa uma compilação com base em Maven sempre que alguém verifica no código. Para reduzir o número de compilações em execução, as alterações são processadas em lote quando uma compilação está em execução. Você pode ajustar os eventos que disparam uma compilação, por exemplo, especificando ramificações ou usar filtros de caminho para reduzir o conjunto de arquivos que podem disparar a ação.

Ao explorar o projeto JaSpWeADemo Pipeline, conforme mostrado no Figura 7, você verá artefatos (1) e (2) ambientes. O Dropartifact é uma parte implantável do seu aplicativo produzido pelo gatilho de implantação contínua Build.The instrui o Release Management para criar uma nova versão quando detecta que um novo artefato está disponível. Novamente, você pode ajustar os eventos que disparam o lançamento, por exemplo, apenas processamento artefatos da ramificação mestre.

PipelineView no Visual Studio Team Services
Modo de Pipeline 7 no Visual Studio Team Services

Por padrão, o pipeline de CI/CD criado automaticamente pelo projeto DevOps implanta o Devenvironment quando uma versão é criada por um gatilho de implantação contínua. Nenhuma aprovação manual requer que o ambiente de desenvolvimento, Gatesare desabilitados e ele tem apenas uma tarefa que implanta o exemplo de serviço de aplicativo do Azure.

O pipeline gerado pelo projeto DevOps é um excelente ponto de partida para demonstrações e experimentação. Para produção, o pipeline pode exigir algumas adorar adicional, que discutiremos na próxima seção.

Por fim, abra o projeto de exemplo dNCoWe4DDemo segundo e examinar o pipeline de CI/CD. Em geral, o pipeline parece muito semelhante. No entanto, analise a compilação e você observará que o IC criar disparadores de uma compilação da imagem de contêiner, enviar por push para o registro de contêiner do Azure. A versão do CD implanta o serviço de aplicativo do Azure no Linux, sem qualquer conhecimento de Linux ou contêiner necessários.

Como mostra este passo a passo rápida, DevOps projetos começar rapidamente a usar um pipeline de CI/CD completo e funcional. A curva de aprendizado para Azure, VSTS e DevOps é significativamente menor, ao usar projetos DevOps, comparado ao compilar a solução e o pipeline de CI/CD manualmente. Você está agora pode trabalhar com participantes, por exemplo, segurança, operações e gerenciamento para fazer seu pipeline de CI/CD para o próximo nível de versão.

Fazer o acabamento Pipeline gerado

O pipeline de CI/CD é um elemento essencial do DevOps que ajuda as equipes de forma consistente e entregar continuamente o valor, em um ritmo mais rápido e com baixo risco. Você pode aprimorar o pipeline gerado para alinhar com o processo e as políticas organizacionais. Totalmente, você pode automatizar o teste, validação e entrega de software em vários ambientes de produção, ou configurar um pipeline semiautomatizado com aprovações e entradas. Até mesmo convém aumentar o nível de exposição de qualidade, segurança e progressivo de novos recursos.

Aqui estão algumas dicas para começar:

  • Greenlighting e entradas: Refinar seu pipeline de versão com um conjunto de entradas em Opções de pré e pós-implantação que se integram sinais do monitoramento de sistemas e outros serviços externos (bit.ly/2E549uG).
  • Analise projetos de código aberto: Analisar e medir qualidade técnica, com SonarCloud e VSTS, do seu projeto para cada método continuamente (bit.ly/2J4v0ea).
  • Validação de segurança: Soluções continuamente seguras dentro da Pipeline CI/CD. Infraestrutura segura de endereço, validar a segurança, verificar os componentes de software livre de vulnerabilidades e monitorar ataques (bit.ly/2Gmczjg).
  • Nova implantação de versão:  Usar anéis de implantação para progressivamente expor uma nova versão e ajustar versões em produção com sinalizadores de recurso (red.ht/2GTsQNC).

A importância do pacote de gerenciamento

Se você estiver pensando sobre maneiras de fornecer mais valor mais rapidamente para seus usuários finais, em seguida, você provavelmente está usando pacotes (como o NuGet, npm e assim por diante). Pacotes e DevOps têm uma relação simbiótico. Gerenciamento de pacotes está orientado para fornecer valor adicional por meio de produtos para o pipeline de CI/CD e capacitar compilar e automação de versão. No VSTS, a extensão do pacote de gerenciamento foi projetada para ser parte integral do pipeline DevOps, tornando mais fácil de usar com responsabilidade de pacotes de fontes públicas e mais rápido para criar e compartilhar seus próprios pacotes de.

É a maneira mais fácil para adicionar alguns mágico do pacote de gerenciamento para o pipeline de DevOps com fontes upstream, qual conectar o gerenciamento de pacotes feed a fontes de públicos como nuget.org e npmjs.com. Há duas vantagens grandes usando pacotes destas origens por meio do pacote de gerenciamento:

  • Toda vez que você usar um pacote, uma cópia salva é mantida no feed, o que significa que você está protegido contra problemas como o incidente de preenchimento à esquerda (consulte bit.ly/2pO1Do5) pública da fonte de interrupções e qualquer outra coisa que o mundo pode gerar para você. Você precisa manter o seu pipeline de fluxo é o pacote VSTS feed.
  • Em seu feed, você pode ver todas as cópias salvas de provenance, para que você pode filtrar e ver exatamente quais pacotes você usou de onde.

Começando com o gerenciamento de pacotes leva apenas duas etapas. Primeiro, instale o pacote de gerenciamento e criar um feed, conforme mostrado no bit.ly/2GDj5W9. Por padrão, o novo feed é automaticamente configurado com fontes upstream para nuget.org e npmjs.com. Em seguida, no Visual Studio (bit.ly/2pR3aZZ) ou npm (bit.ly/2J2xVUq) para usar o novo feed. A partir daí, ele 's comercial como de costume. Guia de Introdução, você pode executar uma compilação limpa para forçar os pacotes a serem salvas no feed.

Conclusão

Este é o primeiro de uma série de artigos que estamos planejando aborda recursos novos e futuros. Acreditamos que transparência ajuda a criar empatia e confiança e o mais importante, permite que você execute etapas incrementais para adotar produtos e melhorar o processo. Nossa linha do tempo de indicadores (bit.ly/2uv25fM), atente para artigos futuros e procure anúncios em que a Microsoft Build futuros e inspirar eventos. Neste ponto, podemos pode mencionar que estamos trabalhando em alguns interessantes melhorias para projetos de DevOps, incluindo expandindo recursos da VM do Azure, adicionando suporte para ir e Ruby e estender o suporte para bancos de dados.

Agora que nós introduzido DevOps projetos e coberto magic nos bastidores, você deve se sentir confiante maneiras explorando para aprimorar seus pipelines de CI/CD. Lembre-se de que DevOps não é um destino, é uma jornada de melhoria contínua e rápida.

Recursos do DevOps

O setor de CI/CD e DevOps está em desenvolvimento rápido e há muitos aspectos básicos para desenvolvedores cobrir. Para ajudar com o desafio, montamos alguns recursos e links para conteúdo que você pode explorar e indicadores para referência futura. Estes recursos fornecem as atualizações de produto e lições aprendidas de nossos histórias de transformação DevOps mais recentes. Esperamos que habilitarão simplificar e acelerar suas próprias transformações DevOps.


Willy-Peter Schaubé gerente de programas no VSTS, trabalhando no Microsoft Vancouver em lindos a Colúmbia Britânica. Desde meados-anos 80, ele tem sido tentando obter simplicidade e facilidade de manutenção na engenharia de software. Você poderá segui-lo LinkedIn em aka.ms/willysli ou no Twitter: @wpschaub.

Alex Mullansé gerente de programas no VSTS, tornando mais fácil e rápido para equipes de compartilhar e reutilizar o código. Você pode segui-lo no Twitter: @alexmullans.

Agradecemos aos seguintes especialistas técnicos pela revisão deste artigo: ALM | DevOps Rangers, Gopinath Chigakkagari, Atul Malaviya


Discuta esse artigo no fórum do MSDN Magazine