Lançamento do GitLab 10.8: espelhamento de push de código aberto e implantação incremental

Uma imagem para atrair a atenção


Temos o prazer de apresentar a nova versão do GitLab com muitas inovações e melhorias! Nesta versão, aprimoramos a automação da versão, compartilhamos a funcionalidade paga anteriormente, aceleramos a correção de vulnerabilidades de segurança e muito mais.


Mais confiança na implantação


O lançamento de novas funcionalidades está sempre associado à emoção, porque mesmo com os testes mais rigorosos, há o risco de complicações imprevistas. Nosso novo recurso de lançamentos incrementais permite a implantação de código apenas para um subconjunto específico de usuários. Agora, em vez de lançar atualizações para todos os usuários ao mesmo tempo, você pode aumentar gradualmente o número de pods do Kubernetes que estão sendo implantados. Em caso de complicações, você pode reverter as alterações antes que elas afetem toda a base de usuários. Essa inovação fornece uma camada adicional de proteção para os usuários contra erros imprevistos, o que idealmente permite implantar com mais frequência.


Agora, o envio do espelhamento é de domínio público


Inicialmente, o espelhamento por push estava disponível apenas para uma assinatura paga; no entanto, a partir do momento em que foi lançada, essa funcionalidade foi uma das mais solicitadas pelos usuários - muitos pediram para transferi-la para o público. Levamos esses problemas a sério e acreditamos que encontrar o equilíbrio perfeito entre as funcionalidades pagas e disponíveis ao público é uma das áreas principais da política de gerenciamento de projetos . Portanto, a partir desta versão, o envio de espelhos fica disponível ao público .


Graças a isso, os usuários do GitLab Core têm novas oportunidades relacionadas, entre outras coisas, ao desenvolvimento e migração freelance. Os freelancers agora poderão espelhar qualquer repositório do cliente, e os usuários que mudarem para o GitLab de outros repositórios git poderão usar os recursos de espelhamento para simplificar o processo de migração.


Sempre que possível, nos esforçamos para trazer funcionalidade ao domínio público, tanto para atrair novos usuários do GitLab quanto para aumentar o número de pessoas envolvidas no desenvolvimento de software de código aberto .


Aceleração de vulnerabilidade


É quase impossível rastrear vulnerabilidades no código sem nenhuma automação, portanto o GitLab inclui vários sistemas de segurança internos, como SAST , DAST , bem como varredura de contêineres e dependências . Nesta versão, continuamos a trabalhar nessa direção.


Se uma vulnerabilidade for encontrada, você deve corrigi-la ou ignorá-la no caso de um falso positivo. Nossos novos relatórios de segurança interativos permitirão que você execute a ação correspondente diretamente no relatório: você pode rejeitar a vulnerabilidade ou criar uma tarefa para corrigi-la. Essa funcionalidade simplifica o processo de trabalho com vulnerabilidades e, como resultado, acelera o lançamento de código seguro.


Aguardando sua resposta!


Aguardamos a sua reação às inovações deste lançamento - do que você gostou? O que devemos melhorar? Leremos seus comentários sobre o artigo original com interesse e continuaremos trabalhando para melhorar o GitLab.


Obrigado pela sua participação!


Distintivo do GitLab MVP


MVP deste mês - Alexis Reigel


Alexis adicionou um recurso muito útil para criar corredores de CI comuns para grupos . Essa funcionalidade foi solicitada pelos usuários por mais de um ano e a contribuição do Alexis finalmente tornou possível implementá-la. Agora é muito mais fácil gerenciar os corredores do projeto para um grupo específico.


Obrigado Alexis Em agradecimento, enviamos a ele um suéter exclusivo, meias e tanuki artesanal com símbolos do GitLab.


Implantação incremental (PREMIUM, ULTIMATE, SILVER, GOLD)


Ao fazer alterações em larga escala no seu aplicativo, é aconselhável implantar a versão em um pequeno subconjunto de usuários para obter feedback e identificar possíveis problemas. Depois disso, você pode aumentar consistentemente a porcentagem de usuários para quem a implantação é realizada até que a nova versão substitua completamente a anterior. Portanto, se problemas forem detectados em algum estágio, menos usuários serão afetados pela reversão do produto.


