Algunos DevOps Términos

Aquí hay una lista de comunes DevOps términos que son imprescindibles para ser efectivos en la empresa DevOps.

Índice del contenido

Test de aceptación: normalmente se realizan pruebas de alto nivel de todo el sistema para determinar si la calidad general de las funciones nuevas y existentes es lo suficientemente buena para que el sistema entre en producción.

Aplicación release orquestación (ARO): herramientas, scripts o productos que instalan automáticamente y configuran correctamente una versión determinada de una aplicación en un entorno de destino, lista para usar. También conocida como “aplicación release automatización” (ARA) o “entrega continua y release automatización” (CDRA).

Pruebas de caja negra: una práctica de prueba o garantía de calidad que no asume ningún conocimiento del funcionamiento interno del sistema que se está probando y que, por lo tanto, intenta verificar el comportamiento o estado externo en lugar de interno.

Agente de construcción: un tipo de agente utilizado en la integración continua que se puede instalar de forma local o remota en relación con el servidor de integración continua. Envía y recibe mensajes sobre el manejo de compilaciones de software.

Automatización de compilación: herramientas o marcos que permiten que el código fuente se compile automáticamente en archivos binarios liberables. Por lo general, incluye pruebas unitarias a nivel de código para garantizar que las piezas de código individuales se comporten como se espera.

Configuración como código: una técnica de gestión de la configuración del sistema en la que la configuración de máquinas, aplicaciones, trabajos, etc. se especifica en el código y se mantiene en el control de versiones, lo que permite a los equipos configurar aplicaciones/sistemas/trabajos en segundos.

Desviación de la configuración: un término para la tendencia general de las configuraciones de software y hardware a desviarse o volverse inconsistentes con la versión de la plantilla del sistema debido a cambios manuales ad hoc (como revisiones) que no se vuelven a introducir en la plantilla.

Envase: similares pero más livianos que una máquina virtual, los contenedores son paquetes ejecutables independientes que contienen todo lo necesario para ejecutar una pieza de software: código, tiempo de ejecución, herramientas del sistema, bibliotecas del sistema, configuraciones, etc.

Entrega continua (CD): un conjunto de procesos y prácticas que elimina radicalmente el desperdicio de su proceso de producción de software, permite una entrega más rápida de funcionalidad de alta calidad y establece un ciclo de retroalimentación rápido y efectivo entre su empresa y sus usuarios.

Integración continua (CI)una práctica de desarrollo que requiere que los desarrolladores integren código en un repositorio compartido varias veces al día. Luego, cada registro se verifica mediante una compilación automatizada, lo que permite a los equipos detectar problemas con anticipación.

Tubería de entrega: una secuencia de tareas orquestadas y automatizadas que implementan el entrega de software proceso para una nueva versión de la aplicación. Cada paso del proceso tiene como objetivo aumentar el nivel de confianza en la nueva versión hasta el punto en que se pueda tomar una decisión de ir o no. Un canal de entrega puede considerarse el resultado de optimizar la capacidad de una organización. release .

DevOps – desarrollo + operaciones: un acrónimo de desarrollo y operaciones, DevOps es un conjunto de procesos, prácticas y herramientas que mejoran la comunicación, la colaboración y los procesos entre los diversos roles en el ciclo de desarrollo de software, lo que da como resultado la entrega de un mejor software con rapidez y estabilidad.

DevSecOps: la práctica de integrar la seguridad en el DevOps .

Circuitos de retroalimentacion: crear una retroalimentación rápida y continua entre las operaciones y el desarrollo al principio del proceso de entrega de software es un principio fundamental que sustenta DevOps. Hacerlo no solo ayuda a asegurarse de que está brindando a los clientes lo que realmente quieren, sino que aligera la carga del desarrollo, reduce el miedo a deployment, crea una mejor relación entre desarrollo y operaciones, y aumenta la productividad.

Gobernancia: En TI, la gobernanza se refiere al proceso mediante el cual las organizaciones evalúan y garantizan que sus inversiones en tecnología estén funcionando como se espera y no introduzcan nuevos riesgos. Un proceso de gobierno formal también ayuda a las empresas a garantizar que las actividades de TI estén alineadas con los objetivos comerciales, al mismo tiempo que garantiza que todo cumpla con estándares comunes, como OWASP, PCI 3.2 y CWE/SANS.

Infraestructura como código: una técnica de gestión de la configuración del sistema en la que las máquinas, los dispositivos de red, los sistemas operativos, el middleware, etc. se especifican en un formato totalmente automatizable. La especificación o “modelo” se considera un código que se ejecuta mediante herramientas de aprovisionamiento, se mantiene bajo control de versiones y, en general, está sujeto a las mismas prácticas que se utilizan para el desarrollo del código de la aplicación.

Infraestructura como servicio (IaaS): Máquinas virtualizadas alojadas en la nube, generalmente facturadas sobre una base de "pago por uso". Los usuarios tienen el control total de las máquinas, pero necesitan instalar y configurar el software intermedio y las aplicaciones necesarias por sí mismos.

