comum DevOps Condições

Aqui está uma lista de comuns DevOps termos que são obrigatórios saber para ser eficaz na empresa DevOps.

Conteúdo

Teste de aceitação: normalmente, testes de alto nível de todo o sistema são executados para determinar se a qualidade geral dos recursos novos e existentes é boa o suficiente para que o sistema vá para produção.

Aplicação release orquestração (ARO): ferramentas, scripts ou produtos que instalam automaticamente e configuram corretamente uma determinada versão de um aplicativo em um ambiente de destino, pronto para uso. Também conhecido como “aplicativo release automação” (ARA) ou “entrega contínua e release automação” (CDRA).

Teste de caixa preta: uma prática de teste ou garantia de qualidade que não assume nenhum conhecimento do funcionamento interno do sistema que está sendo testado e que, portanto, tenta verificar comportamento ou estado externo em vez de interno.

Agente de construção: um tipo de agente utilizado em integração contínua que pode ser instalado localmente ou remotamente em relação ao servidor de integração contínua. Ele envia e recebe mensagens sobre como lidar com compilações de software.

Automação de build: ferramentas ou estruturas que permitem que o código-fonte seja compilado automaticamente em binários liberáveis. Geralmente inclui testes de unidade em nível de código para garantir que partes individuais do código se comportem conforme o esperado.

Configuração como código: uma técnica de gerenciamento de configuração do sistema em que a configuração de máquinas, aplicativos, trabalhos etc. é especificada em código e mantida no controle de versão, permitindo que as equipes configurem aplicativos/sistemas/trabalhos em segundos.

Desvio de configuração: um termo para a tendência geral das configurações de software e hardware se desviarem ou se tornarem inconsistentes com a versão do modelo do sistema devido a alterações ad hoc manuais (como hotfixes) que não são introduzidas de volta no modelo.

Recipiente: semelhantes, mas mais leves do que uma máquina virtual, os contêineres são pacotes executáveis ​​autônomos que contêm tudo o que é necessário para executar um software: código, tempo de execução, ferramentas do sistema, bibliotecas do sistema, configurações e assim por diante.

Entrega contínua (CD): um conjunto de processos e práticas que remove radicalmente o desperdício de seu processo de produção de software, permite a entrega mais rápida de funcionalidades de alta qualidade e estabelece um ciclo de feedback rápido e eficaz entre sua empresa e seus usuários.

Integração contínua (CI)uma prática de desenvolvimento que exige que os desenvolvedores integrem o código em um repositório compartilhado várias vezes ao dia. Cada check-in é verificado por uma compilação automatizada, permitindo que as equipes detectem problemas antecipadamente.

Pipeline de entrega: uma sequência de tarefas orquestradas e automatizadas que implementam o entrega de software processo para uma nova versão do aplicativo. Cada etapa do pipeline tem como objetivo aumentar o nível de confiança na nova versão até o ponto em que uma decisão de avançar/não avançar possa ser tomada. Um pipeline de entrega pode ser considerado o resultado da otimização do release processo.

DevOps – desenvolvimento + operações: um portmanteau de desenvolvimento e operações, DevOps é um conjunto de processos, práticas e ferramentas que melhoram a comunicação, a colaboração e os processos entre as várias funções no ciclo de desenvolvimento de software, resultando na entrega de um software melhor com velocidade e estabilidade.

DevSecOps: a prática de integrar a segurança no DevOps processo.

Ciclos de feedback: a criação de feedback rápido e contínuo entre as operações e o desenvolvimento no início do processo de entrega de software é um princípio importante que sustenta DevOps. Faça isso não apenas ajuda a garantir que você está dando aos clientes o que eles realmente querem, mas também alivia a carga de desenvolvimento, reduz o medo de deploymento, cria um melhor relacionamento entre desenvolvimento e operações e aumenta a produtividade.

Governança: em TI, a governação refere-se ao processo pelo qual as organizações avaliam e garantem que os seus investimentos tecnológicos têm o desempenho esperado e não introduzem novos riscos. Um processo formal de governança também ajuda as empresas a garantir que as atividades de TI estejam alinhadas com os objetivos de negócios, ao mesmo tempo que garante que tudo esteja em conformidade com padrões comuns, como OWASP, PCI 3.2 e CWE/SANS.

Infraestrutura como código: uma técnica de gerenciamento de configuração de sistema na qual máquinas, dispositivos de rede, sistemas operacionais, middleware, etc. são especificados em um formato totalmente automatizável. A especificação ou “blueprint” é considerada como código que é executado por ferramentas de provisionamento, mantido em controle de versão e geralmente sujeito às mesmas práticas usadas para desenvolvimento de código de aplicativo.

Infraestrutura como serviço (IaaS): máquinas virtualizadas hospedadas em nuvem, geralmente cobradas com base no “pagamento conforme o uso”. Os usuários têm controle total das máquinas, mas precisam instalar e configurar qualquer middleware e aplicativos necessários.

