comum DevOps Condições
Aqui está uma lista de comuns DevOps Termos essenciais para ser eficaz no mundo empresarial. DevOps.
Teste de aceitaçãoNormalmente, são testes de alto nível de todo o sistema, realizados para determinar se a qualidade geral dos recursos novos e existentes é suficiente para que o sistema entre em produção.
Orquestração de lançamento de aplicativos (ARO): Ferramentas, scripts ou produtos que instalam e configuram automaticamente e corretamente uma determinada versão de um aplicativo em um ambiente de destino, pronta para uso. Também conhecido como "automação de lançamento de aplicativos" (ARA) ou "automação de entrega e lançamento contínuos" (CDRA).
Testes de caixa preta: Uma prática de teste ou garantia de qualidade que não pressupõe conhecimento do funcionamento interno do sistema que está sendo testado e que, portanto, tenta verificar o comportamento ou estado externo em vez do interno.
Construir agente: Um tipo de agente usado na 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 o processamento de builds de software.
Automação de build: Ferramentas ou frameworks que permitem que o código-fonte seja compilado automaticamente em binários prontos para publicação. Geralmente incluem testes unitários em nível de código para garantir que cada parte do código se comporte conforme o esperado.
Configuração como código: Uma técnica de gerenciamento de configuração de sistemas na qual a configuração de máquinas, aplicativos, tarefas, etc., é especificada em código e mantida sob controle de versão, permitindo que as equipes configurem aplicativos/sistemas/tarefas em segundos.
Desvio de configuração: Um termo que descreve a tendência geral das configurações de software e hardware de se desviarem, ou se tornarem inconsistentes, em relação à versão de referência do sistema devido a alterações manuais pontuais (como correções de erros) que não são reinseridas no modelo.
Recipiente: Semelhantes, porém mais leves que uma máquina virtual, os contêineres são pacotes executáveis independentes que contêm tudo o que é necessário para executar um software: código, ambiente 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 elimina radicalmente o desperdício do 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 a sua empresa e os seus utilizadores.
Integração contínua (IC): 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 integração é então verificada por uma compilação automatizada, permitindo que as equipes detectem problemas precocemente.
Fluxo de entrega: uma sequência de tarefas orquestradas e automatizadas que implementam o entrega de software processo para uma nova versão de um aplicativo. Cada etapa no pipeline visa aumentar o nível de confiança na nova versão até o ponto em que uma decisão de prosseguir ou não com o lançamento possa ser tomada. Um pipeline de entrega pode ser considerado o resultado da otimização do processo de lançamento de uma organização.
DevOps – desenvolvimento + operações: uma junção das palavras 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 diversas funções no ciclo de desenvolvimento de software, resultando na entrega de software melhor, com rapidez e estabilidade.
DevSecOps: a prática de integrar a segurança ao DevOps processo.
Ciclos de feedback: Criar um feedback rápido e contínuo entre as áreas de operações e desenvolvimento logo no início do processo de entrega de software é um princípio fundamental. DevOpsFaça isso não só ajuda a garantir que você está oferecendo aos clientes o que eles realmente desejam, como também alivia a carga de desenvolvimento, reduz o medo da implantação, cria um melhor relacionamento entre desenvolvimento e operações e aumenta a produtividade.
Governance: Em TI, governança refere-se ao processo pelo qual as organizações avaliam e garantem que seus investimentos em tecnologia estejam performando conforme o esperado e não introduzindo novos riscos. Um processo formal de governança também ajuda as empresas a garantir que as atividades de TI estejam alinhadas aos objetivos de negócios, além de assegurar 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 sistemas na qual máquinas, dispositivos de rede, sistemas operacionais, middleware, etc., são especificados em um formato totalmente automatizável. A especificação ou "projeto" é considerada um código que é executado por ferramentas de provisionamento, mantido em controle de versão e geralmente sujeito às mesmas práticas usadas para o desenvolvimento de código de aplicativos.
Infraestrutura como serviço (IaaS): Máquinas virtuais hospedadas na nuvem, geralmente cobradas no modelo "pague conforme o uso". Os usuários têm controle total das máquinas, mas precisam instalar e configurar por conta própria qualquer middleware e aplicativos necessários.
Jenkins: O Jenkins, servidor de automação de código aberto escrito em Java, tem sido, por muito tempo, o padrão de facto para integração contínua. Com o Jenkins, os desenvolvedores podem integrar seu código em um repositório compartilhado várias vezes ao dia. À medida que as organizações buscam escalar seus processos de entrega de software, frequentemente descobrem que o Jenkins exige muita criação de scripts e/ou manutenção de fluxos de trabalho, e que precisam migrar para a entrega contínua. A entrega contínua não apenas utiliza ferramentas para integração contínua, mas também para orquestração de releases de ponta a ponta, automação de testes, segurança, gerenciamento de serviços de TI e muito mais.
Ler: A "manufatura enxuta", ou "produção enxuta", é uma abordagem ou metodologia que visa reduzir o desperdício em um processo produtivo, concentrando-se na preservação do valor. Em grande parte derivada das práticas desenvolvidas pela Toyota na fabricação de automóveis, os conceitos de produção enxuta foram aplicados ao desenvolvimento de software como parte das metodologias Agile. O mapa do fluxo de valor, que busca identificar visualmente as etapas de processo valiosas e aquelas que geram desperdício, é uma ferramenta fundamental da produção enxuta.
Requisitos não funcionais (RNFs): A especificação das qualidades do sistema, como facilidade de uso, clareza do design, latência, velocidade e capacidade de lidar com um grande número de usuários, descreve a facilidade e a eficácia com que uma funcionalidade pode ser usada, em vez de simplesmente verificar se ela existe. Essas características também podem ser abordadas e aprimoradas usando o ciclo 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. Existem diversos frameworks 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 aprimorar processos específicos de desenvolvimento e implantação de software. Em um ambiente empresarial complexo, um DevOps A plataforma pode integrar ferramentas de código aberto e simplificá-las no fluxo de entrega.
Plataforma como serviço (PaaS): Ambientes de execução de aplicativos hospedados na nuvem, geralmente cobrados no modelo "pague conforme o uso". Os clientes fornecem o código do aplicativo e configurações limitadas, enquanto o middleware, os bancos de dados e outros componentes fazem parte do ambiente 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 realizado pelas equipes de desenvolvimento ou de teste. Os sistemas são geralmente virtualizados e instanciados sob demanda. A configuração das máquinas para instalar sistemas operacionais, middleware e outros componentes é gerenciada por ferramentas automatizadas de gerenciamento de configuração de sistemas, que também verificam se a configuração desejada está sendo mantida.
Teste de regressão: Testar o 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 versões de software, desde a fase de desenvolvimento até o lançamento propriamente dito.
Deslocando-se para a esquerda: Com o aumento da velocidade de entrega, crescem também os riscos de segurança e os problemas de conformidade em diferentes aplicações, equipes e ambientes. A estratégia "shift left" consiste em integrar os processos de avaliação de riscos, testes de segurança e avaliação de conformidade mais cedo no pipeline de entrega. Isso torna mais barato e fácil lidar com possíveis atrasos ou falhas de lançamento, vulnerabilidades de segurança que ameaçam a produção e violações de governança de TI que resultam em multas elevadas.
Desenvolvimento orientado a testes (TDD): Uma prática de desenvolvimento na qual pequenos testes para verificar o comportamento de um trecho de código são escritos antes do próprio código. Os testes inicialmente falham, e o objetivo do(s) desenvolvedor(es) é então adicionar código para que eles sejam bem-sucedidos.
Teste de unidade: O desenvolvimento orientado a testes (TDD) utiliza testes de código (ou seja, não requer um sistema completo instalado de ponta a ponta para ser executado) para verificar o comportamento de partes individuais do código. O TDD faz uso extensivo de testes unitários para descrever e verificar o comportamento esperado.
Mapeamento do fluxo de valor: Uma técnica de visualização de processos amplamente utilizada em abordagens de manufatura enxuta e engenharia. Os mapas de fluxo de valor são usados para identificar etapas essenciais do processo versus "desperdícios" que podem ser progressivamente eliminados.
Sistema de controle de versão (VCS): Um sistema que registra as alterações feitas em um arquivo ou conjunto de arquivos ao longo do tempo, permitindo que você recupere 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 utilizam máquinas físicas, mas sim sistemas simulados executados em hardware real. Essas "máquinas virtuais" podem ser criadas, iniciadas, interrompidas, clonadas e descartadas automaticamente em questão de segundos, proporcionando enorme flexibilidade às operações.
Teste de caixa branca: Uma prática de teste ou garantia de qualidade que se baseia na verificação do funcionamento correto dos componentes internos de um sistema, examinando seu comportamento e estado (internos) durante sua execução.
Tolerância zero: Ou seja, tolerância zero para falhas em produção. Os clientes têm tolerância zero para falhas. Uma falha na implementação ou qualquer tipo de interrupção de serviço em softwares voltados para o cliente pode ter um impacto catastrófico em uma organização, especialmente aquelas em setores altamente regulamentados.