Jenkins: Jenkins, el servidor de automatización de código abierto escrito en Java, ha sido durante mucho tiempo el estándar de facto para la integración continua. Con Jenkins, los desarrolladores pueden integrar su código en un repositorio compartido varias veces al día. A medida que las organizaciones buscan escalar sus procesos de entrega de software, a menudo descubren que Jenkins requiere demasiados scripts y/o mantenimiento de flujos de trabajo, y que necesitan expandirse a la entrega continua. La entrega continua no solo aprovecha las herramientas para la integración continua, sino también para la integración integral. release orquestación, automatización de pruebas, seguridad, gestión de servicios de TI y más.

Lean: La "fabricación ajustada" o "producción ajustada" es un enfoque o metodología que tiene como objetivo reducir el desperdicio en un proceso de producción centrándose en preservar el valor. Derivados en gran medida de las prácticas desarrolladas por Toyota en la fabricación de automóviles, los conceptos lean se han aplicado al desarrollo de software como parte de metodologías ágiles. El mapa de flujo de valor, que intenta identificar visualmente los pasos del proceso valiosos y derrochadores, es una herramienta lean clave.

Requisitos no funcionales (NFR): la especificación de las cualidades del sistema, como la facilidad de uso, la claridad del diseño, la latencia, la velocidad y la capacidad para manejar un gran número de usuarios, que describen la facilidad o eficacia con la que se puede usar una función, en lugar de simplemente si existe. Estas características también se pueden abordar y mejorar mediante el ciclo de retroalimentación de entrega continua.

Fuente abierta: se refiere a un programa o aplicación con código fuente que puede ser modificado por cualquier persona. Hay una variedad de marcos de código abierto, como AngularJS y React, herramientas de código abierto, como Gradle y Jenkins, y bibliotecas de código abierto, como JHipster, que se pueden usar para mejorar el desarrollo de software específico y deployprocesos de ment. En un entorno empresarial complejo, un DevOps La plataforma puede integrar herramientas de código abierto y simplificarlas en el canal de entrega.

Plataforma como servicio (PaaS): Tiempos de ejecución de aplicaciones alojadas en la nube, generalmente facturados sobre una base de "pago por uso". Los clientes proporcionan el código de la aplicación y los ajustes de configuración limitados, mientras que el middleware, las bases de datos, etc., forman parte del tiempo de ejecución proporcionado.

Aprovisionamiento: el proceso de preparación de nuevos sistemas para los usuarios. En un escenario de entrega continua, este trabajo generalmente lo realizan equipos de desarrollo o de prueba. Los sistemas generalmente se virtualizan y se instancian bajo demanda. La configuración de las máquinas para instalar sistemas operativos, middleware, etc. está a cargo de herramientas de administración de configuración de sistemas automatizados, que también verifican que se mantenga la configuración deseada.

Pruebas de regresión: prueba del sistema de extremo a extremo para verificar que los cambios en una aplicación no afectaron negativamente la funcionalidad existente.

Release Management: el proceso de gestión de software releases desde la etapa de desarrollo hasta el software real release misma.

Desplazamiento a la izquierdaCon el aumento de la velocidad de entrega, aumentan los riesgos de seguridad y los problemas de cumplimiento en diferentes aplicaciones, equipos y entornos. Desplazarse a la izquierda se refiere a la integración de los procesos de evaluación de riesgos, pruebas de seguridad y evaluación de cumplimiento antes en la canalización de entrega. Hacerlo hace que sea más barato y más fácil abordar el potencial. release retrasos o fallas, vulnerabilidades de seguridad que amenazan la producción y violaciones del gobierno de TI que resultan en costosas multas.

Desarrollo dirigido por pruebas (TDD): una práctica de desarrollo en la que se escriben pequeñas pruebas para verificar el comportamiento de una pieza de código antes que el propio código. Las pruebas inicialmente fallan, y el objetivo de los desarrolladores es agregar código para que tengan éxito.

Prueba unitaria: Pruebas a nivel de código (es decir, no requiere un sistema de extremo a extremo completamente instalado para ejecutarse) para verificar el comportamiento de piezas de código individuales. El desarrollo basado en pruebas hace un uso extensivo de las pruebas unitarias para describir y verificar el comportamiento previsto.

Mapeo de flujo de valor: una técnica de mejora de la visualización de procesos utilizada en gran medida en los enfoques de ingeniería y fabricación ajustada. Los mapas de flujo de valor se utilizan para identificar los pasos esenciales del proceso frente a los "desperdicios" que pueden eliminarse progresivamente del proceso.

Sistema de control de versiones (VCS): un sistema que registra cambios en un archivo o conjunto de archivos a lo largo del tiempo para que pueda recuperar versiones específicas más adelante. (GitHub, GitLab, Subversión, etc.)

Virtualización: un enfoque de administración de sistemas en el que los usuarios y las aplicaciones no usan máquinas físicas, sino sistemas simulados que se ejecutan en hardware real, "real". Estas "máquinas virtuales" se pueden crear, iniciar, detener, clonar y descartar automáticamente en cuestión de segundos, lo que brinda una gran flexibilidad a las operaciones.

Pruebas de caja blanca: una práctica de prueba o garantía de calidad que se basa en verificar el correcto funcionamiento de los componentes internos de un sistema mediante el examen de su comportamiento (interno) y estado a medida que se ejecuta.

Tolerancia cero: como en, tolerancia cero para fallas en la producción. Los clientes tienen cero tolerancia al fracaso. A deployLa falla de administración o cualquier tipo de interrupción del servicio del software orientado al cliente puede tener un impacto catastrófico en una organización, especialmente en aquellas en industrias altamente reguladas.