Mostrando entradas con la etiqueta Kernel. Mostrar todas las entradas
Mostrando entradas con la etiqueta Kernel. Mostrar todas las entradas

miércoles, 16 de enero de 2019

No todo es Contenedores

La tecnología de contenedores, como Docker, se ha vuelto cada vez más popular entre los proveedores de nube y las empresas. ¿Pero son los contenedores adecuados para su organización?

La tecnología de contenedores ha tomado el mercado de La Nube casi por la fuerza, a medida que los proveedores siguen adoptando Docker, CoreOS y otros que entran en la mezcla. Pero antes de incluir los contenedores en su estrategia de Nube, es esencial entender cómo funciona la tecnología y si se ajusta a las necesidades de su organización.

Los contenedores ofrecen un enfoque alternativo a la virtualización de servidores. Para implementar contenedores, primero es necesario instalar un sistema operativo (OS) huésped (Linux de preferencia), en vez de un hipervisor. A continuación, se debe instalar una capa de abstracción como una aplicación, que se ejecuta en el sistema operativo subyacente. Esta maquinaria o capa de abstracción crea las condiciones que aceptará los espacios para la ejecución de las aplicaciones, que no son otra cosa que los contenedores. Cada contenedor puede ejecutar su propia aplicación o copias de la misma aplicación, pero todos los contenedores comparten el mismo núcleo único o kernel de sistema operativo.

La dependencia hacia un solo sistema operativo puede hacer que los contenedores sean menos versátiles que las máquinas virtuales que se ejecutan sobre un hipervisor. Por ejemplo, como los contenedores deben moverse a los servidores con los núcleos del sistema operativo compatibles, migrar contenedores requiere más estrategia y planificación. Por otro lado, las máquinas virtuales tradicionales pueden migrar a casi cualquier lugar con un hipervisor adecuado, independientemente del sistema operativo.

Sin embargo, debido a que los contenedores comparten un solo kernel del sistema operativo, pueden reducir los costos de licencias del sistema operativo, aumentar el rendimiento y eliminar los recursos de memoria y procesador necesarios, para ejecutar múltiples versiones del sistema operativo.

La tecnología de contenedores puede beneficiar a los entornos de nube en una variedad de maneras. En comparación con las pesadas máquinas virtuales, los contenedores son ambientes de componentes ligeros que permiten a las aplicaciones moverse entre las ya distintas nubes, sin necesidad de un gran trabajo por rehacerlas. Los contenedores acomodan diferencias de plataformas, en lugar de las aplicaciones que se ejecutan en ellas. Esto ha creado un diferenciador y es lo que beneficia a DevOps y a los desarrolladores de software.

Además, los contenedores reducen los recursos redundantes que cada instancia virtual necesita, permitiendo al mismo servidor alojar más contenedores que VMs comparables, lo que mejora significativamente la escalabilidad y el rendimiento de la nube.

Por lo tanto, ¿son los contenedores adecuados para su organización y estrategia de nube? Los contenedores son ideales para entornos que exigen escala y comparten componentes clave. Por ejemplo, si tiene que girar y desplegar 100 copias de la misma carga de trabajo y sistema operativo, es mucho más eficiente y rentable utilizar contenedores que las máquinas virtuales tradicionales basadas en hipervisor.

Los centros de datos que exigen versatilidad e independencia óptima de las cargas de trabajo  permanecerán con Máquinas Virtuales basadas en hipervisor. Sin embargo, los dos enfoques no son mutuamente excluyentes. Ambos enfoques pueden coexistir para satisfacer las necesidades de computación de negocios específicas. La tecnología de contenedores, sin duda, vale la pena ser considerada por la empresa.

¿Cuál estrategia le parece mejor para su Organización?

martes, 23 de octubre de 2018

SUSE Linux en soluciones para IoT

Añadir seguridad, reducir la complejidad de los despliegues y simplificar los procesos de actualización y parcheado son algunas de las características que ofrece Linux en el espacio IoT y Edge Computing.

