Browse by Tags

We've categorized the glossary terms. Use the filters to browse terms by tag.

Abstracción

En el contexto de la informática, una abstracción es una representación que oculta los detalles específicos a un consumidor de servicios (un consumidor que es un programa de computadora o un ser humano), haciendo un sistema más genérico y, por lo tanto, más fácil de entender. Un buen ejemplo es el sistema operativo (SO) de su computadora portátil. Abstrae todos los detalles de cómo funciona su computadora. No necesita saber nada sobre el CPU, la memoria y cómo se manejan los programas, solo necesita operar el sistema operativo y el sistema operativo se ocupa de los detalles...

API Gateway

¿Qué es? Un API gateway es una herramienta que concentra aplicaciones APIs únicas, centralizando a todas en un solo lugar. Esto permite a las organizaciones mover funciones clave, como puede ser la autenticación y la autorización o limitando el número de peticiones entre aplicaciones a una ubicación de administración centralizada. Un API Gateway funciona como una interface común para los que la consumen (usualmente aplicaciones externas). Problema que aborda Si está haciendo APIs con disponibilidad para consumidores externos, es deseable tener un único punto de entrada para administrar y controlar todo el acceso...

Aplicaciones Distribuidas

¿Qué es? Una aplicación distribuida es una aplicación en la que la funcionalidad se divide en múltiples partes independientes más pequeñas. Las aplicaciones distribuidas suelen estar formadas por componentes individuales llamados microservicios que se ocupan de diferentes responsabilidades dentro de una aplicación más extensa. En un entorno nativo para la nube, los componentes individuales suelen ejecutarse como contenedores en un clúster. Problema que aborda Una aplicación que se ejecuta en un único ordenador representa un punto único de fallo: si ese ordenador falla, la aplicación deja de estar disponible...

Aplicaciones monolíticas

¿Qué es? Una aplicación monolítica contiene toda la funcionalidad en un único programa desplegable. Suele ser el punto de partida más sencillo y fácil a la hora de crear una aplicación. Sin embargo, una vez que la aplicación crece en complejidad, los monolitos pueden ser difíciles de mantener. Mientras más desarrolladores trabajen en la misma base de código, la probabilidad de conflictos y la necesidad de comunicación interpersonal entre desarrolladores aumenta...

Aplicaciones Nativas para la Nube

¿Qué es? Las aplicaciones nativas para la nube están diseñadas específicamente para aprovechar las innovaciones en computación en la nube. Estas aplicaciones se integran fácilmente con sus respectivas arquitecturas en la nube, aprovechando los recursos de la nube y las capacidades de escalado. También se refiere a las aplicaciones que aprovechan las innovaciones en infraestructura impulsadas por la computación en la nube. Las aplicaciones nativas para la nube de hoy en día incluyen aplicaciones que se ejecutan en el centro de datos de un proveedor de la nube y en plataformas nativas de la nube on-premises...

Arquitectura Basada en Eventos

¿Qué es? La arquitectura basada en eventos es una arquitectura de software que promueve la creación, procesamiento y consumo de eventos. Un evento es cualquier cambio en el estado de una aplicación. Por ejemplo, solicitar un viaje en una aplicación de viajes compartidos es un evento. Esta arquitectura crea la estructura en la cual los eventos pueden ser enviados desde su origen (la aplicación solicitando el viaje) a los receptores deseados (las aplicaciones de conductores cercanos)...

Arquitectura Cliente-Servidor

¿Qué es? En una arquitectura cliente-servidor, la lógica (o código) que constituye una aplicación se divide en dos o más componentes: un cliente que solicita trabajo por hacer (por ejemplo, la aplicación web Gmail que se ejecuta en su navegador web), y otro o más servidores que satisfagan esa solicitud (por ejemplo, el servicio de “enviar correo electrónico” que se ejecuta en las computadoras de Google en la nube). En este ejemplo, los correos electrónicos salientes que escribe son enviados por el cliente (aplicación web que se ejecuta en su navegador web) a un servidor (las computadoras de Gmail, que reenvían sus correos electrónicos salientes a sus destinatarios)...

Arquitectura de Microservicios

