Transcrições
1. Introdução: Olá e bem-vindo a este breve tutorial sobre como criar seu primeiro pipeline CRC de amigável ágil usando como seu DevOps. Meu nome é quando bom e eu tive sorte de trabalhar com um número de empresas de tecnologia, bem como agências governamentais ao longo dos anos. Além disso, gostaria de compartilhar minha própria experiência e conhecimento por meio de palestras, postagens de
blog e até mesmo canais do YouTube. Mas chega disso. Aqui estão as habilidades que temos para nos concentrar neste curso. Vamos nos familiarizar com como seu DevOps e seus esquemas de licenciamento. Nós vamos usar como suas ondulações obter com o código do Visual Studio. Nós vamos estar seguros em seus arranjos master branch ou main branch de um empurrão direto por solicitações de importação forçadas, então nós vamos ser Lincoln esses pedidos polares com como seus quadros. Por isso, impomos a colaboração entre os canais membros da equipe do estágio de plano do ciclo. Em seguida, vamos implantar um aplicativo Web para hospedar um site com dois slots de implantação, uma vida e uma surda, usando como seu PowerShell e um modelo ARM, vamos então criar uma compilação de integração contínua para testar seu aplicativo Web antes da implantação, que lida com a criação e verificação. Vamos ser Lincoln como Build Pipeline, onde eles liberam pipeline de entrega
contínua para implantar no slot de profundidade, parou para aprovação manual
e, em seguida, implantar para viver uma vez aprovado, que lida com o pacote e etapas de liberação do ciclo. Basicamente, depois disso, eu acredito que você não só terá a habilidade secreta que você está no pipeline, mas também gerenciar um desenvolvimento completo em se você quiser escrever para se beneficiar plenamente deste curso, você precisará do seguinte. Precisa estar familiarizado com como seus conceitos de nuvem e desenvolvimento. Então, por exemplo, precisa saber o seu IS de seu passe. Você precisa saber como trabalhar com repositórios Git. Você precisa ter um ativo como sua assinatura. E isso pode ser contratos
empresariais de pagamento conforme o uso ou até mesmo um teste gratuito usando seus créditos. débitos são cartões pré-pagos, e isso lhe dará $200.170 créditos Euros. Você precisa ter o Visual Studio Code instalado ou qualquer IDE capaz de trabalhar com o controle de fonte baseado em kit. Você também precisa ter, como seus módulos PowerShell instalados. E isso pode funcionar com Windows ou Linux. Sim, funciona. No entanto, se você não estiver confortável com isso, você pode usá-lo como seu CloudShell. Por último, mas não menos importante, vá com calma. Sinta-se livre para pular em frente e seguir o que lhe interessa. No entanto, podemos perder algumas dicas e truques. Se você não seguir o curso pretendeu. Não se sinta intimidado se você tiver algum problema, se você ficar preso em qualquer lugar,
por favor, não hesite em entrar em contato comigo e eu farei o meu melhor para responder-lhe. Vamos ao trabalho e estou ansioso para o que você inventar.
2. Crie seu projeto de Azure DevOps: Tudo bem, então o primeiro e eu precisamos fazer é assinar com seu zelo DevOps. Agora podemos usar suas contas Microsoft normais ou você pode fazer login com sua conta do GitHub. Por isso, tenho de começar gratuitamente e criar uma nova conta Microsoft. Agora podemos escolher a região em que vamos iniciar nossa conta DevOps. Podemos dar um nome à organização e também podemos escolher como seu datacenter e qual será o nosso projeto, que é muito importante porque não adianta trabalhar
na Europa Ocidental e ter seu repo no Brasil, para exemplo. Agora podemos criar um projeto para começar. E a coisa a observar aqui é que podemos ter vários projetos em uma organização, e cada projeto pode ter suas próprias permissões e repositórios. Tudo bem, então aqui você pode escolher se você quer que seja um projeto privado ou um público. Então você tem a intenção de trabalhar neste relacionamento com a equipe e você não pretende publicar nada, você pode muito bem apenas escolher um privado. Então eu vou usar uma opção privada por agora, vou dar-lhe um nome de projeto curso DevOps, e clique em criar projeto. Então, na página de resumo, podemos adicionar uma descrição sobre o projeto. Podemos adicionar uma descrição aqui. Ou podemos vinculá-lo ao arquivo Read Me ou wiki no repositório. Também temos as estatísticas do projeto, que nos dá uma visão geral dos itens criados onde os tritões foram concluídos nos quadros. Nós também temos uma visão sobre as solicitações gerais abertas, os commits, e quando começamos a ter pipelines também obterá status nos pipelines que foram concluídos com sucesso, falharam e assim por diante. Também tem uma lista dos membros aqui. E no topo aqui podemos convidar novos membros. Nós os adicionamos por e-mail. E mais basicamente vai acontecer é que eles vão receber
um convite por e-mail para se juntar a isso como seu grupo de DevOps. Nós também temos a seção painel que vai fazer mais sentido à medida que obter mais conteúdo sobre este projeto são a idéia é que nós adicionar widgets que serão amarrados com itens de trabalho, status de
implantação, lead time. Também podemos adicionar páginas da Web personalizadas, páginas marcação, solicitações pull. Nós lançamos, lançamos pipeline ou comentários e assim por diante, vamos e para baixo aqui temos a página wiki para mim pessoalmente, eu amo documentar tudo porque você nunca sabe quando você pode mudar departamento ou você pode ir para outro lugar e alguém terá que assumir o que você está gerenciando. Ou se você tiver um novo membro da equipe que precisa se atualizar com tudo. Então, usar a wiki aqui é uma boa maneira de permitir que todos os membros da equipe colaborem. Temos a capacidade de criar um wiki do projeto principal e, em seguida, vinculá-lo a vários sub wikis. Como você pode ver aqui, vamos clicar em criar wiki do projeto. Nós temos o título e então nós podemos ter como uma mini palavra tipo de editor de texto que vai se traduzir em Markdown. Agora vamos olhar para as configurações da organização e, em seguida, passar para a frase do projeto.
3. Configurações de organização e licenciamento: Certo, então primeiro de tudo, vamos voltar para a organização. E aqui vamos descer até o canto inferior esquerdo
da tela e clicar nos segundos das organizações. Aqui temos a capacidade de alterar o nome da organização. URL de privacidade, adicione uma descrição, altere o fuso horário, altere o proprietário e exclui toda a organização. Sob isso temos projetos. Podemos adicionar projetos, podemos modificar projetos, você pode adicionar novos projetos. Podemos renomear ou excluir projetos, e agora chegamos à seção do usuário. E esta seção é muito importante porque é aqui que as restrições de licença SEO DevOps entram em jogo. Então, se eu clicar no resumo aqui, vamos descobrir que temos dois tipos de usuários. Temos o usuário básico e as partes interessadas. Agora, as partes interessadas têm acesso a um número limitado de recursos. Assim, por exemplo, a parte interessada pode administrar a organização. Ele pode acessar quadros ágeis. Você pode acessar o gerenciamento ágil de portfólio. E ele pode usar um recurso padrão que inclui trabalhar em vários projetos, painéis
Bu exibir wikis, notificações pessoais
gerenciadas devido a itens de trabalho de exibição de resumo de teste, bem
como exibir lançamentos e gerenciar aprovações. Então, como você pode ver, a parte interessada seria mais como seu gerente ou alguém que precisa aprovar as coisas em vez de realmente se envolver com o material técnico nitty-gritty. E isso pode ser atribuído a um usos limitados. Agora, o usuário básico permite que você use todos os recursos do Azure DevOps, com cada organização que você obtém apenas cinco usuários gratuitos. O resto você terá que pagar. No entanto, a coisa legal a observar aqui é que se você tiver MST e assinantes ou assinantes corporativos do Visual Studio, você pode usá-los em vez de uma licença básica. Portanto, não precisa comprar licenças para esses tipos de usos. Então, tenha isso em mente. Agora, se clicarmos no Buy, ele nos levará imediatamente para a seção Benin. Podemos começar a definir uma habilidade. Assim, você pode dizer que Berlim não foi criado como eixo
da organização estará disponível até os limites de nível gratuito. Então, os limites de nível gratuito são, e nós temos cinco acusadores BC. O resto temos que pagar. Temos 1800 minutos para pipelines CIC D hospedados pela Microsoft, que entraremos em um minuto. E nós temos um auto-hospedado livre ver pipeline
ICD com a liberdade é que obtemos 0 trabalhos paralelos pagos. E isso significa que não podemos ter mais de um pipeline e executá-los ao mesmo tempo, ir e descer para artefatos. Temos dois gigabytes livres de artefatos usados, menos de um uso de gigabyte emitem até dois gigabytes livres testes de carga baseados em nuvem em que podemos usar, temos até 20 mil espectadores. Para obter mais informações, você pode clicar nos limites de nível gratuito. Além disso, você receberá perguntas freqüentes no nível gratuito. Seguindo em frente, temos a seção de auditoria. Então isso basicamente nos dá um registro de cada atividade que acontece nos projetos, o que é bastante útil. Temos notificações globais. Assim, eles nos permitem gerenciar todas as notificações relacionadas aos projetos. Aqui obtemos um registro do uso de aplicativos e extensões por usuário. Temos extensões se você quiser adicionar extensões que são usadas em um pipelines, por exemplo, também podemos
protegê-las para que não permitam que as pessoas instalem extensões também. Aqui, se clicarmos no mercado de navegação, podemos adicionar extensões diferentes. Você pode adicioná-los a partir das configurações da organização ou do pipeline em si descendo para como seu Active Directory. Portanto, esta seção nos permite vincular, há sua organização de DevOps com nosso locatário do Azure Active Directory. Portanto, há o locatário do Active Directory que todos os usuários
do Active Directory sejam usuários híbridos de ITS ou como usuários de nuvem. E você pode adicioná-los individualmente ao Azure DevOps. Portanto, em vez de convidá-los com e-mails, você usaria em suas políticas de segurança de contas do Active Directory. Podemos optar por permitir o acesso a aplicativos de terceiros usando OAuth. Assim, permitiríamos que os desenvolvedores usassem a API Vizio DevOps para fazer exatamente as mesmas coisas que eles fazem no portal, podemos optar por ativar ou desativar a autenticação SSH. Podemos escolher os projetos públicos desativados completamente, e podemos escolher se devemos ou não convidar usuários do Github ou para baixo para Permissões. Estas são as permissões globais que se aplicariam à organização. E qualquer profundidade de permissão que você adicionaria aqui
seria herdada nos projetos abaixo que temos agora e o conselho nos permite escolher diferentes processos
para o como você é comprado em geometria usando o básico. Mas também podemos escolher especificamente ágil, scrum ou CWR. Minha mudança para pipelines, temos pools de agentes e, basicamente, pipelines ao redor com como seus asiáticos de DevOps. E esses agentes podem ser executados em VMs ou contêineres. Agora, como você ou dar-lhe um conjunto de agentes que você pode usar para executar seus pipelines. Mas você também pode criar seu próprio pool auto-hospedado. E isso seria útil se você quiser ter pipelines
de automação em execução na sua rede privada. Digamos que você tenha um pipeline que interaja com um serviço interno por trás do firewall corporativo. E para isso você pode usar um agente privado pode ter configurações, podemos desativar Paxos anônimos, variáveis de
limite são podem ser definidas para q tempo. Vamos entrar nisso. Você tem pools de implantação, trabalhos paralelos. Agora, é claro, dado que estamos usando um nível gratuito, não
temos acesso a trabalhos paralelos, mas temos a capacidade de comprar trabalhos paralelos, como você pode ver abaixo, se vamos ser usados em um projeto privado foram permitidos um trabalho paralelo, mas esse trabalho paralelo tem que estar dentro de um auto hospedado todos. Se vamos ser usados em um pool asiáticos hospedado pela Microsoft, não
temos gotas paralelas se o projeto vai ser publicado com um pool asiático hospedado pela Microsoft, temos permissão de dez trabalhos paralelos se vamos usar como auto hospedado paciente quente, usando nossas próprias VMs ou outros próprios contêineres, teríamos trabalhos paralelos ilimitados. Então vale a pena pensar. Aqui temos ambas as configurações que nos permitem usar princípios de serviço ou contas de
aplicativos de outras fontes como nuvem GitHub ou GitHub Enterprise server. Temos os repositórios onde podemos optar por ativar ou desativar imagens de gravidade, podemos alterar o nome padrão da ramificação para o novo repositório. Então, no momento, por padrão, sempre que você criar um novo repositório, você obteria a ramificação principal. Temos artefatos. Podemos configurar o depósito para artefatos. E os artefatos são os arquivos que você publicará em seu pipeline de lançamento. No momento, temos 0 whew que foi muito longo Não era muito
importante saber que isso parece especialmente se você quiser usar como seu DevOps em produção, agora
vamos passar para as configurações do projeto.
4. Configurações do projeto e conexão com o Azure: Tudo bem, agora que voltamos para o nosso projeto, vamos descer para o canto inferior esquerdo da tela e clicar em Configurações do projeto. Aqui temos a capacidade de renomear o projeto em si, a descrição. Podemos alterar a visibilidade do projeto dependente se
temos ou não a opção habilitada nas configurações da organização. Se você se lembrar desse, podemos ter administradores de
projeto e podemos habilitar ou desabilitar recursos. Aqui podemos excluir o projeto também, indo para as equipes. Agora, por padrão, temos uma equipe criada com o projeto. E essa equipe seria um grupo. Então você pode criar outra equipe também. E nesta equipe você pode adicionar membros e administradores. E você pode usar isso para atribuir permissões a um grupo inteiro. Então, se você for para Permissões, temos os grupos padrão. Além do custo de DevOps que está aqui embaixo, você pode optar por usar grupos padrão ou criar seus próprios grupos com permissões granulares. Pessoalmente, gosto de ter permissões granulares. Para que eu possa empregar pelo menos políticas privilegiadas. Então podemos ter um administrador de projeto apenas nos quadros. Este pode ser o líder da equipa. A única necessidade de olhar para os itens de trabalho é Scrum Sprints e assim por diante. Aqui temos os pontos de vista dos grupos e dos usuários. Então todos os usuários apareceriam aqui. Se clicarmos no usuário, veríamos suas permissões como são herdadas. Também podemos ver os grupos dos quais eles são membros. Assim, por exemplo, CSU texturizada faz parte do grupo de administradores de projeto, equipe de cursos de
DevOps e dos administradores de coleta de projetos da organização, e até mesmo notificações automáticas. Agora, por padrão, isso será enviado em todos os eventos como um e-mail para a equipe do curso DevOps. Você pode optar por mantê-lo assim. Mas acredite em mim, uma vez que você começar
a trabalhar com as ondulações e publicado em pipelines e tudo mais, você começará a receber e-mails muito spam. Então você pode optar por desativar alguns deles ou criar uma nova assinatura com eventos específicos de ganchos de serviço é como gráfico Notificações. Ele envia uma notificação fora do SEO DevOps. Então, se eu clicar em Criar assinatura, podemos enviar eventos para uma série de serviços como o centro de aplicativos como seus servidores de aplicativos. Portanto, eventos suportados chamados ações suportadas por push implantam um aplicativo Web, o armazenamento do Service Bus. Podemos enviar os Jenkins também. Então, quando a construção estiver concluída, podemos acionar uma construção no Jenkins. Não precisamos usar como seu DevOps, por exemplo, podemos enviar algo para o Office 365, por exemplo. Então, digamos que você tenha um grupo de equipe, e quando alguém cria um item de trabalho que enviará uma notificação para a pontuação da equipe, também
podemos usar ganchos da web. Então, se tivermos nossa própria API, podemos enviar eventos para esta API e processá-lo de acordo. Assim, com painéis, podemos controlar quem pode criar, editar entidade, eles. Passando para as placas, tínhamos a configuração do projeto. Podemos definir iterações altas. Podemos definir dados, podemos adicionar áreas que também podemos fazer a partir da própria seção do Conselho. Temos a configuração da equipe onde podemos definir os níveis de navegação. Também podemos definir os dias de trabalho para que a equipe esteja oficialmente trabalhando apenas nos dias de semana. Podemos ir para iterações. Podemos ir para áreas onde podemos criar áreas diferentes. Então, aqui podemos definir modelos quando alguém quiser publicar uma edição, qualquer pico ou uma tarefa. Aqui temos conexões GitHub. Este é o lugar onde nós estaríamos Lincoln o projeto com uma conta GitHub. Aqui temos os pools asiáticos, que é exatamente como os pools asiáticos nas configurações da organização, temos os trabalhos paralelos, que novamente é como as configurações da organização. Temos as configurações de pipeline que nos permitirão definir políticas
de retenção para o pipeline de artefatos ou conferências. Temos a seção de gerenciamento de testes que nos permite gerenciar a detecção de testes escamosos. Temos a retenção de versão, que nos dará informações sobre a política de retenção para as versões. E aqui está uma seção muito importante que é as conexões de serviço. Como vamos usar como seu para este curso para implantar um aplicativo web e atualizar a página da web, temos que criar uma conexão de serviço. Então este criar um agora, então eu vou clicar em conexão de serviço de consulta. E aqui, como você pode ver, podemos nos conectar com uma série de serviços. Para que possamos vinculá-lo ao seu clássico Azure Resource Manager Bitbucket Chef, host
Docker, eu vou escolher como seu gerenciador de recursos. Agora, a opção mais fácil seria usar o Principal de Serviço automático, que vincularia sua conta atual como sua conta de DevOps às contas de nuvem
do Azure quando você selecioná-la, pois seu DevOps tentará até você quando você estiver conectado no momento definidas se estiverem vinculadas a qualquer como suas credenciais da Nuvem. Agora, uma vez que esta conta não está vinculada a um 0, teremos que fazer as coisas manualmente. Então eu vou voltar para o manual de princípios de serviço e eu vou ligá-lo com como sua nuvem. E eu vou usar um ID de assinatura que eu tenho com outra conta. Então eu vou adicionar o nome da assinatura. Vou adicionar o nome da minha assinatura, que é do canal do YouTube da minha irmã. E agora vou usar um ID de princípio de serviço , por isso vou voltar para as minhas contas. E eu vou para o Azure Active Directory, registros de aplicativos. E eu vou criar um novo registro e eu vou chamá-lo de episódio de desenvolvimento. Vou usar um único inquilino. A água pode usar o número de opções. Ponteiro registrar esta conta. Ok, então agora eu tenho um ID de cliente e um ID de inquilino. Então eu vou usar um ID de cliente. chave principal do serviço de TI do serviço será a senha ou o segredo. Então eles têm que voltar aqui e eu vou criar um segredo. Agora, idealmente com segredos, você os geraria no registro
do aplicativo e os armazenaria em um Cofre de Chaves do Azure, por exemplo, porque a madeira lá como sua chave volt, você pode dinamicamente crab os segredos e quando o segredo expira e é hora de ser alterado, você não precisa voltar para seus aplicativos e alterar um manual que você pode simplesmente alterá-los a partir do teclado porque todos os seus aplicativos se conectam
à tecla cofre foi um teste expira em um ano. Nós não nos incomodamos. Certo. Então agora eu tenho o valor. Posso pegar que relata a chave principal de serviço. E voltamos e obtemos nosso ID de locatário, que é o domínio do Azure AD. Isso está feito. Damos um nome a ele. Ok, então estamos prontos para ir. Posso clicar em Verificar. Então agora quando eu clicar em Verificar me diz que estou proibido de Lincoln coisas importantes quando você cria um princípio de serviço que você dá acesso
à assinatura ou ao grupo de recursos com o qual você deseja trabalhar. Então eu tenho que voltar para minha assinatura, ir para Controle de Acesso, alterar atribuições de funções para todas as atribuições. E eu vou dar contribuinte. Opa, episódio. E segura. Eu deveria dar-lhe um acesso contribuinte sobre a assinatura que será aplicada em todos os grupos de recursos. Exploda isso. Tudo bem, então eu posso ir e verificar novamente. Tudo parece bom. Então, agora estabelecemos uma conexão com o como sua nuvem. Esta conexão nos permitirá criar aplicativos web, criar VMs, inserir desejos de coração de dados na assinatura. Temos serviços de compilação XHTML. Se você quiser ter uma conexão, nós temos as ondulações. Então aqui temos as configurações dos repositórios. Podemos adicionar novos repositórios, ou podemos navegar, renomear, excluir os existentes. Podemos alterar as configurações para que o nome da ramificação padrão, por exemplo, podemos impor um tamanho máximo de arquivo e comprimento máximo de caminho nomes reservados, por exemplo. E temos permissões, podemos definir permissões nos próprios repositórios. Tem permissão para criar ramificação, Criar repositório, Grande tag. De acordo com os grupos, temos o armazenamento de artefato também, e temos as retenções de teste para que possamos manter os testes automatizados são resultados de
íons em anexos por 30 dias e para testes manuais, podemos manter eles por um ano. É isso. Por isso, prometo-te, vamos começar a meter-nos nas coisas boas.
5. Configurando o GIT Repo: Ok, então finalmente nós vamos começar a fazer algum trabalho. Então, primeiro de tudo, vamos verificar os relatórios. Vamos aos arquivos e descobrimos que nossos repositórios e ele tem um arquivo Read Me e tem uma ramificação principal. Agora, eu não posso enfatizar isso o suficiente. Você não deseja trabalhar diretamente com o domínio ou a ramificação mestre. Se você trabalha com uma equipe ou se juntar uma empresa e começar a mexer com a filial principal, você não vai durar muito tempo. Então, o que vamos fazer? Vamos proteger o ramo principal aplicando pedidos polares. E esses pedidos de pull serão ligados aos da diretoria. Então, primeiro de tudo, chegamos a filiais, temos mais dois e temos políticas de filiais. E aqui é onde aplicamos solicitações pull. Para o bem deste curso, eu vou levar permitir que solicitantes para melhorar suas próprias mudanças são geralmente não permitiria isso. A próxima opção vou habilitar essa verificação para itens de trabalho
vinculados e vou configurá-la conforme necessário. Então, o que fizemos, protegemos a filial principal de ser diretamente empurrada para o porquê de impor solicitações pull. E também reforçamos a colaboração com a equipe. Então isso é um pedido polar não será aprovado a menos que ele esteja vinculado a um item de trabalho. Então, agora, se vou publicar código, terei que ramificar,
publicar um resfriado no ramo, enviar uma solicitação pull que tem que ser vinculada ao item de trabalho e, em seguida, mesclar. Então, primeiro de tudo, eu vou para os itens de trabalho de quadros, e eu vou adicionar um novo item de trabalho, uma tarefa que diz implantar sites. Vou atribuí-lo a mim mesmo e vou adicionar essa lista de tarefas. Agora, o item de trabalho, podemos vinculá-lo a uma razão específica, uma área específica que podemos definir nas configurações do projeto. E também podemos atribuí-lo a um sprint específico. Podemos ligá-lo com certos ramos na ondulação, bem como outros itens de trabalho. E assim que tivermos um lançamento ligado a um pedido pull, ele começaria a aparecer aqui. Além disso, neste ponto de trabalho, podemos acrescentar uma descrição que encorajo as pessoas a acrescentar. Então aqui vamos falar sobre este novo recurso que ele tinha sido adicionado, esta nova correção de bugs e assim por diante. Você também pode ter uma discussão onde outros membros da equipe podem adicionar comentários. Você pode ver o statecraft e seus três. Você pode vinculá-lo a outros itens. E você também pode adicionar anexos. Então, por enquanto eu vou salvar e nós temos a tarefa número sete agora para empurrar este código que ir para primeiro, clonar este relatório para o nosso IDE de código Visual Studio. E a maneira mais rápida de fazer isso é usar o botão clone e clicar no código do Visual Studio. E o que isso essencialmente faz é que ele cria um token de acesso pessoal, que você pode encontrar aqui, tokens de acesso pessoal. Ele criará um token de acesso pessoal em segundo plano que permitiria ao seu Visual Studio Code iniciar sessão no Azure DevOps. E você tem que ter cuidado com isso porque cada vez que você clicar neste botão, você estará criando um novo token de acesso pessoal. Então, por enquanto, vou abrir o Visual Studio Code. E vamos usar este botão. E agora uma extensão para abrir CRI, aberta agora ia nos perguntar onde queremos armazenar nosso novo REPL. Então vamos dar uma nova pasta. Episódios de Devops. E deixe-nos despejar aqui dentro. Agora são clonados em seu repositório Git. Gostaria de abrir um clone? O repositório que diríamos Open, e agora estamos conectados com nosso repositório no Azure DevOps. Então, nesta fase, o que eu gostaria que você fizesse é para os gritos Brown. Então vamos para o controle de fonte, clique nos três botões e temos que fazer check-out também. Nós diríamos primeiro rascunho. Está bem. E agora eu gostaria que você baixasse o arquivo zip para este curso, extraia os arquivos, e despeje-os nesta pasta, certo? Então agora temos o arquivo zip extraído para a pasta, que está usando o primeiro ramo rascunho. E o que isso basicamente é um aplicativo web Node.js simples nos. Nós também temos um 0 implantado ou arquivo adjacente, que é um como seu modelo de gerenciador de recursos, modelo ARM. O que isso faz, ele irá implantar um farm de servidores com um aplicativo web que tem dois slots de implantação, vivo em um surdo. E cada um desses slots de implantação terá sua própria URL. Além disso, se você quiser olhar para ele, temos entra seus pipelines arquivo YAML. E para este curso, usaremos a GUI clássica para que ele possa se acostumar a implantar esses pipelines. No entanto, tenha em mente que você pode usar esses arquivos e armazená-los em seu repositório de código para controle de versão. Então agora você tem que empurrá-lo para a nossa primeira filial de rascunho. Fizemos os compromissos dos portões, agora vamos empurrá-lo. Nenhuma filial upstream, Sim, entendido. Clique em OK. E isso está feito. Agora, vamos tentar mexer com a filial principal. Então, se eu for para o principal e eu tentar adicionar algo ao arquivo readme. Ok, então essa é uma nova mudança. Se eu ir para o controle de origem, tinha que git commit teste de mensagem, Control Enter. E eu tento forçar essa mudança. O que vai acontecer com este erro? Se abrirmos o log do git, veremos empurrões através deste ramo não são permitidos. Você deve usar uma solicitação pull para atualizar esta ramificação. Como podem ver, impedimos as pessoas de brincar com a filial principal. Agora imagine que a filial principal seria o seu site real ao vivo. Você não quer que as pessoas se mexam com eles. Agora vamos para o Azure DevOps. E se eu atualizar, vamos receber esta mensagem que diz que você atualizou o primeiro rascunho há dois minutos. Nós também podemos ir para pull requests e criar uma nova solicitação de pesquisa e vamos receber a mesma mensagem aqui também. Então, se eu clicar em novos pedidos polares, podemos escolher um ramo. Então, primeiro rascunho para a principal. E aqui podemos adicionar um título e uma descrição para o pedido pull. Então eu vou dizer primeiro rascunhos, uma descrição deste novo pedido de pesquisa ou este novo recurso, esta nova correção de bugs e os revisores. Então vou adicionar um. Aqui. Temos que adicionar um item de trabalho. Então, vamos adicionar os sites de implantação. E agora temos um pedido que vai ficar assim até que alguém o aprove. Como você pode ver aqui, temos a visão geral. Ele nos diz que mais velho bastante Shek conseguiu. Então, o que vai acontecer aqui? Primeiro de tudo, eu quero verificar se há um item de trabalho ligado a ele. Segundo, vai verificar se há um conflito de fusão. Então, se você tiver algum conflito de fusão e nós saberemos bem antes disso acontecer. E é claro que teremos que consertar isso. E nesta fase, se você adicionar mais alterações ao seu primeiro rascunho, ele aparecerá automaticamente com uma solicitação pull se ele não tiver sido aprovado como 50 para arquivo, veremos todos os arquivos que estão adicionando ou alterando as atualizações e ele se compromete. Então, agora que eu estou tomar widgets um, eu posso aprovar e isso está feito. Então agora podemos clicar
no botão Complete e uma garrafa completa irá fundi-lo com domínio. Ele também pode concluir o item de trabalho associado após a mesclagem. Então, aqui você tem a escolha de completar ou deixá-lo incompleto. Apenas nos casos, o item de trabalho está vinculado a várias solicitações. Podemos clicar nisso. Nós também excluiremos o primeiro rascunho após a fusão. Aqui também pode adicionar uma mensagem de confirmação de mesclagem personalizada. Então eu vou completar a fusão. Isso é feito o projeto de recursos. Então, agora, se eu for aos arquivos e ele chegar até mim e descobriremos que temos nosso novo aplicativo web. Se eu for para o meu código do Visual Studio para a ramificação principal e clicar em puxar. Devemos começar a pegar todos os arquivos, como você pode ver aqui. Então, agora o que fizemos, vinculamos nosso repositório ao código do Visual Studio em nosso próprio laptop. Basicamente, criámos um token de acesso pessoal que permitiria que os elementos visuais
decodificassem, iniciassem sessão no Azure DevOps ou activámos pedidos pull para que pudéssemos proteger a ramificação principal de alguém directamente a ela. E nós empatamos a solicitação pull com placas, então temos a colaboração reforçada com a equipe. Em seguida, vamos nos concentrar em criar nosso aplicativo Web usando o arquivo JSON de ponto de implantação do Azure. E então vamos seguir em frente para criar uma hora de construir e liberar pipelines.
6. Implantar o WebApp usando ARM: Agora vamos fazer magia. O que eu gostaria que você fizesse é executar o PowerShell como admin e digite Install module a Zen. E isso vai baixar os módulos do Azure PowerShell, dizer sim a todos e continuar com a instalação. Certo, uma vez feito isso, feche esta sessão terminal e abra outra. E agora vamos digitar conectar a conta de um. Vamos fazer login usando nossas credenciais para um 0, e é isso. Então a primeira coisa que vamos fazer é selecionar nossa assinatura. Então vamos fazer uma assinatura ASR selecionada e dar-lhe o nome. Isso está feito. Para implantar este aplicativo web, precisamos ter um grupo de recursos. Então eu vou digitar novos A's no grupo de recursos. Nome seria DevOps, local do
episódio seria e Europa Ocidental. E isso está feito. Então agora podemos digitar a exibição A em implantações de grupo de recursos. Você dá a implantação e apontar episódio DevOps. Nós damos a ele o nome do arquivo de modelo. Então nós escrevemos modelo ou modelo de arquivo e dizemos, como você é diploide ou JSON. Agora, uma vez que temos dois parâmetros definidos no arquivo, podemos usá-los como parâmetros do PowerShell. Então site, nome do host chamaria de ter boa Sue, App, App, nome do plano de serviço. Nós chamaríamos isso de levar o Egito em breve. App, SBC p, k. nome do grupo de
recursos seria DevOps episódio. Vamos fazer detalhadamente. Lá vamos nós. Modelo é válido, então tivemos qualquer problema para modelo,
ele iria parar, em seguida, sob verificação e status de implantação. Então, o que podemos fazer, podemos ir para 0 e podemos descobrir que nossa implantação falhou. Por quê? Então, diga-nos que a textura do nome do host para sublinhar aplicativo é inválida, obviamente porque ele vai usá-lo para um URL. Então vamos voltar para nossas implantações, que falharam também, falharam como podemos ver aqui. E vamos usar modelo de hífens tão válido como ir novamente, atualizar. Agora está dizendo que implantar isso, confira. Então temos um farm de servidores e isso está feito. Verificamos o Visual Studio Code, bem-sucedido. Então, se formos para o grupo de recursos, vamos encontrar dois planos de serviço de aplicativo e um servidores de aplicativo. Se verificarmos nossos servidores de aplicativos e acessarmos slots de implantação, encontraremos dois slots de implantação. Um que se chama “levar coisas”. Então App para produção e tomar jujitsu dash app, dash dev para desenvolvimento. Até agora, a idéia é que vamos implantar para o desenvolvimento primeiro. Vamos testar o site se parece bem. E então vamos trocar slots de implantação para produção. Então vamos para a visão geral e verificar a URL. E como você pode ver, temos o espaço reservado Node JS para Microsoft ou 0. Agora podemos começar a trabalhar no nosso Build Pipeline.
7. Pipeline de integração contínua: Certo, de volta aos nossos produtos DevOps. Vamos para oleodutos e vamos criar um oleoduto. Considerando que o seu código, por isso temos um número de opções aqui onde podemos usar um zoológico ondulações, Bitbucket, fica hub, e assim por diante. Portanto, vamos escolher como seus repositórios ficam, não escolhemos nosso repositório e isso automaticamente
pega o botão de arquivo YAML de pipelines do Azure em vez disso. Então vamos voltar e usar o editor clássico. E aqui temos as mesmas opções com os projetos de equipe e repositórios. Podemos escolher o ramo principal e clicar em continuar. Agora podemos escolher um modelo, se quisermos, temos uma série de modelos. Por enquanto vou escolher um trabalho vazio. E aqui temos nosso primeiro oleoduto de construção. Vamos dar-lhe um nome aqui. Vamos escolher a piscina asiática. E como eu disse, os pipelines executados no
Sudeste Asiático seriam em VMs ou contêineres. Esses agentes também podem ser como agentes de pipeline ou podem haver asiáticos privados em suas próprias VMs. Então vamos usar isso como seus oleodutos puxam. E a partir dessa piscina podemos escolher uma série de especificações. Então eu vou escolher para B12 18 quando ele chegou à opção obter fontes, sem passos. Você tem a capacidade de mudar de ramificações. Portanto, se você quiser testar este pipeline em outro ramo, você pode facilmente alterá-lo aqui se ele estiver disponível. Seguindo em frente, vamos para o emprego asiático um. Então, aqui é onde começamos a cabeça em tarefas para o pipeline. Então clique no botão mais aqui e temos uma série de tarefas que podemos adicionar. Então a primeira tarefa que vamos adicionar é
testar o aplicativo web e vamos instalar o npm. Aqui. Estamos procurando o trabalho e a pasta que contém package.json, que é este arquivo aqui. Vamos adicionar um teste de NPM, que não temos aqui. Então o que vamos fazer, vamos usar a linha de comando, que nos permite usar a linha de comando no Windows ou bash no Linux. Acrescentamos isso aqui. E podemos dizer, sim. E ele passou a escrever testes NPM. Também pode ir para Avançado e certifique-se de que estamos usando o diretório de trabalho certo. Deve ser para o curso DevOps, obviamente. Então, tudo bem, então agora vamos adicionar arquivo. Então vamos arquivar todos os arquivos do site. Vou escolher uma pasta raiz. Então vamos usar o diretório de trabalho padrão do sistema variável. Vamos remover prepends pasta raiz, e queremos arquivar como zip. E vamos usar as atualizações construídas de Arafat, diretório da estação de
artefatos constrói ID. Agora vamos publicar este aplicativo web arquivado para que possamos adicionar outra tarefa, artefatos de pipeline publicados. E então o que vai acontecer aqui é antes de tudo, vamos executar a instalação do NPM. Então vamos testar o aplicativo da web. Se o teste for bem-sucedido, vamos arquivar e publicar o aplicativo web. Por algum motivo, o teste falha. O oleoduto, o Build Pipeline irá parar, em seguida, Ender, e é claro que você será notificado sobre isso. Agora, antes de continuar, vamos pegar o arquivo zip Build ID e adicioná-lo ao artefato de pipeline publicado. Então só publicamos o arquivo zip. Então este é basicamente o pipeline de construção. Então, como podemos torná-lo um pipeline de integração contínua? Nós iria para gatilhos e marque,
Ativar Integração Contínua e vamos ligá-lo com o ramo principal. Observe aqui que também podemos adicionar filtros de caminho. Então isso é Nós podemos monitorar uma pasta dentro da ramificação principal em vez de toda a coisa. Então isso é feito e clique em salvar. Agora, antes de continuarmos, quero mostrar algo muito interessante, que é a seção Variáveis do pipeline. Aqui, podemos adicionar variáveis que se aplicam ao pipeline. Essas variáveis podem ser variáveis padrão ou tipo de QI configurável. Então ele poderia dizer nome do computador ou nome da VM. Quando o pipeline é executado, essa variável se tornará uma variável de ambiente dentro desse pipeline. E o que eu quero usá-lo, eu posso chamá-lo assim. E eu vou obter o valor dessa variável se eu quisesse usá-lo no PowerShell, eu usaria a variável ENV um. Se eu quisesse usá-lo em Python, Eu vou fazer importação OS e OS dot Environ. Uma vez que é um dicionário, diríamos variável, e que nos daria o valor dessa variável a ser usada dentro do script. Portanto, essas variáveis podem ser textos básicos seguros também. Então você pode usar senhas ou também você pode adicionar uma tarefa antes que a coisa toda seja executada. Ela usou um cofre de chaves. Nós nos conectaríamos com nossa conexão e assinatura. Nós teríamos o nome secreto do cofre de chaves específico. E isso também se torna uma variável de pipeline, que você pode usar. Conseqüentemente. Nós escreveríamos os nomes secretos do nome secreto era segredos senha. Você adicionaria uma senha secreta aqui e a usaria dentro do pipeline. Assim, você não precisa codificar senhas sensíveis em qualquer lugar. Você pode simplesmente se conectar ao Cofre de Chaves, preencher a variável e usá-la. Bastante legal. Agora, vamos limpar isto. Certo, então vamos testar nosso Build Pipeline. Agora, uma vez que temos tudo trancado, temos que ir para quadros, itens de
trabalho criou um novo item de trabalho, testes,
Construir, Pipeline, e atribuí-lo a mim mesmo. Salvamento frequente. Isso parece bom. Vamos para o nosso código do Visual Studio e vamos
ramificar primeiro recurso. Certo? Indo para, indo para exibições Índice. E eu vou adicionar um texto. E diga “mesa”. Isso não é texto como uma tabela na verdade, mas sim, nós adicionamos uma linha, tivemos um self. E depois, debaixo disso e outra fileira. Isso sim, sim, sim. Está bem. Cve, certo? Tabela adicionada. E vamos empurrar isso para o primeiro recurso. Lindo trabalho Lee. Tudo bem, deixe-me ir aos arquivos. Tudo bem. Crie uma solicitação pull em um link de tabela. É para testar e construir um aprovador IMD de pipeline. Ok, eu aprovo. - Ele. Parece que Goode está completo. Fez ETF agora que se fundiu. Vamos verificar o nosso oleoduto. Como pode ver, começou a funcionar. Então ele está instalando teste NPM para aplicativo web. O teste conseguiu arquivar e, em seguida, publicar. E a seguir vamos trabalhar no pipeline de lançamento.
8. Pipeline de lançamento de implantação contínua: Então agora nós criaríamos um pipeline de lançamento para um modelo que eu
vou escolher como sua implantação de serviço de aplicativo seria slot, Clique em Aplicar, dar-lhe um nome de estágio. Implante no desenvolvimento, vá para tarefas e tarefas. E aqui vemos que temos duas tarefas. Implantar aplicativo, Serviço para slot, Gerenciar serviço de aplicativo, troca de slot. Agora, uma vez que queremos implantar para desenvolvimento,
ter uma forma de aprovação manual e, em seguida, implantar para a vida. Nós vamos remover a troca de slot para o palco agora vai para ir para implantar até a morte. Vamos selecionar a assinatura do Azure, que definimos com nossa conexão de servidores. Vamos selecionar aplicativo Web no Linux. Vamos selecionar o nome do serviço de aplicativo que já texturizamos. Então vamos selecionar o grupo de Recursos e o slot, que vai ser surdo. Muito bom, seguro. Agora vai voltar para o oleoduto e olhar para os artefatos. Você vai clicar em anúncios. Queremos escolher o nosso Build Pipeline, construir e testar. E para a versão vamos escolher a versão mais recente. Portanto, toda vez que a versão mais recente
do artefato Build Pipeline for lançada, nós o usaremos. Agora. Vamos clicar neste ícone de iluminação para habilitar a implantação contínua. Então vamos lidar com o CI e o CD pot para conteúdo. E temos duas opções. Ou nós habilitamos implantações contínuas ou vinculamos à solicitação pull. Então eu vou usar um gatilho de CD e eu vou adicionar um filtro de ramificação. Significa que está feito. Ok, o próximo passo eu vou executar clone. E eu vou dizer para a vida. E antes que isso dispare, vamos usar uma condição de pré-implantação. E o que isso faz, nos permite usar a aprovação pré-implantação. Vamos adicionar um aprovador e podemos adicionar um tempo de espera. Então podemos dizer o seu tempo fora de 24 horas, por exemplo. Então o que vai acontecer aqui é que ele vai terminar com a implantação para surdos e, em seguida, parar ou
aprovação manual por 24 horas que as pessoas que vão ser adicionadas aos aprovadores estarão recebendo e-mails, pedindo-lhes para avaliar e aprovar. Nesta fase, vamos para a Vida e, em vez de usar o serviço de aplicativo implantar no slot, vamos trocar slops. E para usar o Serviço de Aplicativo gerenciar lotes de swaps. Escolha a nossa subscrição, o nosso Serviço de Aplicações, nosso grupo de recursos e o nosso slot de origem. E aqui vamos marcar a troca com a produção e clicamos no seguro. E com isso, senhoras e senhores, terminamos um pipeline de CD CI. Vamos retirar as últimas mudanças do Maine porque adicionamos pipelines, então temos que puxar essas mudanças, certo? Checkout para publicar ao vivo Jose, sua vida, ok. E outra fila. Vida publicada. Em seguida, empurre este recurso. Publicar vivo. Não empurramos nenhuma filial a montante, sim, bom. Você tem que puxar pedidos. Você atualiza, nova vida. Ok. Isso está empatado com um item de trabalho. Vamos amarrá-lo com um revisor. Saber, fundir conflitos. Warner vista deve aprovar, aprovar, concluir, e lá vamos nós. O que vai acontecer agora? Pedidos pull emergentes. E agora vamos construir e testar o site. Vamos ver. Tudo bem, então o artefato é publicado, finalizar e trabalho feito. Agora, se formos liberar, atualizá-lo novamente, veremos ter lançado um é verificar isso. Aqui vamos nós, Qd, si implantar para o agente de desenvolvimento que está pronto para o trabalho e esta espera por ele em andamento. Agora ele vai implantar para o slot de desenvolvimento ou para a direita que conseguiu que ver o que você fez. implantação usando zip deploy iniciado logs de implantação pode ser visualizada. Isso está feito. Então, foi implantado para a tecnologia jiu-jitsu dash app. Então vamos pegar esse URL e abri-lo aqui. Como você pode ver, temos nosso site de desenvolvimento. Temos a imagem dos condes. Temos a mesa aqui. Parece bom. Quem somos. Entra em contato. Como você pode ver. Parece bom. Vá e volte para a liberação. Vemos que a implantação para a vida está pendente de aprovação. Isto deve enviar-me um e-mail. Deixa-me ver o meu e-mail. Como podemos ver aqui, temos a nutrição pedindo aprovação. Quando estiver satisfeito com essa alteração, você pode clicar em Exibir aprovação. Clique em aprovar, dê os comentários. Ou pode adiar para mais tarde. E isso acionará automaticamente o outro estágio do pipeline de lançamento. E este estágio vai trocar o desenvolvimento com a implantação e o progresso da vida. Trocado sobre a vida, feito. Vamos verificar o registro que está feito. Então agora se eu voltar para o site e remover o sufixo surdo. Nosso site é vida. E com isso, senhoras e senhores, implantamos nossa primeira integração contínua, pipeline de implantação
contínua usando como seu DevOps, espero que tenham gostado deste curso. Estou muito animado para ver como você progride com isso. Se você tiver alguma dúvida, qualquer comentário,
por favor, não hesite em entrar em contato comigo e eu farei meu melhor para ajudá-lo o melhor. Muito obrigado. Adeus.
9. Fim: Obrigado por seguir o curso. Espero que tenha achado muito informativo e útil. Você encontrará todos os materiais do curso na descrição do curso abaixo. E novamente, se você tiver algum problema, se você ficar preso em qualquer lugar,
por favor, não hesite em entrar em contato comigo e eu farei o meu melhor para ajudá-lo. Obrigado.