Durante el pasado IoT Solutions World Congress 2018 celebrado en Barcelona, se presentó la tecnología desarrollada por SUSE Linux para entornos de IoT y Edge Computing. Su apuesta, como no podía ser de otra forma, se basa en soluciones Linux embebidas en los dispositivos para reducir la complejidad de los despliegues, pero también para simplificar cualquier trabajo de actualización y parcheado de los sistemas operativos y aplicaciones que se ejecutan en el extremo de las redes. La seguridad es otro de los elementos en los que ha prestado especial atención.

La primera compañía en lanzar al mercado una distribución para PC basada en el kernel de Linux, lleva tiempo centrada exclusivamente en el mercado empresarial, tanto para proporcionar sistemas operativos a nivel de servidor como para desarrollar versiones muy ligeras que puedan ser ejecutadas en dispositivos pequeños, sin demasiada potencia de proceso. En la actualidad, son los que se utilizan para múltiples escenarios e industrias del internet de las cosas, aunque ya ha quedado patente que también es necesario realizar despliegues de otros sistemas más potentes que permitan interconectar dichos dispositivos que generan cantidades ingentes de información con los grandes centros de datos en la nube.

Nos lo explicaban Michael Benz, Solution Architect de SUSE Linux y Akim Houari, Sales Executive de SUSE Linux para EMEA: “Nuestro acercamiento es suministrar una solución de extremo a extremo para que las empresas puedan desplegar sus dispositivos estándar desde el momento en que utilizan el protocolo IP para conectarse”.

Esta oferta de SUSE Linux constaría de tres niveles principales, todos ellos basados en alguna de las versiones de sus sistemas operativos. El centro de datos donde se encuentra soluciones como SUSE Linux Enterprise y SUSE Manager, los servidores locales localizados en el borde de las redes de comunicación y los dispositivos distribuidos que capturan la información desde sus sensores y la envían a ese punto intermedio, que procesará los datos y retornará a la nube aquellos que hayan sido solicitados.

La arquitectura estándar basada en código abierto permite acelerar los despliegues y su gestión, tal y como aseguraban los portavoces. “Para los departamentos de TI es fundamental poder centralizar el control de todos los recursos de computación distribuidos a lo largo y ancho del planeta. Nuestra plataforma facilita enormemente esa gestión, permitiendo por ejemplo lanzar rápidamente parches de seguridad en todos los dispositivos cuando es detectado y subsanado cualquier fallo. Aquí los despliegues se pueden realizar de forma automatizada, reduciendo los tiempos de exposición a un potencial ataque”.


¿Qué soluciones, dispositivos y/o software para Internet de las Cosas ya tiene Usted en su portafolio?

miércoles, 5 de septiembre de 2018

Suse Linux + Microsoft en alianza para La Nube

Parece que fue ayer cuando, en el programa nocturno de Larry King, un muy sonriente y hasta humilde William Gates, prácticamente suplicaba al público que -"...no utilizaran Linux, como sustituto de su incipiente Windows 2003 Server."-

También parece que fue ayer cuando el soberbio Steve Ballmer mencionaba que -"...Linux es un cancer."-

SUSE ha anunció ayer Martes 4 de Septiembre de 2018, la disponibilidad del primer Kernel de Linux empresarial, especialmente diseñado para Microsoft Azure. ¿Microsoft Azure? Sí. Ahora, las instancias bajo demanda de SUSE Linux Enterprise Server 15 se ejecutarán en un kernel personalizado para cargas de trabajo en Microsoft Azure, con un rendimiento mejorado y velocidades de arranque más rápidas, junto con un menor consumo de memoria.

El kernel optimizado para Azure permite un acceso más rápido tanto a las nuevas como a las futuras características de Azure, ayudando a los clientes a ser más ágiles. SUSE trabaja con Microsoft y otros socios para adaptar y garantizar soluciones de código abierto que permitan a los clientes, gestionar la complejidad, reducir los costes y ofrecer servicios críticos para la empresa que impulsen la transformación digital.

-“La colaboración de SUSE con Microsoft se basa en satisfacer las necesidades en constante evolución de los clientes, lo que permite la innovación y minimiza las interrupciones de su negocio”-, señala Gerald Pfeifer, vicepresidente de productos y programas tecnológicos de SUSE, quien añade: -“SUSE Linux Enterprise Server optimizado para usuarios de la nube pública de Azure es el resultado directo del compromiso de SUSE con el código abierto para resolver los retos reales de los clientes."-