¿Qué es? Una arquitectura de microservicios es un enfoque arquitectónico que divide las aplicaciones en (micro)servicios individuales e independientes, donde cada servicio se centra en una funcionalidad específica. Estos servicios trabajan juntos estrechamente, apareciendo ante el usuario final como una sola entidad. Tomemos Netflix como ejemplo. Su interfaz permite acceder, buscar y preestrenar vídeos. Es probable que estas funciones estén gestionadas por servicios pequeños, cada uno de los cuales se encarga de una funcionalidad, por ejemplo, la autenticación, la búsqueda y la ejecución de preestrenar vídeos en el navegador...

Arquitectura débilmente acoplada

La arquitectura débilmente acoplada es un tipo de arquitectura en donde los componentes individuales de una aplicación se construyen de manera independiente unos de los otros (es el paradigma opuesto a la arquitectura fuertemente acoplada). Cada componente, a veces denominado microservicio, está diseñado para realizar una función específica de manera que pueda ser utilizado por cualquier número de servicios. Este patrón es generalmente más lento de implementar que la arquitectura estrechamente acoplada, pero tiene una serie de beneficios, particularmente a medida que las aplicaciones escalan...

Autoescalado

El autoescalado es la habilidad de un sistema para escalar automáticamente, en términos de recursos computacionales. Con un sistema de autoescalado, los recursos son agregados automáticamente cuando se necesitan y pueden escalar para cumplir con la demanda fluctuante de los usuarios. El proceso de autoescalado varía y es configurable para escalar basado en diferentes métricas, como son la memoria o el uso de CPU. Los servicios gestionados en la nube son los que están asociados típicamente con esta funcionalidad de autoescalado pero también hay opciones e implementaciones disponibles para la mayoría de los servicios existentes...

Canary Deployment

¿Qué es? Canary deployment es una estrategia de despliegue que comienza con dos entornos: uno con tráfico y otro que contiene el código actualizado sin tráfico. El tráfico se traslada gradualmente de la versión original de la aplicación a la versión actualizada. Puede comenzar moviendo el 1 % del tráfico, luego el 10 %, el 25 %, y así sucesivamente, hasta que todo el tráfico se ejecute en la versión actualizada...

Carrera de Contribuidor

¡Hola! 👋 Gracias por su interés en contribuir al proyecto de Glosario Cloud Native de la CNCF. Ya sea que contribuya con nuevos términos, ayude a localizar el Glosario en su idioma nativo o quiera ayudar a otros a comenzar, hay muchas maneras de convertirse en un miembro activo de esta comunidad. Este documento describe los diferentes roles de los contribuidores dentro del proyecto y las responsabilidades y privilegios que los acompañan...

Clúster

¿Qué es? Un clúster es un grupo de ordenadores o aplicaciones que trabajan juntos hacia un objetivo común. En el contexto de computación nativa en la nube, el término es aplicado con mayor frecuencia a Kubernetes. Un clúster de Kubernetes es un conjunto de servicios (o cargas de trabajo) que son ejecutadas en sus propios contenedores, normalmente en ordenadores diferentes. El conjunto de todos estos servicios contenedorizados, conectados a través de una red, representan un clúster...

Como contribuir

El contenido del Glosario Cloud Native se almacena en este repositorio de GitHub donde encontrará una lista de issues, PRs y discusiones sobre el glosario. Existen cuatro formas en las que se puede contribuir: Trabajar en un issue existente Proponer nuevos términos Actualizar un término existente Ayudar a traducir el glosario Unirse a la comunidad del glosario Si desea contribuir con regularidad, considere unirse a nuestras reuniones mensuales del Grupo de trabajo del glosario...

Computación en la Nube

¿Qué es? La computación en la nube es un modelo que ofrece recursos informáticos como capacidades de CPU, red y disco bajo demanda a través de Internet. La computación en la nube brinda a los usuarios la capacidad de acceder y utilizar el poder de cómputo en una ubicación física remota. Los proveedores de la nube como AWS, GCP, Azure, DigitalOcean y otros ofrecen a terceros la capacidad de alquilar el acceso a los recursos informáticos en múltiples ubicaciones geográficas...

Contenedores