No GitLab 10.8, adicionamos a capacidade de implantar código de forma incremental em 10, 25, 50 e 100% de seus lares. Você também pode aplicar essa abordagem no DevOps automático usando a INCREMENTAL_ROLLOUT_ENABLED ambiente INCREMENTAL_ROLLOUT_ENABLED .


Implantações de distribuição incremental


Documentação de implantação incremental


Agora, os espelhos retrovisores estão disponíveis ao público (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, Silver, Gold)


O espelhamento de repositórios permite copiar repositórios Git de um local para outro. Isso facilita o trabalho com várias instâncias do GitLab: por exemplo, você pode espelhar os resultados do trabalho de sua equipe na instância pessoal do GitLab de seus clientes. O espelhamento por push também facilita a transferência de um projeto para o GitLab de outros repositórios, enquanto o repositório original do qual a mudança é feita permanece relevante.


Anteriormente, o espelhamento de push estava disponível no GitLab Starter e agora também no Core.


Documentação de espelhamento de envio


Push Mirroring agora de código aberto


Feedback interativo em relatórios de segurança (versão alfa) (ULTIMATE, GOLD)


Os relatórios de segurança ajudam a identificar possíveis vulnerabilidades em seu software e, em seguida, você pode executar uma ação para corrigi-las.


A partir do GitLab 10.8, você pode criar tarefas de correção de vulnerabilidade diretamente da janela do relatório de segurança. Você também pode rejeitar uma vulnerabilidade específica no caso de um falso positivo. Seu feedback é exibido diretamente no relatório.


Documentação de relatórios de segurança


Feedback interativo em relatórios de segurança (alfa)