KY Srinivasan, general manager del Enterprise Open Source Group en Microsoft Corp., comenta: -“Hemos estado trabajando estrechamente con SUSE para garantizar que los clientes que utilizan SUSE Linux Enterprise Server tengan una experiencia de primera categoría con Microsoft Azure. El nuevo kernel optimizado para Azure permite a esos clientes beneficiarse rápidamente de los nuevos servicios de Azure, como Accelerated Networking con Single Root I/O Virtualization (SR-IOV), Write Accelerator y otras funcionalidades a un ritmo acorde al ciclo de lanzamientos del equipo de ingeniería de Azure”.

SUSE Linux Enterprise Server 15 ofrece grandes ventajas en rendimiento, entre las que se incluyen un aumento potencial del 25 % en el rendimiento de red y una reducción del 23 % en la latencia media.

Por defecto, las instancias de SUSE Linux Enterprise Server 15 en Azure se ejecutarán en este núcleo personalizado, aunque los clientes tienen la flexibilidad de volver a cambiar fácilmente al kernel estándar mediante el gestor de paquetes Zypper.

Además del kernel diseñado para Azure, los clientes que utilicen SUSE Linux Enterprise Server en Azure se beneficiarán de una serie de herramientas y recursos para implementaciones nativas de cloud computing integradas en SUSE Public Cloud Module, como la capacidad de gestionar recursos Azure a través de una línea de comandos de Linux.

SUSE Linux Enterprise Server con kernel optimizado para Microsoft Azure ya está disponible en el Azure Marketplace con soporte y precio estándar.

Aunado al hecho de que el 98% de los equipos de cómputo que componen La Nube Pública están basados en Linix, que un 87% de las los Sites On-Premise, La Nube Privada y los Centros de Datos Definidos por Software también son Linux, amén de que el 100% de los quinientos más importantes equipos de Cómputo de Alto Rendimiento (HPC) tienen Sistema Operativo Linux, el otrora "mayor" enemigo y presuntos "haters" del Pingüino Tux dobla las manos y se rinde ante la abrumadora evidencia.

viernes, 17 de agosto de 2018

Hardware Abierto. Hardware definido por Software

Desde que se hizo presente la Virtualización en nuestras vidas, quienes veníamos de la Informática clásica, esa en la que nos inculcaron que el Hardware era rígido, concreto, tangible y el Software era abstracto e intangible, nos fue algo difícil ver en ese momento el inmenso potencial de una Máquina Virtual.

Ya de por sí el concepto de una Capa de Abstracción generada por un software no nos era extraño. El Firmware en contacto directo con el Hardware; el Sistema Operativo con su "Kernel" y sus "Drivers" como marco de trabajo y cimiento de los Servicios de Sistema, la Interfaz Gráfica y las Aplicaciones (de abajo hacia arriba apilados una capa sobre otra).

Ahora el Hipervisor se adueñaba de el Harware Físico y ponía los recursos a las órdenes de las Máquinas Virtuales, de manera dinámica y bajo demanda. Como en un Comunismo Utópico en el que todo es de todos, con ese dictador benévolo que se llama el Hipervisor otorgando dichos recursos a las Cargas Virtuales.

Todo esto dio por resultado poder tener Centros de Datos Definidos por Software (SDDC por sus siglas en inglés) y permitir que el consumo de recursos informáticos se convierta en una operación más inteligente, escalable, confiable, segura.

De los cuatro recursos físicos: Procesador, Memoria, Red y Almacenamiento, es el primero al que siempre consideramos como ese ente monolítico, inmutable y completamente necesario (indispensable) para la ejecución de lo que sea, desde el punto de vista de la Informática. Éste elemento ya diseñado y construido por un proveedor, permanece así como quedó manufacturado, con todos sus alcances y limitaciones. ¿Pero toda la vida tenía que ser así?

Algunos lectores ya se dieron cuenta por dónde vamos. Sí. Procesadores Definidos por Software. ¿En serio? Sí, ¿por qué no? Y mejor aún, todo ello en modalidad abierta. ¿Código Abierto? No. Hardware Abierto.