¿Qué es? Un contenedor es un proceso en ejecución con restricciones de recursos y capacidades administrado por el sistema operativo de una computadora. Los archivos disponibles del contenedor se empaquetan como una imagen de contenedor. Los contenedores se ejecutan uno al lado del otro en la misma máquina, pero, por lo general, el sistema operativo evita que los procesos de contenedores independientes interactúen entre sí. Problema que aborda Antes de que los contenedores estuvieran disponibles, se necesitaban máquinas separadas para ejecutar aplicaciones...

Contenerización

¿Qué es? La contenerización es el proceso que consiste en empaquetar una aplicación y sus dependencias en una imagen de contenedor. La construcción del contenedor requiere del seguimiento del estándar Open Container Initiative (OCI). Mientras la salida de este proceso sea un contenedor de imagen que se adhiera a dicho estándar, la herramienta de contenerización usada no es relevante. Problema que aborda Antes de que los contenedores fuesen relevantes, las organizaciones dependían de máquinas virtuales para orquestar múltiples aplicaciones en una única máquina Bare Metal...

Depuración

¿Qué es? La depuración es el proceso o actividad de encontrar y resolver bugs (o errores) de programas, software o sistemas informáticos para obtener el resultado deseado. Un bug es un defecto o un problema que conduce a resultados incorrectos o inesperados. Problema que aborda El desarrollo de software es una actividad compleja que hace que sea casi imposible escribir código sin introducir bugs. Esos bugs conducen a un código que probablemente no funcionará como se desea (un comportamiento no definido) cuando se ejecute...

Desarrollo ágil de software

¿Qué es? Un conjunto de prácticas que enfatizan el ciclo de desarrollo iterativo y equipos auto-organizados. En contraste con proyectos tradicionales en cascada donde el valor se genera solo al final del proyecto, el desarrollo ágil de software se enfoca en una entrega incremental y continua de valor y una mejora evolutiva del proceso en sí mismo. Problema que aborda Definir, comunicar y entender los requerimientos para todos las partes interesadas en un proyecto de software es muy difícil, cuando no imposible...

Despliegue Blue Green