Pesquisa difusa de arquivos para Web IDE (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Adicionamos uma pesquisa de arquivo difuso no Web IDE para simplificar a navegação para projetos grandes. A pesquisa difusa está disponível usando a combinação de teclas Cmd + p / Ctrl + p .


Antes, era necessário olhar diretamente para a árvore de arquivos do projeto para encontrar um arquivo específico.


Documentação do IDE da Web


Localizador de arquivo difuso no Web IDE


Confirmando arquivos individuais no Web IDE (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Adicionamos a capacidade de adicionar (preparar) arquivos individuais a uma confirmação no Web IDE, o que permite confirmações em pequena escala. As alterações introduzidas são adicionadas à lista correspondente de alterações não faseadas, após as quais você pode selecionar os arquivos necessários nessa lista e adicioná-los à lista de mudanças faseadas - esses arquivos farão parte da próxima confirmação.


Documentação do IDE da Web


Preparar e confirmar por arquivo no Web IDE


Horários para concluir tarefas de grupos (PREMIUM, ULTIMATE, SILVER, GOLD)


Os agendamentos de tarefas são usados ​​em muitos projetos para acompanhar o progresso de um marco específico. À medida que mais e mais equipes usam a divisão em grupos e subgrupos, recebemos muitas solicitações para adicionar esses agendamentos no nível do grupo.


Nesta versão, adicionamos agendamentos de execução de tarefas para marcos do grupo. Esses gráficos funcionam exatamente da mesma maneira que os gráficos do projeto: eles mostram o progresso de todas as tarefas associadas ao marco, o que fornece uma demonstração clara do fluxo de trabalho. Usando esses planejamentos, você pode avaliar a probabilidade de concluir o trabalho no prazo e fazer as alterações necessárias no trabalho.


Por analogia com os cronogramas do projeto para concluir tarefas, os cronogramas dos grupos levam em consideração o número de tarefas e seu peso. Além disso, os gráficos de grupo levam em consideração as tarefas associadas ao marco para todos os subgrupos do grupo correspondente.


Documentação do agendamento de tarefas


Gráfico de burndown de marcos do grupo


As métricas do Prometheus são compartilhadas, ativadas por padrão (CORE, STARTER, PREMIUM, ULTIMATE)


O GitLab é frequentemente um elemento-chave do ciclo de entrega do software, por isso é importante ter certeza de sua operação estável e correta. Nas versões anteriores, adicionamos métricas do Prometheus para as dependências do Redis e do Postgres, além de várias métricas experimentais na versão 9.3 . Desde então, cobrimos métricas com mais algumas partes de nossa base de códigos e também reduzimos o impacto negativo da coleta de métricas no desempenho. Agora, usamos essas métricas para monitorar o serviço GitLab.com.


Como resultado das inovações anteriores, lançamos o monitoramento do Prometheus em acessibilidade geral (GA, disponibilidade geral) desde a versão 10.8. Para todas as novas instalações do GitLab, o monitoramento será ativado por padrão. Também lançamos uma versão de avaliação do painel Grafana para visualização de métricas.


Documentação de monitoramento do Prometheus no GitLab


Métricas de serviço do GitLab Prometheus agora GA, ativadas por padrão para novas instalações


Outras melhorias no GitLab 10.8


Confirmação de atualizações da política de uso (CORE, STARTER, PREMIUM, ULTIMATE)


O GitLab está se preparando para implementar o GDPR e, como parte desse processo, solicitamos que nossos usuários revisassem e confirmassem os Termos de Uso atualizados. Em vez de usar essa funcionalidade uma vez e esquecê-la, decidimos adicioná-la ao GitLab para que os usuários possam usar esse recurso no futuro.


Quando esse recurso é ativado pelo administrador da instância, os usuários deverão revisar os Termos de Uso e concordar com eles antes de continuar com o GitLab. Até o usuário confirmar esta mensagem, seu acesso ao GitLab via web, API e Git será bloqueado.


A mensagem com os Termos de Uso pode ser completamente alterada nas configurações de administrador. Além disso, como essa postagem é baseada no Markdown com sabor do GitLab , ela pode até conter links para outras páginas.


Todas as confirmações de usuários são armazenadas em um banco de dados, para que você possa usar essas informações no futuro.


Documentação de confirmação para atualizações da política de uso


Pesquise e filtre menus por épicos de roteiro (ULTIMATE, GOLD)


Os menus de pesquisa e filtro são uma parte muito útil da interface, familiar aos usuários e usada em todo o GitLab. Decidimos usar essa funcionalidade para pesquisar e filtrar os épicos do roteiro ao visualizá-lo.


Nesta versão, você pode filtrar épicos por autor e tag no modo de visualização do roteiro. Além disso, você pode procurar épicos por nome e descrição. Isso permitirá que os usuários encontrem épicos relevantes para eles e suas equipes e links de favoritos para salvar as configurações de pesquisa.


Barra de pesquisa e filtro de roteiro épico


Documentação do roteiro


Discussões sobre API (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


As discussões (ramificações de comentários) aparecem em muitas partes da interface da web do GitLab: em tarefas, solicitações de mesclagem, épicos, snippets e confirmações. Nesta versão, expandimos os recursos da API para que você possa acessar e gerenciar discussões diretamente através da API do GitLab, o que tornará seus fluxos de trabalho ainda mais flexíveis.


Documentação de discussão da API


SAST para PHP e Java Gradle (ULTIMATE, GOLD)


O teste de segurança de aplicativos estáticos (SAST) só é eficaz quando seu projeto usa uma linguagem de programação suportada por uma das ferramentas do GitLab. É por isso que aumentamos o número desses idiomas a cada lançamento, adicionando o mais popular deles.


No GitLab 10.8, os projetos escritos em PHP e Java com Gradle podem ser verificados automaticamente quanto a vulnerabilidades de segurança. Para fazer isso, você nem precisa determinar o idioma - ele é determinado automaticamente em tempo de execução.


SAST para PHP e Java Gradle


Documentação SAST


Definição de variáveis ​​para transportadores manuais (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, Silver, Gold)


Geralmente, é necessário executar uma única execução de IC com configurações únicas para testar um caso de uso específico. Por exemplo, podemos aplicar temporariamente uma estratégia de implantação específica ou excluir uma etapa específica do processo de criação do aplicativo.


O GitLab 10.8 oferece a capacidade de definir variáveis ​​únicas especiais ao iniciar o pipeline manualmente. Você não precisará alterar as variáveis ​​de todo o projeto para executar uma única execução específica, o que facilita muito a execução de testes personalizados com suas próprias configurações.


Especificar variáveis ​​para pipelines manuais


Documentação de lançamento do pipeline


A consolidação de mesclagem no widget de solicitação de mesclagem (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Continuamos trabalhando em pequenos recursos do GitLab que são de grande importância ao usá-lo. Essa mudança é um bom exemplo. Se você usar confirmações de mesclagem em seu projeto, um link para a consolidação de mesclagem aparecerá no widget de solicitação de mesclagem imediatamente após a mesclagem. Por esse link, você pode ir diretamente para o commit de mesclagem.


Para muitos fluxos de trabalho, será útil poder ir direto para o commit de mesclagem. Por exemplo, algumas equipes transferem essas confirmações de mesclagem para liberar ramificações ou marcá-las para teste ou implantação na produção. Com essa alteração, será mais fácil descobrir se a solicitação de mesclagem faz parte da ramificação que você está prestes a implantar.


Confirmar mesclagem no widget de solicitação de mesclagem


Documentação de solicitação de mesclagem


Notas do sistema para adicionar peso à tarefa (STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)


O peso da tarefa permite mapear um valor numérico específico para a tarefa GitLab, indicando seu tamanho. Em particular, as equipes usam pesos de tarefas para planejar o desenvolvimento ao trabalhar em metodologias ágeis ou outras metodologias ágeis de desenvolvimento. Nesta versão, adicionamos notas do sistema que aparecem toda vez que você adiciona ou altera o peso de uma tarefa. Isso ajudará os membros da equipe a acompanhar as alterações para avaliar o trabalho, além de simplesmente saber quando a primeira avaliação foi feita.


Nota do sistema para adicionar peso ao problema


Documentação de Pesos de Tarefas


Peso da tarefa e status de bloqueio na exportação de CSV (STARTER, PREMIUM, ULTIMATE, BRONZE, SILVER, GOLD)


Nesta versão, adicionamos o peso da tarefa e seu status de bloqueio à exportação de CSV. Isso fornece ainda mais informações sobre tarefas, para que você possa fazer qualquer tipo de análise e fluxo de trabalho fora do GitLab.


Documentação de exportação CSV


Solicitações de mesclagem do GitLab no Jira Development Panel (PREMIUM, ULTIMATE, SILVER, GOLD)


Nesta versão, aprimoramos a integração com o Jira Development Panel: agora ele inclui solicitações de mesclagem do GitLab. Isso significa que, se você usar integração especial, as solicitações de mesclagem também serão exibidas na barra lateral da tarefa Jira relacionada, além das confirmações e ramificações do Gitlab.


Observe que, na interface do Jira, as solicitações de mesclagem são chamadas de "solicitações de recebimento".


Solicitações de mesclagem do GitLab no Jira Development Panel


Documentação de integração do painel de desenvolvimento do GitLab Jira


Notificações por e-mail para comentários sobre épicos (ULTIMATE, GOLD)


No lançamento anterior, introduzimos tópicos de comentários para épicos. Nesta versão, tornamos o trabalho juntos em épicos ainda mais semelhante ao restante do GitLab - adicionando notificações por email. Como anteriormente em tarefas e solicitações de mesclagem, você receberá notificações por email (especificadas por você nas configurações do GitLab) após a atividade correspondente na epopeia. Por exemplo, quando um membro da equipe menciona você em uma descrição de uma epopeia ou comenta sobre ela, você receberá uma notificação se definir as notificações para um grupo dessa epopeia para o nível Participar ou superior.


Notificações épicas por email


Documentação épica


Exibição aprimorada de descrições longas de confirmação (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Uma boa descrição de confirmação que explica por que a alteração foi necessária ajuda a fazer pequenas confirmações atômicas e simplifica a leitura dos logs de confirmação para o restante da equipe. Melhoramos a exibição de descrições longas, tornando-se ainda mais fácil lê-las!


Exibição aprimorada de mensagens de confirmação longas


Suporte para snippets integrados (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Os trechos são úteis para discutir parte do código. Agora você pode incorporar snippets públicos no seu site. Isso ajuda muito na documentação, complementando uma postagem de blog com exemplos de código ou em um site pessoal. Obrigado por esta oportunidade Haseeb .


Documentação de suporte do snippet embutido


API para linguagens de projeto (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Com a nova API para idiomas, você pode coletar estatísticas sobre os idiomas do projeto. Isso pode ser útil para relatórios ou estudos - por exemplo, para entender quais linguagens de programação são usadas com mais frequência em sua organização ou em um projeto de código aberto no GitLab.com. Obrigado, Roger , pela sua contribuição!


Documentação da API para idiomas do projeto


Corredor GitLab para grupos (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Os corredores do GitLab têm dois tipos de configurações: para toda a instância (compartilhada) ou no nível do projeto (específico). No entanto, às vezes é necessário fornecer um conjunto de corredores para um grupo inteiro de projetos sem dar a ninguém acesso externo. No GitLab.com, por exemplo, isso funciona bem devido ao vínculo direto entre grupos e organizações.


A partir do GitLab 10.8, você pode conectar o seu GitLab Runner a um grupo específico - e cada projeto desse grupo receberá recursos de CI / CD sem nenhuma configuração adicional. E novos projetos receberão todos os benefícios dos participantes do grupo logo após serem criados. Obrigado Alexis por esse recurso.


Corredores do Gitlab para grupos


Documentação de configuração dos corredores do GitLab


Suporte à política de ambiente de teste para DevOps automáticos (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


Antes desta versão, o Auto DevOps usava um modelo de implantação contínua por padrão: um push na production ocorria automaticamente toda vez após o início de um pipeline na ramificação master . Isso é muito útil, mas às vezes para a integridade do aplicativo ou acessibilidade do ambiente de produção, você precisa usar um ambiente de teste adicional. Somente depois de passar todas as verificações, é possível iniciar manualmente a implantação na produção.


O modelo de DevOps automático suportava anteriormente esse recurso, mas não estava ativado por padrão. Se alguém quisesse usar a execução em um ambiente de teste, precisaria criar um .gitlab-ci.yml separado.


A partir do GitLab 10.8, os modelos de Auto DevOps permitirão que os usuários ativem o staging usando uma variável de ambiente. Você pode especificar STAGING_ENABLED para todo o grupo, para um projeto ou mesmo para um lançamento específico. A implantação na production precisará ser iniciada manualmente - e você pode fazê-lo no momento certo.


Suporte à Política do Ambiente de Preparação para DevOps Automáticos


Documentação da política de implantação automática de DevOps


Os modelos de projeto agora funcionam com DevOps automáticos (CORE, STARTER, PREMIUM, ULTIMATE, FREE, BRONZE, SILVER, GOLD)


No GitLab, você pode facilmente iniciar um projeto com um idioma específico: basta usar modelos. Isso permitirá que você inicie rapidamente um novo aplicativo e depois o personalize de acordo com suas necessidades.


O GitLab 10.8 inclui versões avançadas dos modelos Rails, Spring e Express, para que você possa aproveitar ao máximo o Auto DevOps ao criar novos projetos. Usando esses modelos avançados, você pode passar da ideia para a produção em minutos.


Modelos de projeto agora funcionando com DevOps automáticos


Documentação do modelo baseado em projeto


Aprimoramentos geográficos (PREMIUM, ULTIMATE, SILVER, GOLD)


  • O Geo vem com o Git 2.16.3, que reduzirá significativamente o tempo de sincronização dos repositórios com um grande número de links.
  • Após a clonagem inicial do repositório, o nó Geo secundário executará git pack-objects para liberar espaço em disco. Também executará regularmente a coleta de lixo ( git gc ).
  • Com as verificações do repositório ativadas, o Geo executa periodicamente o git fsck em cada repositório do nó secundário.
  • As métricas do Geo Prometheus foram aprimoradas: ficou mais fácil encontrar repositórios com somas de verificação incompatíveis.

Documentação geográfica




Notas de versão detalhadas e instruções de atualização / instalação podem ser encontradas na publicação original em inglês: GitLab 10.8 lançado com lançamentos incrementais, além de espelhamento de código-fonte aberto .


A tradução do inglês foi feita por rishavant e sgnl_05 .

Source: https://habr.com/ru/post/pt413485/


All Articles