¿Asombrado, atónito, no das crédito al párrafo anterior? Es lógico. No se apure amigo lector. No estamos bajo el influjo de una droga o en un universo paralelo. Lo que más le va a asombrar es que todo lo mencionado ya existe.

Algo de Historia: Compuertas Lógicas, Micro Controladores y Procesadores

¿Cómo funcionan las Computadoras? Pregunta típica de un niño en los años setenta. Yo entre ellos. Las respuestas eran algo confusas, pero tras la recomendación de un magnífico libro titulado "Cibernética sin matemáticas" escrito por Henryk Greniewski y publicado por el Fondo de Cultura Económica en el año de 1965.

Me quedó claro que todo se basaba en una aritmética en la que a diferencia de nuestro sistema decimal basado en diez guarismos (0, 1, 2, 3, 4, 5, 6, 7, 8 y 9) que se utilizan para representar cantidades, las computadoras utilizan un sistema binario. Dos guarismos o dígitos (0 y 1) son necesarios para representar cantidades.

Pero el 0 y el 1 también pueden ser utilizados para determinar la veracidad o falsedad de proposiciones lógicas. Conceptos como las Tablas de Verdad y los operadores lógicos del Algebra Booleana. ¿Qué es eso? En 1815 George Boole (matemático y lógico británico) propuso una herramienta matemática llamada Álgebra de Boole. Luego en 1938 Claude Shannon propuso que con esta álgebra es posible modelar los llamados Sistemas Digitales. El Álgebra de Boole es un sistema matemático que utiliza variables y operadores lógicos.

Así pues, ya teníamos algo que, con la manipulación, operación de tan solo dos dígitos, podíamos realizar complejas operaciones que imitaban en mucho al razonamiento humano. Qué decir de la realización de cálculos complejos con precisión y exactitud.