¿Qué es? El despliegue Blue green es una estrategia para actualizar los sistemas informáticos en ejecución con un tiempo de inactividad mínimo. El operador mantiene dos entornos, llamados “blue” y “green”. Uno sirve el tráfico de producción (la versión que todos los usuarios usan actualmente), mientras que el otro está actualizado. Una vez que las pruebas han concluido en el entorno inactivo (green), el tráfico de producción se cambia (a menudo mediante el uso de un balanceador de cargas...

Despliegue Continuo (CD)

¿Qué es? El despliegue continuo, a menudo abreviado como CD (por sus siglas en inglés Continuous Deployment), va un paso más allá que la entrega continua desplegando software finalizado directamente en producción. El despliegue continuo (CD) es comúnmente asociado con la integración continua (CI), y son referidos como CI/CD. El proceso de CI verifica que los cambios en una aplicación sean válidos, y el proceso de CD despliega automáticamente esos cambios de código a todos los ambientes de una organización, desde pruebas hasta producción...

DevOps

¿Qué es? DevOps es una metodología en la que los equipos son dueños de todo el proceso, desde el desarrollo de la aplicación hasta las operaciones en producción, de ahí el término DevOps. Va más allá de implementar un conjunto de tecnologías y requiere un cambio completo en la cultura y los procesos. DevOps requiere grupos de ingenieros que trabajen en componentes pequeños (en lugar de una función completa), reduciendo las transferencias, una fuente común de errores...

DevSecOps

¿Qué es? El término DevSecOps se refiere a una fusión cultural de las responsabilidades operativas, de desarrollo y de seguridad. Este concepto extiende el enfoque DevOps para incluir prioridades de seguridad con una interrupción mínima o nula en el flujo de trabajo operativo y de desarrollo. Al igual que DevOps, DevSecOps es un cambio cultural el cual ha sido impulsado por las tecnologías adoptadas con métodos de adopción únicos. Problema que aborda Las prácticas de DevOps incluyen la integración continua (CI, por sus siglas en inglés continuous integration) y la entrega continua (CD, por sus siglas en inglés continuous delivery) las cuales aceleran los ciclos de desarrollo y la publicación de aplicaciones...

Entrega Continua (CD)

¿Qué es? La entrega continua, a menudo abreviada como CD, es un conjunto de prácticas en las que los cambios de código se despliegan automáticamente en un entorno de aceptación (o, en el caso de despliegue continuo, en producción). El CD incluye procedimientos cruciales para garantizar que el software se pruebe adecuadamente antes del despliegue y proporciona una forma de revertir los cambios si se considera necesario. La integración continua (CI) es el primer paso hacia la entrega continua (es decir, los cambios deben fusionarse limpiamente antes de probarse e implementarse)...

Escalabilidad

La escalabilidad se refiere a que tan bien puede crecer un sistema. Esto es, aumentando la capacidad para hacer lo que sea que el sistema deba hacer. Por ejemplo, un clúster de Kubernetes escala aumentando o reduciendo el número de aplicaciones en contenedores, pero esa escalabilidad depende de varios factores. ¿Cuántos nodos tiene?, ¿cuántos contenedores puede manejar cada nodo?, y ¿cuántos registros y operaciones puede soportar el plano de control?..

Escalado horizontal

¿Qué es? Escalado horizontal es una técnica donde la capacidad del sistema es incrementada agregando más nodos en vez de agregar más recursos computacionales a nodos individuales (conocido como escalado vertical). Como ejemplo, digamos que tenemos un sistema con 4 GB de memoria y queremos incrementar su capacidad a 16 GB, escalar horizontalmente significa agregar 4 x 4 GB en vez de cambiar a un sistema de 16 GB. Esta método mejora el funcionamiento de una aplicación agregando nuevas instancias o nodos, para distribuir de mejor manera la carga de trabajo...

Fiabilidad

Desde una perspectiva nativa a la nube, fiabilidad se refiere a qué tan bien un sistema responde ante las fallas. Si tenemos un sistema distribuido que continúa funcionando mientras la infraestructura cambia y los componentes individuales fallan, este es fiable. Por otro lado, si falla fácilmente y los operadores deben intervenir manualmente para mantenerlo en ejecución, entonces es poco confiable. La meta de las aplicaciones nativas para la nube es construir sistemas inherentemente fiables...

Glosario Cloud Native

Glosario Cloud Native El Glosario Cloud Native es un proyecto liderado por la CNCF Business Value Subcommittee (BVS). Su meta es explicar los conceptos nativos para la nube en un lenguaje claro y simple sin recurrir a cualquier conocimiento técnico previo. Contribuyendo Todo mundo esta invitado a sugerir cambios, adiciones, y mejoras a el Glosario Cloud Native. Empleamos un proceso guiado por la comunidad y gobernado por la CNCF para desarrollar y mejorar este léxico compartido...

Guía de estilos

Esta guía de estilos te ayudará a entender la audiencia del Glosario, la estructura de las definiciones, el nivel de detalle requerido, y como mantener un estilo consistente. El Glosario Cloud Native sigue las guías de estilo por defecto del repositorio de CNCF. Adicionalmente, sigue las siguientes reglas: Utilice un lenguaje sencillo y accesible, evitando la jerga técnica y palabras de moda. Evite el lenguaje coloquial Use un lenguaje literal y concreto Omite contracciones Use la voz pasiva con moderación Trate de formular declaraciones en forma positiva Sin signos de exclamación fuera de las comillas No exageres Evite repetir Sea conciso Audiencia El Glosario está escrito para una audiencia técnica Y no técnica...

Idempotencia

En matemáticas o informática, la idempotencia describe una operación que siempre conduce al mismo resultado, no importa cuantas veces se ejecute. Si los parámetros son los mismos, una operación idempotente no afectará a la aplicación a la que llama...

Infraestructura como Código (IaC)

¿Qué es? Infraestructura como código es una práctica para almacenar la definición de la infraestructura en uno o varios archivos. Esto reemplaza el modelo tradicional dónde la infraestructura como servicio es aprovisionado de forma manual, por lo general usando scripts con la consola u otras herramientas de configuración. Problema que aborda Construir aplicaciones de forma nativa para la nube requiere que la infraestructura sea desechable y reproducible. Además requiere escalar bajo demanda de forma automática y repetible, potencialmente sin la intervención humana...

Infraestructura como Servicio (IaaS)

¿Qué es? Infraestructura como Servicio, o IaaS, es un modelo de servicio de computación en la nube que ofrece recursos de cómputo, almacenamiento y red mediante servidores físicos o virtualizados suministrados bajo demanda en un modelo de pago por uso. Los proveedores de la nube poseen y operan el hardware y el software, a disposición de los consumidores en despliegues de nube pública, privada o híbrida. Problema que aborda En las configuraciones tradicionales de On-prem, las organizaciones suelen tener dificultades para utilizar eficazmente sus recursos de computación...

Infraestructura inmutable

Infraestructura inmutable se refiere a la infraestructura informática (máquinas virtuales, contenedores, dispositivos de red) que no se puede cambiar una vez implementada. Esto se puede hacer cumplir mediante un proceso automatizado que sobreescriba los cambios no autorizados o a través de un sistema que no permita cambios en primer lugar. Los contenedores son un buen ejemplo de infraestructura inmutable porque los cambios persistentes en los contenedores solo pueden ser realizados por la creación una nueva versión del contenedor o recreando el contenedor existente a partir de su imagen...

Ingeniería del Caos

¿Qué es? Ingeniería del Caos o CE (Chaos Engineering) es la disciplina de experimentación sobre un Sistema Distribuido en producción para construir confianza en la capacidad del sistema para soportar condiciones inesperadas y turbulentas. Problema que aborda Las prácticas de SRE y DevOps se centran en técnicas para el incremento de la resiliencia del producto y de la confiabilidad. La capacidad del sistema para tolerar fallos al mismo tiempo que aseguran una calidad de servicio adecuado suele ser un típico requerimiento de desarrollo de software...

Integración Continua (CI)

¿Qué es? Integración continua, o por sus siglas en ingles CI, es la práctica de integrar cambios en el código lo más frecuente posible. CI es un requisito para la entrega continua (CD). Tradicionalmente, el proceso de CI comienza cuando se envían los cambios en el código hacia un sistema de control de versiones (Git, Mercurial, o Subversion) y termina con un artefacto testeado y listo para ser consumido por un sistema de CD...

Interfaz de programación de aplicaciones (API)

¿Qué es? Una API es una manera en la que los programas de computadoras interactúan entre sí. Tal como los humanos interactúan con un sitio web a través de la página web, una API permite a los programas de las computadoras interactuar entre sí. A diferencia de las interacciones humanas, las APIs tienen limitaciones en lo que se le puede preguntar o no a las mismas. La limitación en la interacción ayuda a crear comunicaciones estables y funcionales entre los diferentes programas...

Kubernetes

¿Qué es? Kubernetes, comúnmente abreviado como K8s, es un orquestador de contenedores de código abierto. Automatiza el ciclo de vida de las aplicaciones contenedorizadas en infraestructuras modernas, funcionando como un “sistema operativo en un Centro de Datos” que administra las aplicaciones ejecutándose en sistemas distribuidos. Kubernetes gestiona contenedores en los nodos de un clúster, agrupa muchos componentes de infraestructura, en ocasiones referidos como “primitivos”, como una instancia de una aplicación, balanceadores de carga, almacenamiento persistente y otros, de manera que puedan integrarse en aplicaciones...

Máquina Bare Metal

¿Qué es? Bare metal se refiere a una computadora física, más específicamente un servidor, que tiene un solo sistema operativo. La distinción es importante en la informática moderna porque muchos, si no es que la mayoría, de los servidores son máquinas virtuales. Un servidor físico suele ser una computadora bastante grande con un potente hardware incorporado. La instalación de un sistema operativo y la ejecución de aplicaciones directamente en ese hardware físico, sin virtualización, se conoce como ejecución “bare metal”...

Nodos

¿Qué es? Un nodo es un servidor que trabaja en conjunto a otros servidores, o nodos, para realizar una tarea común. Por ejemplo, tu laptop, el módem y la impresora están conectados a través de tu red wifi comunicándose y colaborando, cada uno representa un nodo. En computación en la nube, un nodo puede ser un servidor físico, un servidor virtual, denominado VM, o incluso un contenedor. Problema que aborda Una aplicación podría (y muchas lo hacen) ejecutarse en una sola máquina, esto conlleva algunos riesgos como el fallo del sistema subyacente interrumpirá la aplicación...

Observabilidad

¿Qué es? La observabilidad es la capacidad de generar y descubrir continuamente información procesable basada en señales del sistema bajo observación. En otras palabras, la observabilidad permite a los usuarios comprender el estado de un sistema a partir de su salida externa y así tomar medidas (correctivas). Problema que aborda Los sistemas informáticos se miden mediante la observación de señales de bajo nivel, como el tiempo de CPU, la memoria, el espacio en disco y las señales comerciales y de nivel superior, incluidos los tiempos de respuesta de API, errores, transacciones por segundo, etc...

Orquestación de Contenedores

¿Qué es? La orquestación de contenedores se refiere al manejo y automatización del ciclo de vida de una aplicación contenedorizada en ambientes dinámicos. Es ejecutada a través de un orquestador de contenedores (por lo general, Kubernetes), el cual ofrece despliegues, autoescalado, auto reparación y monitoreo. La orquestación es metafórica: Al igual que un director de orquesta, la herramienta de orquestación dirige a los contenedores asegurándose que cada contenedor (como un músico) haga lo que debe hacer...

Portabilidad

La portabilidad es una característica del software, siendo una forma de reutilización que ayuda a evitar el “bloqueo” de ciertos entornos operativos, p.ej. proveedores de nube, sistemas operativos o vendedores. Tradicionalmente, el software es construido para entornos específicos (p. ej. AWS o Linux). El software portable, por otro lado, funciona en diferentes entornos operativos sin necesidad de una adaptación importante. Una aplicación se considera portable si el esfuerzo requerido para adaptarla a un nuevo entorno está dentro de límites razonables...

Seguridad Nativa para la Nube

¿Qué es? La seguridad nativa para la nube es un enfoque que crea seguridad en las aplicaciones nativas para la nube. Garantiza que la seguridad sea parte de todo el ciclo de vida de la aplicación, desde el desarrollo hasta la producción. La seguridad nativa para la nube busca garantizar los mismos estándares que los modelos de seguridad tradicionales mientras se adapta a las particularidades de los entornos nativos para la nube, es decir, cambios rápidos de código e infraestructura altamente efímera...

Sistema Distribuido

¿Qué es? Un sistema distribuido es una colección de elementos computacionales autónomos conectados entre sí a través de una red que se muestra a los usuarios como un sistema único coherente. Conocidos generalmente como nodos, estos elementos pueden ser dispositivos de hardware (por ejemplo, computadoras o teléfonos móviles) o procesos de software. Los nodos están programados para lograr un objetivo común e intercambian mensajes a través de la red para poder colaborar...

Tecnología Nativa para la Nube

¿Qué es? Las tecnologías nativas para la nube, también denominadas como stack nativo para la nube, son las tecnologías que se utilizan para crear aplicaciones nativas para la nube. Estas tecnologías permiten a las organizaciones crear y ejecutar aplicaciones escalables en entornos modernos y dinámicos como nubes públicas, privadas e híbridas, mientras aprovechan al máximo los beneficios de la computación en la nube. Están diseñadas desde cero para explotar las capacidades de la computación en la nube y los contenedores, las mallas de servicio, los microservicios, y la infraestructura inmutable ejemplifican este enfoque...

Transmisión de eventos

¿Qué es? La transmisión de eventos es un enfoque en el que el software envía datos de eventos de una aplicación a otra para comunicar continuamente lo que esta haciendo. Imagine un servicio transmitiendo todo lo que hace a todos los demás servicios. Cada actividad realizada por un servicio se denomina evento, por lo tanto, transmisión de eventos. Por ejemplo, NASDAQ recibe actualizaciones sobre los precios de las acciones y materias primas cada segundo...

Transport Layer Security (TLS)

¿Qué es? Transport Layer Security (TLS) es un protocolo diseñado para proporcionar mayor seguridad a la comunicación a través de una red. Garantiza la entrega segura de los datos enviados a través de Internet, evitando posibles seguimientos y/o alteraciones de los datos. Este protocolo es muy utilizado en aplicaciones como mensajería, correo electrónico, etc. Problema que aborda Sin TLS, la información confidencial, como los hábitos de navegación, la correspondencia por correo electrónico, los chats en línea y las llamadas en conferencia puede ser fácilmente rastreada y modificada por otros durante la transmisión...