Preguntas frecuentes sobre bancarrota DevOps Términos
Aquí hay una lista de comunes DevOps Términos que es imprescindible conocer para ser eficaz en la empresa. DevOps.
Test de aceptación: pruebas de alto nivel que se realizan normalmente en todo el sistema para determinar si la calidad general de las características nuevas y existentes es lo suficientemente buena como para que el sistema pase a producción.
Orquestación de lanzamiento de aplicaciones (ARO): Herramientas, scripts o productos que instalan y configuran automáticamente una versión específica de una aplicación en un entorno de destino, dejándola lista para su uso. También se conocen como "automatización de lanzamiento de aplicaciones" (ARA) o "automatización de entrega y lanzamiento continua" (CDRA).
Pruebas de caja negra: Una práctica de prueba o de control de calidad que no presupone ningún conocimiento del funcionamiento interno del sistema que se está probando y que, por lo tanto, intenta verificar el comportamiento o el estado externo en lugar del interno.
Agente de compilación: Un tipo de agente utilizado en la integración continua que puede instalarse local o remotamente en relación con el servidor de integración continua. Envía y recibe mensajes sobre la gestión de compilaciones de software.
Automatización de compilación: Herramientas o marcos de trabajo que permiten compilar automáticamente el código fuente en binarios listos para su publicación. Generalmente incluyen pruebas unitarias a nivel de código para garantizar que cada fragmento de código se comporte como se espera.
Configuración como código: Una técnica de gestión de configuración de sistemas en la que la configuración de máquinas, aplicaciones, trabajos, etc., se especifica en el código y se mantiene bajo control de versiones, lo que permite a los equipos configurar aplicaciones, sistemas y trabajos en segundos.
Desviación de la configuración: Término que describe la tendencia general de las configuraciones de software y hardware a desviarse o volverse inconsistentes con la versión de plantilla del sistema debido a cambios manuales ad hoc (como parches de emergencia) que no se reintroducen en la plantilla.
Envase: Similares pero más ligeros que una máquina virtual, los contenedores son paquetes ejecutables independientes que contienen todo lo necesario para ejecutar un software: código, entorno de ejecución, herramientas del sistema, bibliotecas del sistema, configuración, etc.
Entrega continua (CD): Un conjunto de procesos y prácticas que eliminan radicalmente el desperdicio de su proceso de producción de software, permiten una entrega más rápida de funcionalidades de alta calidad y establecen un ciclo de retroalimentación rápido y eficaz entre su negocio 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. Cada integración se verifica mediante una compilación automatizada, lo que permite a los equipos detectar problemas de forma temprana.
Canalización de entrega: una secuencia de tareas automatizadas y orquestadas que implementan la entrega de software Proceso para una nueva versión de una aplicación. Cada paso del pipeline está diseñado para aumentar la confianza en la nueva versión hasta el punto en que se pueda tomar una decisión sobre su lanzamiento. Un pipeline de entrega puede considerarse el resultado de optimizar el proceso de lanzamiento de una organización.
DevOps – desarrollo + operaciones: una palabra compuesta 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 mejor software con mayor 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 operaciones y desarrollo al inicio del proceso de entrega de software es un principio fundamental. DevOpsHacerlo no solo ayuda a garantizar que les estés dando a los clientes lo que realmente quieren, sino que también aligera la carga de desarrollo, reduce el temor a la implementación, crea una mejor relación entre desarrollo y operaciones y aumenta la productividad.
Gobernanza: En el ámbito de las TI, la gobernanza se refiere al proceso mediante el cual las organizaciones evalúan y garantizan que sus inversiones tecnológicas funcionen según lo previsto y no introduzcan nuevos riesgos. Un proceso de gobernanza formal también ayuda a las empresas a asegurar que las actividades de TI estén alineadas con los objetivos de negocio, al tiempo que garantiza el cumplimiento de las normas comunes, como OWASP, PCI 3.2 y CWE/SANS.
Infraestructura como código: Técnica de gestión de la configuración de sistemas en la que se especifican máquinas, dispositivos de red, sistemas operativos, middleware, etc., en un formato totalmente automatizable. La especificación o «plan maestro» se considera código que ejecutan las herramientas de aprovisionamiento, se mantiene bajo control de versiones y, por lo general, se rige por las mismas prácticas que se utilizan para el desarrollo de código de aplicaciones.
Infraestructura como servicio (IaaS): Máquinas virtualizadas alojadas en la nube, generalmente con facturación de pago por uso. Los usuarios tienen control total de las máquinas, pero deben instalar y configurar por sí mismos el middleware y las aplicaciones necesarias.
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 demasiado scripting y/o mantenimiento de flujos de trabajo, y que necesitan migrar a la entrega continua. La entrega continua no solo aprovecha las herramientas para la integración continua, sino también para la orquestación de lanzamientos de extremo a extremo, la automatización de pruebas, la seguridad, la gestión de servicios de TI y mucho más.
Lean: La «producción ajustada» o «manufactura ajustada» es un enfoque o metodología que busca reducir el desperdicio en un proceso de producción, centrándose en preservar el valor. Originada principalmente en las prácticas desarrolladas por Toyota en la fabricación de automóviles, la metodología ajustada se ha aplicado al desarrollo de software como parte de las metodologías ágiles. El mapa de flujo de valor, que identifica visualmente los pasos del proceso que generan valor y los que generan desperdicio, es una herramienta clave en la metodología ajustada.
Requisitos no funcionales (RNF): 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 gestionar un gran número de usuarios, describe la facilidad y eficacia con que se puede utilizar una funcionalidad, en lugar de simplemente su existencia. 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 cuyo código fuente puede ser modificado por cualquiera. Existen diversos frameworks 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 pueden utilizarse para mejorar procesos específicos de desarrollo e implementación de software. En un entorno empresarial complejo, un DevOps La plataforma puede integrar herramientas de código abierto y agilizar su incorporación al proceso de entrega.
Plataforma como servicio (PaaS): Entornos de ejecución de aplicaciones alojados en la nube, generalmente facturados bajo un modelo de pago por uso. Los clientes proporcionan el código de la aplicación y una configuración básica, mientras que el middleware, las bases de datos, etc., forman parte del entorno de ejecución proporcionado.
Aprovisionamiento: El proceso de preparación de nuevos sistemas para los usuarios. En un escenario de entrega continua, este trabajo suele ser realizado por equipos de desarrollo o de pruebas. Los sistemas generalmente se virtualizan y se instancian bajo demanda. La configuración de las máquinas para instalar sistemas operativos, middleware, etc., se gestiona mediante herramientas automatizadas de administración de la configuración del sistema, que también verifican que se mantenga la configuración deseada.
Pruebas de regresión: Pruebas 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 lanzamientos de software desde la etapa de desarrollo hasta el lanzamiento del software propiamente dicho.
Desplazamiento a la izquierda: A mayor velocidad de entrega, mayores son los riesgos de seguridad y los problemas de cumplimiento en diversas aplicaciones, equipos y entornos. El enfoque "shift left" (adelante del desarrollo) consiste en integrar la evaluación de riesgos, las pruebas de seguridad y la evaluación del cumplimiento en las primeras etapas del ciclo de desarrollo. Esto permite abordar de forma más económica y sencilla posibles retrasos o fallos en las versiones, vulnerabilidades de seguridad que amenazan la producción e infracciones de la gobernanza de TI que conllevan costosas multas.
Desarrollo guiado por pruebas (TDD): Una práctica de desarrollo en la que se escriben pequeñas pruebas para verificar el comportamiento de un fragmento de código antes de escribir el código propiamente dicho. Inicialmente, las pruebas fallan, y el objetivo del desarrollador (o desarrolladores) es añadir código para que tengan éxito.
Prueba unitaria: Las pruebas a nivel de código (es decir, no requieren un sistema completo instalado para su ejecución) verifican el comportamiento de fragmentos de código individuales. El desarrollo guiado por pruebas (TDD) utiliza ampliamente 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 ampliamente utilizada en la manufactura esbelta y las metodologías de ingeniería. Los mapas de flujo de valor se utilizan para identificar los pasos esenciales del proceso frente al "desperdicio" que puede eliminarse progresivamente.
Sistema de control de versiones (VCS): Un sistema que registra los cambios realizados en un archivo o conjunto de archivos a lo largo del tiempo para que pueda recuperar versiones específicas posteriormente. (GitHub, GitLab, Subversion, etc.)
Virtualización: Un enfoque de gestión de sistemas en el que los usuarios y las aplicaciones no utilizan máquinas físicas, sino sistemas simulados que se ejecutan en hardware real. Estas «máquinas virtuales» se pueden crear, iniciar, detener, clonar y eliminar automáticamente en cuestión de segundos, lo que proporciona una enorme flexibilidad a las operaciones.
Pruebas de caja blanca: Una práctica de prueba o de control de calidad que se basa en verificar el correcto funcionamiento interno de un sistema mediante el examen de su comportamiento y estado (internos) mientras está en funcionamiento.
Tolerancia cero: Es decir, tolerancia cero a fallos en producción. Los clientes tienen tolerancia cero a fallos. Un fallo en la implementación o cualquier tipo de interrupción del servicio en el software de cara al cliente puede tener un impacto catastrófico en una organización, especialmente en aquellas de sectores altamente regulados.