Sin entrar demasiado en teoría, la famosa máquina de Alan Mathison Turing usada para descifrar el cuasi indescifrable Código Enigma de los nacionales socialistas alemanes durante la segunda guerra mundial, utilizaba conmutadores electro-mecánicos para dar forma y contexto a los dígitos binarios "0" y "1". ¿Conmutador abierto (apagado)? CERO. ¿Conmutador cerrado (encendido? UNO.

Perfecto. ¿Prendiendo y apagando algo ya estoy haciendo cómputo? De manera muy básica y "rupestre", sí. Falta revisar los Operadores Lógicos o Booleanos:
  • NOT = Negación
  • AND = Conjunción
  • OR = Disyunción

Aquí anexo las "Tablas de Verdad" de cada uno de estos operadores básicos:

Platiquemos un poco del operador NOT, también conocido como INVERSOR. ¿Por qué inversor? Porque a toda entrada A que puede tener sólo los valores "0" (FALSO) o "1" (VERDADERO), corresponde como salida el valor contrario: 1 o 0 (VERDADERO o FALSO) respectivamente.

En el caso de la Conjunción o AND, aquí necesitamos al menos DOS entradas: "A" y "B". Observe que en la Tabla de Verdad, la única manera en la que el resultado es "1" o "VERDADERO" es cuando el valor de ambas variables "A" y "B" es "1" o "VERDADERO". De otra manera el resultado es "0" o "FALSO".

Por último en el caso de la Disyunción u OR, siempre que exista una entrada en "1" o "VERDADERO", el resultado será "1" o "VERDADERO". De otra forma será "0" o "FALSO".

¿Para qué me sirve esto? A modo de un ejemplo sencillo, imagine que tiene Usted el reto de crear un circuito lógico para un automóvil. Este circuito "inteligente" debe controlar cuándo SÍ se podrá poner en marcha el motor del vehículo y cuando no.

Para este ejemplo, imaginemos que el fabricante solicita que:
  1. El sensor del asiento del conductor "A" debe estar en "1" o "VERDADERO", pues hay alguien sentado en el.
  2. Al mismo tiempo, el cinturón de seguridad "B" deberá estar abrochado ("1").
  3. La palanca de velocidades "C" debe estar en posición "PARKING" o "P" ("1"). Cualquier otra posición de la palanca se considera que está en "FALSO" o "0".
  4. El freno de mano "D" podrá estar accionado ("1") o liberado ("0").

Este sería entonces el diagrama de este circuito lógico resultante:


Los elementos del diagrama "AND1" y los demás semejantes, son lo que se llaman Compuertas Lógicas. Estas se incluyen en Circuitos Integrados que ya no utilizan conmutadores electro-magnéticos, sino transistores.

Estos circuitos integrados, muy al principio denominados TTL (Transistor-Transistor Logic) fueron los que permitieron que el hombre llegara a la luna, que comenzáramos a gozar con juegos de video y que nuestros aparatos electrónicos, vehículos y electro-domésticos tuviesen "inteligencia".

Con un solo circuito integrado TTL 7408 de cuatro compuertas "AND" independientes de dos entradas cada una, es posible implementar el circuito arriba incluido y hasta sobraba una compuerta "AND".

Conforme se fueron haciendo más y más complejas las necesidades relativas al cómputo y a las compuertas lógicas, utilizar las compuertas lógicas ya no era conveniente. Era necesario contar con circuitos integrados más complejos para hacer cálculos y/o para añadir inteligencia a nuestros dispositivos industriales y/o domésticos. Nacen entonces dos nuevos componentes:

Microcontroladores

Un microcontrolador (abreviado μC, UC o MCU) es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada/salida.

Algunos microcontroladores pueden utilizar palabras de cuatro bits y funcionan a velocidad de reloj con frecuencias tan bajas como 4 kHz, con un consumo de baja potencia (mW o microwatts). Por lo general, tendrá la capacidad de mantenerse a la espera de un evento como pulsar un botón o de otra interrupción; así, el consumo de energía durante el estado de reposo (reloj de la CPU y los periféricos de la mayoría) puede ser sólo de nanowatts, lo que hace que muchos de ellos sean muy adecuados para aplicaciones con batería de larga duración. Otros microcontroladores pueden servir para roles de rendimiento crítico, donde sea necesario actuar más como un procesador digital de señal (DSP), con velocidades de reloj y consumo de energía más altos.

Cuando es fabricado el microcontrolador, no contiene datos en la memoria ROM. Para que pueda controlar algún proceso es necesario generar o crear y luego grabar en la EEPROM o equivalente del microcontrolador algún programa, el cual puede ser escrito en lenguaje ensamblador u otro lenguaje para microcontroladores; sin embargo, para que el programa pueda ser grabado en la memoria del microcontrolador, debe ser codificado en sistema numérico hexadecimal que es finalmente el sistema que hace trabajar al microcontrolador cuando éste es alimentado con el voltaje adecuado y asociado a dispositivos analógicos y discretos para su funcionamiento.

Microprocesadores

El microprocesador (o simplemente procesador) es el circuito integrado central más complejo de un sistema informático; a modo de ilustración, se le suele llamar por analogía el «cerebro» de un ordenador.

Es el encargado de ejecutar los programas, desde el sistema operativo hasta las aplicaciones de usuario; sólo ejecuta instrucciones programadas en lenguaje de bajo nivel, realizando operaciones aritméticas y lógicas simples, tales como sumar, restar, multiplicar, dividir, las lógicas binarias y accesos a memoria.

Puede contener una o más unidades centrales de procesamiento (CPU) constituidas, esencialmente, por registros, una unidad de control, una unidad aritmético lógica (ALU) y una unidad de cálculo en coma flotante (conocida antiguamente como «coprocesador matemático»).

Tanto las Compuertas Lógicas, como los Microcontroladores y los Microprocesadores, están fabricados bajo un diseño específico que nunca cambiará. Será el ser humano el que deberá ingeniárselas para interconectar estos artilugios de silicio, oro, cobre y demás elementos químicos para que realicen una operación determinada.

FPGA. Matrices de Compuertas Programables "In Situ"

Una FPGA o matriz de puertas programables (del inglés field-programmable gate array) es un dispositivo programable que contiene bloques de lógica cuya interconexión y funcionalidad puede ser configurada en el momento mediante un lenguaje de descripción especializado. La lógica programable puede reproducir desde funciones tan sencillas como las llevadas a cabo por una puerta lógica o un sistema combinacional hasta complejos sistemas en un chip.

Las FPGA se utilizan en aplicaciones similares a los ASIC sin embargo son más lentas, tienen un mayor consumo de energía y no pueden abarcar sistemas tan complejos como ellos. A pesar de esto, las FPGA tienen las ventajas de ser reprogramables (lo que añade una enorme flexibilidad al flujo de diseño), sus costes de desarrollo y adquisición son mucho menores para pequeñas cantidades de dispositivos y el tiempo de desarrollo es también menor.

Ciertos fabricantes cuentan con FPGA que sólo se pueden programar una vez, por lo que sus ventajas e inconvenientes se encuentran a medio camino entre los ASIC y las FPGA reprogramables.

En pocas palabras, estas Matrices de Compuertas Programables o FPGAs, pueden ser configuradas por software para funcionar como Compuertas Lógicas, Microcontroladores o Microprocesadores. ¿Circuitos Integrados Definidos por Software? ¡¡¡ Sí !!!

Los alcances que tiene esta tecnología son sencillamente fabulosos y abren aún más las posibilidades para quienes los incluyen en dispositivos industriales, empresariales o domésticos.

¿Qué le parecería tener un dispositivo inteligente como una LapTop, una Tablet o un Teléfono Inteligente, que no solamente sea posible actualizar el Sistema Operativo con fines de mejorar su desempeño o arreglar posibles fallas de programación, sino que además ahora se pueda actualizar su hardwer sin necesidad de abrir el aparato.

Sí. El fabricante podrá manufacturar equipos todos idénticos, pero los alcances y limitaciones de éste dependerán de la configuración de sus FPGAs internas. Podemos comenzar adquiriendo la "licencia" o paquete "Starter", en la que la o las FPGAs se comportarán como un equipo económico de tan solo dos procesadores.

Con el pago de un paquete o licencia superior, podremos escalar a ocho procesadores, doce, diez y seis o más. Podremos añadir GPUs aceleradoras de video y poco a poco escalar hasta contar con un equipo con un desempeño inmenso y posibilidades más allá de lo que nuestra imaginación puede llega a visualizar.

¿Qué decir de otros dispositivos como computadoras de a bordo en aviones, automóviles, motocicletas? También electrodomésticos más y más versátiles e inteligentes que puedan realizar más funciones con más precisión, mayor exactitud y con un uso más inteligente y racional de energía eléctrica, agua, etc.

¿Qué tan posible, factible y/o a futuro es llegar a este punto? Ya llegamos desde hace tiempo. Sí. Hace apenas un mes que Massimo Banzi, cofundador y Director de Tecnología de ARDUINO, anunció la disponibilidad del ARDUINO MKR VIDOR 4000. Su corazón ya no es un microcontrolador, sino una FPGA. Tiene un costo de $60.00 USD y es posible acceder a ella a través de un conector Micro PCIe.

Gracias a los esfuerzos de Clifford Wolf con su proyecto IceStorm, Adrian Bowyer y sus tremendas contribuciones al Open Source Hardware y al Open Source y toda la comunidad Abierta, los avances en materia de FPGA son tales que ahora los fabricantes y proveedores de Hardware y Software, ya no piensan en Microcontroladores o Microprocesadores, sino en FPGA como el cimiento de sus desarrollos a mediano y largo plazo.

FPGA plantea una nueva forma de hacer las cosas. Un nuevo paradigma que como todos, subsana muchos de los requerimientos actuales en el campo de las Tecnologías de la Información, pero como es costumbre plantea nuevos retos.

Esta tecnología tiene la bondad de ofrecer una relación costo-beneficio muy positiva y como todo aquello que resulta económica y tecnológicamente rentable, trascenderá e incluso "amenaza" con sustituir a tecnologías que "a priori" ya se ven como obsoletas.

¿En conclusión? FPGA es el pasado cercano, presente y futuro a largo plazo de las nuevas Tecnologías de la Información basadas en plataformas Abiertas. ¿Ya conoce Usted FPGA?