Jenkins: Jenkins, o servidor de automação de código aberto escrito em Java, tem sido o padrão de fato para integração contínua. Com Jenkins, os desenvolvedores podem integrar seu código em um repositório compartilhado várias vezes ao dia. À medida que as organizações procuram dimensionar seus processos de entrega de software, muitas vezes descobrem que o Jenkins requer muitos scripts e/ou manutenção de fluxos de trabalho e que precisam expandir para a entrega contínua. A entrega contínua não apenas utiliza ferramentas para integração contínua, mas também para integração de ponta a ponta release orquestração, automação de teste, segurança, gerenciamento de serviços de TI e muito mais.

Ler: “manufatura enxuta” ou “produção enxuta” é uma abordagem ou metodologia que visa reduzir o desperdício em um processo de produção, concentrando-se na preservação do valor. Em grande parte derivados de práticas desenvolvidas pela Toyota na fabricação de automóveis, os conceitos enxutos foram aplicados ao desenvolvimento de software como parte de metodologias Agile. O mapa do fluxo de valor, que tenta identificar visualmente as etapas valiosas e inúteis do processo, é uma ferramenta lean essencial.

Requisitos não funcionais (NFRs): a especificação das qualidades do sistema, como facilidade de uso, clareza de design, latência, velocidade e capacidade de lidar com um grande número de usuários, que descrevem com que facilidade ou eficácia uma funcionalidade pode ser usada, em vez de simplesmente se ela existe. Essas características também podem ser abordadas e aprimoradas usando o loop de feedback de entrega contínua.

Código aberto: refere-se a um programa ou aplicativo com código-fonte que pode ser modificado por qualquer pessoa. Há uma variedade de estruturas de código aberto, como AngularJS e React, ferramentas de código aberto, como Gradle e Jenkins, e bibliotecas de código aberto, como JHipster, que podem ser usadas para melhorar o desenvolvimento de software específico e deployprocessos de mento. Em um ambiente empresarial complexo, um DevOps plataforma pode integrar ferramentas de código aberto e simplificá-las no pipeline de entrega.

Plataforma como serviço (PaaS): tempos de execução de aplicativos hospedados na nuvem, geralmente cobrados com base no “pagamento conforme o uso”. Os clientes fornecem o código do aplicativo e definições de configuração limitadas, enquanto o middleware, bancos de dados e assim por diante fazem parte do tempo de execução fornecido.

Provisionamento: o processo de preparação de novos sistemas para os usuários. Em um cenário de entrega contínua, esse trabalho normalmente é feito por equipes de desenvolvimento ou teste. Os sistemas são geralmente virtualizados e instanciados sob demanda. A configuração das máquinas para instalar sistemas operacionais, middleware e assim por diante é tratada por ferramentas automatizadas de gerenciamento de configuração do sistema, que também verificam se a configuração desejada é mantida.

Teste de regressão: teste do sistema de ponta a ponta para verificar se as alterações em um aplicativo não afetaram negativamente a funcionalidade existente.

Release de grupos: o processo de gerenciamento de software releases desde o estágio de desenvolvimento até o software real release si.

Deslocando para a esquerdacom o aumento da velocidade de entrega, aumentam os riscos de segurança e os problemas de conformidade em diferentes aplicativos, equipes e ambientes. Deslocar para a esquerda refere-se à integração de avaliação de risco, teste de segurança e processos de avaliação de conformidade no início do pipeline de entrega. Isso torna mais barato e mais fácil lidar com potenciais release atrasos ou falhas, vulnerabilidades de segurança que ameaçam a produção e violações de governança de TI que resultam em multas caras.

Desenvolvimento orientado a testes (TDD): uma prática de desenvolvimento na qual pequenos testes para verificar o comportamento de um pedaço de código são escritos antes do próprio código. Os testes falham inicialmente e o objetivo do(s) desenvolvedor(es) é adicionar código para torná-los bem-sucedidos.

Teste de unidade: nível de código (ou seja, não requer um sistema de ponta a ponta totalmente instalado para ser executado) para verificar o comportamento de partes individuais do código. O desenvolvimento orientado a testes faz uso extensivo de testes de unidade para descrever e verificar o comportamento pretendido.

Mapeamento do fluxo de valor: uma técnica de melhoria de visualização de processo muito usada em manufatura enxuta e abordagens de engenharia. Os mapas de fluxo de valor são usados ​​para identificar as etapas essenciais do processo versus o “desperdício” que pode ser progressivamente eliminado do processo.

Sistema de controle de versão (VCS): um sistema que registra alterações em um arquivo ou conjunto de arquivos ao longo do tempo para que você possa recuperar versões específicas posteriormente. (GitHub, GitLab, Subversion, etc.)

Virtualização: uma abordagem de gerenciamento de sistemas na qual usuários e aplicativos não usam máquinas físicas, mas sim sistemas simulados em execução em hardware real, “real”. Essas “máquinas virtuais” podem ser criadas, iniciadas, interrompidas, clonadas e descartadas automaticamente em questão de segundos, proporcionando grande flexibilidade às operações.

Teste de caixa branca: uma prática de teste ou garantia de qualidade baseada na verificação do funcionamento correto dos componentes internos de um sistema, examinando seu comportamento (interno) e seu estado durante a execução.

Tolerância zero: como em, tolerância zero para falhas na produção. Os clientes têm tolerância zero para falhas. A deployfalha de gerenciamento ou qualquer tipo de interrupção de serviço para software voltado para o cliente pode ter um impacto catastrófico em uma organização, especialmente aquelas em setores altamente regulamentados.