Navegar Por Etiquetas
Hemos clasificado los términos del glosario. Utiliza los filtros para buscar términos por etiqueta.
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
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 con estado
Cuando hablamos de aplicaciones con estado (y sin estado), éste estado se refiere a cualquier dato que la aplicación necesita almacenar para funcionar. Por ejemplo, cualquier tipo de tienda en línea que recuerda tu carro de compras es una aplicación con estado. Problema que aborda Utilizar una aplicación generalmente requiere de peticiones múltiples. Por ejemplo, en una aplicación bancaria en línea, te identificas ingresando una contraseña (petición #1), luego podrías transferir dinero a un amigo (petición #2), y finalmente, podrás ver los detalles de tu transferencia (petición #3)...
Aplicaciones Distribuidas
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
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. Problema que aborda La división de una aplicación en microservicios aumenta su sobrecarga operativa ya que hay más cosas que probar, desplegar y mantener en funcionamiento...
Aplicaciones Nativas para la Nube
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
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
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 Confianza Cero
La arquitectura de confianza cero se refiere a un enfoque del diseño y la implementación de sistemas informáticos donde la confianza se elimina por completo. El principio fundamental de “nunca confiar, siempre verificar” implica que los dispositivos o sistemas, al comunicarse con otros componentes, siempre deben verificarse a sí mismos antes de hacerlo. Hoy en día, en muchas redes corporativas, los sistemas y dispositivos internos pueden comunicarse libremente entre sí, ya que se encuentran dentro del límite de confianza del perímetro de dichas redes...
Arquitectura de Microservicios
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...
Arquitecturas fuertemente acopladas
La arquitectura fuertemente acoplada es un tipo de arquitectura donde los componentes individuales de la aplicación son interdependientes (es el paradigma opuesto a arquitectura débilmente acoplada). Esto quiere decir que un cambio en uno de los componentes probablemente impactará a los demás. En general este tipo de arquitectura es más sencilla de implementar que las arquitecturas débilmente acopladas, pero puede llevar a un sistema a ser más vulnerable a fallos en cascada...
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
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. Las organizaciones pueden probar la nueva versión del software en producción, obtener comentarios, diagnosticar errores y volver rápidamente a la versión estable si es necesario...
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...
Centro de Datos
Un centro de datos es un edificio diseñado específicamente para almacenar computadoras, habitualmente referidas como servidores. Estos centros de datos suelen estar conectados a líneas de Internet de alta velocidad, especialmente en el caso de los centros de datos para computación en la nube. Las edificaciones donde se alojan los centros de datos poseen equipamiento para mantener el servicio incluso en caso de fuerza mayor, como generadores para proveer energía durante apagones y aire acondicionado para la dispersión del calor generado por los servidores...
Clúster
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 ¿Quién puede contribuir? El objetivo de este Glosario es simplificar el espacio Cloud Native - notorio por su complejidad - haciéndolo más fácil de entender...
Computación en el borde
Computación en el borde es un tipo de sistema distribuido en el que una parte del procesamiento y almacenamiento de información se realiza en el origen de los datos. Esta información generada es procesada localmente (por ejemplo en una fábrica, en un negocio o a través de una ciudad) en vez de ser enviada a un centro de datos centralizado para procesamiento y análisis. Luego el resultado de ese procesamiento local es enviado al centro de datos principal para un procesamiento final...
Computación en la Nube
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
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
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...
Control de Acceso Basado en Roles (RBAC)
El control de acceso basado en roles (RBAC, por sus siglas en inglés) es un método para regular el acceso al sistema y los recursos en función de los roles individuales de los usuarios dentro de una organización. Cada función laboral tiene un rol y permisos específicos. Por ejemplo, un miembro del equipo de marketing puede tener permiso para ver las ventas en proceso (permiso de lectura), pero no se le permitirá editarlas (permiso de escritura)...
Depuración
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
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...
Descubrimiento de Servicio
El descubrimiento de servicio es el proceso de identificar instancias individuales que pertenecen a un mismo servicio. Una herramienta de descubrimiento de servicio mantiene una lista de varios nodos o aplicaciones que componen un servicio. Problema que aborda Las arquitecturas cloud native son dinámicas y fluidas, es decir que están en constante cambio. Una aplicación contenedorizada se ejecutará y detendrá varias veces en su tiempo de vida. Cada vez que eso sucede, obtendrá una nueva dirección y cualquier otra aplicación que quiera encontrarla necesita una herramienta que provea su nueva dirección...
Despliegue Blue Green
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)
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
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
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...
eBPF
eBPF, o “extended Berkeley Packet Filter”, es una tecnología que permite a pequeños programas o scripts aislados ejecutarse en el espacio del kernel de un sistema Linux sin necesidad de cambiar el código fuente ni cargar módulos al kernel Linux. Un sistema Linux tiene dos espacios: el de kernel y el de usuario. El kernel representa el sistema operativo y es la única parte con acceso ilimitado al hardware. Las aplicaciones quedan en el espacio de usuario y, cuando necesitan permisos más elevados, envían una solicitud al kernel...
Entrega Continua (CD)
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
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. Este método mejora el funcionamiento de una aplicación agregando nuevas instancias o nodos, para distribuir de mejor manera la carga de trabajo...
Escalado Vertical
El escalado vertical, también conocido como “agregar y reducir”, es una técnica donde la capacidad de un sistema es incrementada agregando CPU y memoria a nodos individuales a medida que la carga de trabajo aumenta. Digamos que tenemos una computadora con 4GB de RAM y quisiéramos aumentar su capacidad a 16 GB de RAM, escalar verticalmente significa cambiar a un sistema de 16 GB de RAM, (Referirse a escalado horizontal para un método distinto de escalado...
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...
Función como Servicio (FaaS)
La Función como Servicio (FaaS según sus siglas en Inglés) es un tipo de servicio sin servidor en la computación en la nube que permite ejecutar código como respuesta a ciertos eventos sin necesidad de mantener infraestructura compleja típicamente asociada con la creación y lanzamiento de aplicaciones en arquitectura de microservicios. Con FaaS, los usuarios manejan solo las funciones y la información mientras que el proveedor de nube maneja la aplicación...
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)
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)
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
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)
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)
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
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...
Malla de Servicios (Service Mesh)
En un mundo de arquitectura de microservicios, las aplicaciones se dividen en múltiples servicios que se comunican a través de una red. Al igual que las redes de wifi, las redes de computadoras son poco confiables, proclives a ser atacadas y en muchos casos lentas. Las mallas de servicios (Service meshes) afrontan estos nuevos desafíos mediante el manejo de tráfico (por ejemplo la comunicación) entre servicios y agregando fiabilidad, observabilidad e implementaciones de seguridad a todos los servicios...
Máquina Bare Metal
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”...
Máquina Virtual
Una máquina virtual (VM según sus siglas en Inglés) es una computadora y su sistema operativo no relacionados a un hardware específico. Las máquinas virtuales utilizan el método de virtualización que crea múltiples computadoras virtuales dentro una sola computadora física. Esta separación facilita a organizaciones y proveedores de infraestructura a crear y eliminar máquinas virtuales sin impactar el hardware de base. Problema que aborda Las máquinas virtuales se basan en la virtualización...
Nodos
Un nodo es un servidor que trabaja en conjunto a otros servidores, o nodos, para realizar una tarea común. Toma tu laptop, el módem y la impresora como ejemplo. 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...
Observabilidad
La observabilidad es una propiedad del sistema que define el grado en que el sistema puede generar conocimientos accionables. Permite a los usuarios comprender el estado de un sistema a partir de estas salidas externas y tomar medidas (correctivas). Los sistemas informáticos se miden observando señales de bajo nivel como el tiempo de CPU, la memoria, el espacio en disco y señales de nivel superior y empresariales, incluidos los tiempos de respuesta de la API, errores, transacciones por segundo, etc...
Orquestación de Contenedores
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...
Pod
Dentro de un entorno de Kubernetes, un Pod actúa como la unidad más básica desplegable. Representa un bloque de construcción esencial para desplegar y administrar aplicaciones contenedorizadas. Cada Pod contiene una única instancia de la aplicación y puede albergar uno o más contenedores. Kubernetes administra los Pods como parte de un despliegue más grande y puede escalar los Pods vertical u horizontalmente según sea necesario. Problema que aborda Mientras los contenedores generalmente actúan como unidades independientes que ejecutan y controlan una carga de trabajo en particular, hay casos en los que los contenedores necesitan interactuar y ser controlados de manera estrechamente acoplada...
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...
Recuperación Automática
Un sistema de reparación automática puede resolver ciertos tipos de fallos sin requerir intervención humana. Dispone de un bucle de “convergencia” o “control” que examina y analiza activamente el estado real del sistema, comparándolo con el estado que los operadores deseaban inicialmente. Si se detecta una diferencia (por ejemplo, si hay menos instancias de la aplicación en ejecución de las deseadas), se tomarán medidas correctivas (por ejemplo, iniciar nuevas instancias)...
Seguridad en Ingeniería del Caos
Seguridad en Ingeniería del Caos, o SCE en Inglés, es una disciplina basada en la Ingeniería del Caos. SCE ejecuta experimentos de seguridad de manera proactiva en un sistema distribuido para aportar confianza en la capacidad del sistema de soportar condiciones maliciosas o turbulentas. Los ingenieros a cargo de llevar a cabo esta práctica utilizan métodos científicos, incluyendo el estado inicial, hipótesis, verificación continua, lecciones aprendidas e implementación de mitigaciones...
Seguridad mutua de capa de transporte (mTLS)
La seguridad mutua de capa de transporte (mTLS en Inglés) es una técnica utilizada para autenticar y codificar mensajes enviados entre dos servicios. mTLS es el protocolo de Seguridad de capa de transporte (TLS) estándar pero, en vez de validar la identidad de solo una conexión, se validan ambos lados. Problema que aborda Los microservicios se comunican a través de una red y, como las redes de wifi, la comunicación en tránsito en la red puede ser atacada...
Seguridad Nativa para la Nube
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...
Servicio
Es importante señalar que en TI, el término ‘servicio’ tiene diversos significados. En esta definición, nos enfocaremos en el más tradicional: servicio en términos de microservicio. El modo en que los servicios difieren de los microservicios, o si siquiera existe tal diferencia, es una cuestión de matices, y las opiniones pueden diferir entre diferentes personas. Para una definición a alto nivel, los consideraremos como lo mismo. Por favor, consulte la definición de microservicios...
Servicio de Proxy
Un servicio de Proxy intercepta tráfico desde o hacia un servicio determinado, aplicando algún tipo de lógica predefinida y luego envía ese tráfico hacia otro servicio. En esencia actúa como un agente intermedio que recolecta información referente al tráfico de red y/o aplica reglas al mismo. Problema que aborda Para mantener un seguimiento de la comunicación entre servicios (también llamado tráfico de red) y potencialmente transformar o redirigir ese tráfico, se necesita recolectar información...
Shift Left
El Desplazamiento a la Izquierda (Shift Left) se refiere a las etapas anteriores en un ciclo de vida de desarrollo de software, pensando en el ciclo de vida como una línea donde las etapas se ejecutan de izquierda a derecha. Shift Left es la práctica de implementar pruebas, seguridad u otras prácticas de desarrollo temprano en el ciclo de vida de desarrollo de software en lugar de implementarlas al final...
Sin servidor (Serverless)
La computación sin servidor abstrae los servidores del usuario. La gestión operativa recae en el proveedor de servicios, incluido el manejo de máquinas físicas y el aprovisionamiento de Máquinas Virtuales. Los proveedores de servicios pueden ser entidades de nube pública o departamentos de TI internos que prestan servicios a sus equipos de desarrollo. Estos proveedores ofrecen interfaces de usuario como SDK, CLIs o tiempos de ejecución compatibles con OCI, centrándose en el código y las tareas de implementación...
Sistema Distribuido
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...
Site Reliability Engineering
Site Reliability Engineering o SRE es una disciplina que combina operaciones e ingeniería de software. Este último se aplica a problemas de infraestructura y operaciones, específicamente. Es decir, en lugar de crear características del producto, los ingenieros de confiabilidad del sitio crean sistemas para ejecutar aplicaciones. Hay similitudes con DevOps, pero mientras DevOps se enfoca en llevar el código a producción, SRE garantiza que el código que se ejecuta en producción funcione correctamente...
Tecnología Nativa para la Nube
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
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)
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. Permitir que las aplicaciones de servidor y cliente admitan TLS garantiza que los datos transmitidos entre ellos están encriptados y no son visibles para terceros...
Virtualización
La virtualización, en el contexto de la computación nativa para la nube, refiere al proceso de tomar una computadora física, algunas veces llamada servidor, y permitirle ejecutar múltiples sistemas operativos aislados. Estos sistemas operativos aislados y sus recursos computacionales dedicados (CPU, memoria y red) son referidos como máquinas virtuales. Cuando hablamos de una máquina virtual, estamos hablando de una computadora definida por software. Algo que luce y actúa como una computadora real pero comparte hardware con otras máquinas virtuales...