DevOps Flashcards
O que é JENKINS?
É um servidor de automação independente e de código aberto que pode ser usado para automatizar todos os tipos de tarefas relacionadas à criação, teste e distribuição ou implementação de software.
Quais são as funcionalidades do JENKINS?
- Gerar relatórios de testes.
- Integrar com muitos sistemas diferentes de controle de versão.
- Enviar para vários repositórios de artefatos.
- Implantar diretamente em ambientes de produção ou teste.
- Notificar os participantes do status de build
Qual o fluxo do JENKINS?
- Desenvolvedores -> Código e testes -> -> Repositório -> JEKINS
Depois vai em paralelo para os seguintes:
* Artifact Repository
* Testing reports
* Deployment
O que é SONARQUBE?
O SonarQube é uma plataforma de software livre desenvolvida para gerenciar a qualidade do código-fonte.
Quais são as funcionalidades do SONARQUBE?
Geração de relatórios da base de código em relação a:
- código duplicado;
- padrões de codificação;
- testes unitários;
- complexidade de código;
- erros potenciais;
- comentário;
- design e arquitetura.
Portão de qualidade (quality gate): esse conceito central do SonarQube é um conjunto de requisitos que informa se uma nova versão de um projeto pode ou não entrar em produção. O quality gate padrão do SonarQube verifica o que aconteceu no período e falha se o novo código piorar nesse período.
Código com “mau cheiro” (code smells): o código “fedido” faz (provavelmente) o que deveria, mas será difícil de manter.
Vulnerabilidade de segurança: o SonarQube ajuda a encontrar e rastrear as inseguranças no código.
O que é Artifactory?
O JFrog Artifactory é um gerenciador universal de artefatos binários usado na integração contínua (CI)/fluxo de trabalho de entrega contínua (CD) no processo de DevOps.
Qual o fluxo do Artifactory?
Desenvolvedores -> Repositório -> JENKINS -> Artifactory
Quais as práticas/pipeline do DevOps?
Integração contínua (CI): Promove a colaboração entre a equipe, automatizando a integração de alterações de código. Cada integração é verificada por uma build automatizada (incluindo testes) para detectar erros rapidamente.
Entrega contínua (CD): Automatiza a preparação e implantação de alterações de código. Permitindo que as equipes de desenvolvimento liberem novas funcionalidades e correções de bugs de forma mais rápida e eficiente.
Automação: Automatiza o ciclo de vida do desenvolvimento de software, reduzindo erros e aumentando a produtividade
Monitoramento: Monitora o desempenho do sistema em tempo real para identificar e corrigir problemas rapidamente
Gerenciamento de configuração: Controla e gerencia as configurações de software e infraestrutura
Testes automatizados: Testa o código de forma automatizada para garantir a qualidade
Infraestrutura como código (IaC): Usa ferramentas para automatizar a infraestrutura
Virtualização e conteinerização: Usa ferramentas para virtualizar e conteinerizar o software
Quais os tipos de pipelines do JENKINS?
Declarativo: Uma sintaxe mais estruturada e simples para definir pipelines. É uma versão avançada do pipeline com script.
Ex.:
pipeline { agente quaisquer opções { retry(3) skipStagesAfterUnstable() } estágios { estágio('Construir') { etapas { sh 'cmake' sh 'criar sampleapp' } } estágio('Teste'){ etapas { sh './testcasescript' sh './verifytestoutputscript' } } estágio('Implantar') { etapas { sh './deployscript' } } } }
Com script: Uma sintaxe mais flexível e poderosa que usa a linguagem de programação Groovy. Uma definição de pipeline com script começa com a palavra-chave node.
Ex.:
node { stage('Build') { echo 'Building....' } stage('Test') { echo 'Testing....' } stage('Deploy') { echo 'Deploying....' } }
Multibranch: Um tipo de pipeline que usa o pipeline declarativo como código.
Shared Library: Um tipo de pipeline que oferece capacidades distintas.