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

jueves, 27 de agosto de 2020

La evolución de las Tecnologías de la Información hacia la hiperconvergencia

Las tecnologías avanzadas alteran continuamente el panorama de nuestro mundo y cada paso es una evolución incremental que lo impulsa hacia adelante. Las empresas modernas dependen en gran medida de esta disrupción positiva cíclica e iterativa para ser competitivas en el mercado e innovar, brindando nuevos servicios y productos a sus clientes más rápido que nunca.

Las empresas también exigen flexibilidad, posibilidad de elegir, agilidad y rentabilidad de estas tecnologías habilitadoras, para garantizar que las capacidades comerciales puedan cambiar con la demanda, el mercado, la misión comercial, etc.

En la última década, el auge de los servicios en la nube satisfizo la demanda de más Tecnologías de la Información y agilidad empresarial, lo que permitió que nuevas aplicaciones y servicios estuvieran en línea casi de la noche a la mañana. Sin embargo, esta capacidad creó problemas secundarios de expansión de datos y sistemas, gobernanza y estratificación del cumplimiento, costando a las empresas más que los modelos tradicionales de centros de datos, ya que carecía de controles de costos maduros.

Entonces, por estas razones y más, las empresas se dieron cuenta de que ciertas cargas de trabajo y conjuntos de datos eran más adecuados para sus centros de datos, mientras que otras requerían una arquitectura a escala "web" que llegara a una audiencia global, sin fricciones ni resistencia alguna. Así nació el modelo de nube híbrida. Ésta combina control, flexibilidad, seguridad, escalabilidad y rentabilidad, satisfaciendo las necesidades tanto de las empresas como de los clientes. Pero para comprender realmente los impulsores comerciales que llevaron a la nube híbrida, debemos analizar brevemente dónde comenzó todo esto. Y todo empezó con El Mainframe (la Primera Plataforma).

Mainframes (nace la Primera Plataforma)

Comenzando con la computación basada en Mainframes u Computadoras Centrales, los usuarios tenían la capacidad de crear estructuras de código monolíticas masivas, que residían en equipos en gran parte aislados y hechos a la medida. La potencia de procesamiento y el diseño centralizado de este sistema lo hacían muy costoso e inflexible. Utilizaban tecnología propietaria y el mantenimiento de cada sistema requería capacitación especializada y una coordinación cuidadosa, para garantizar interrupciones comerciales mínimas.

En caso de falla, se requiere forzosamente de un Mainframe Secundario, y la restauración desde las cintas de respaldo puede tardar días en completarse (Recovery Time Objective prolongado). Hablando de las aplicaciones, éstas tenían que ser escritas a medida para cada plataforma, lo que requería mucho tiempo y dinero.

Servidores Unix (nace la Segunda Plataforma)

La creación de los sistemas operativos Unix impulsó una estandarización de hardware y software en sistemas más enfocados y manejables. Esta homogeneidad permitió a los operadores de computadoras estandarizar sus habilidades y mantener los sistemas de manera similar en cualquier rubro de negocio o empresas. Sin embargo, el hardware del sistema Unix todavía está especializado por el proveedor (IBM POWER, IA64, SUN SPARC y otros), al igual que los distintos Sistemas Operativos Unix. 

Las aplicaciones (ahora en modalidad Cliente-Servidor) se desarrollan pero aún no se transfieren entre proveedores dispares, creando un bloqueo y requiriendo conjuntos de habilidades personalizados para los operadores de computadoras. Creación de Silos de Cómputo.

Arquitecturas Intel-AMD x86/X64 (se consolida la Segunda Plataforma)

En los años noventa hace acto de presencia la plataforma Intel-AMD x86/X64: un conjunto de hardware comercializado que se entrega de manera rápida, económica y estandarizada de la forma en la que se crean los sistemas de hardware en la actualidad. Al optimizar la arquitectura de hardware subyacente, los siguientes sistemas operativos en sistemas Intel-AMD x86/X64 se administran más fácilmente que sus contrapartes. Los componentes y los sistemas completos son intercambiables, las imágenes del Sistema Operativo se transfiere con relativa facilidad y las aplicaciones se desarrollan y migran más rápidamente a nuevos sistemas.

El avance de los sistemas Intel-AMD x86/X64 también hizo que la innovación de hardware supere la demanda de software, donde los sistemas multinúcleo con abundante memoria y almacenamiento quedarían inactivos o subutilizados en algunos momentos, debido a la naturaleza estática del tamaño del sistema. Los servidores Intel-AMD x86/X64 sufrieron su propio éxito y requirieron más innovación a nivel de software para desbloquear la próxima innovación: La Virtualización.

Virtualización de la Arquitectura Intel-AMD x86/X64 (cimientos de la Tercera Plataforma)

Aquí es menester hacer un paréntesis, pues el concepto de "Hipervisor" y por ende "Virtualización", ya había sido creado desde la era de los Mainframes. Pues gracias a ambos era posible poder ejecutar múltiples Cargas de Trabajo en el mismo Hardware.

La Virtualización de la Arquitectura Intel-AMD x86/X64 (como en cualquier otra plataforma) abstrae un sistema operativo de su hardware subyacente, lo que permite que cualquier sistema operativo que ya de por sí se podía ejecutar sobre la Arquitectura Intel-AMD x86/X64, ahora se pueda ejecutar simultáneamente con otros sistemas operativos en el mismo servidor "Bare Metal" (de manera nativa o a metal desnudo). Esto permitió aún más flexibilidad, ahorro de costos y eficiencia, así como portabilidad; ahora las aplicaciones se envían preinstaladas dentro de los “archivos” o imágenes de la máquina virtual. Estos sistemas virtualizados maximizan la densidad del sistema operativo al hardware, reduciendo los costos en el centro de datos y habilitando nuevas formas programáticas para implementar rápidamente nuevas Cargas de Trabajo.

Los sistemas virtualizados aún requerían cierta sobrecarga de mantenimiento y un conjunto de habilidades especializadas para operar y mantener. Con frecuencia las empresas sufrían la complejidad operativa de mantener cientos o incluso miles de máquinas virtuales a escala. Las mejoras, actualizaciones y el mantenimiento del sistema aún requerían una coordinación y planificación cuidadosas y a menudo, interrumpían las operaciones comerciales. Este modelo volvió a cambiar positivamente cuando se introdujeron "Los Contenedores".

Contenedores (consolidación de la Tercera Plataforma)

Los Contenedores son imágenes preempaquetadas de software (Microservicios), que utilizan fracciones de la capacidad informática y de almacenamiento de las máquinas virtuales, que se pueden implementar instantáneamente en cualquier ambiente de ejecución preparado para contenedores (Docker), a través de la automatización y la orquestación (Kubernetes).

Estas pequeñas unidades de cómputo (Microservicios) permitieron a los desarrolladores probar e implementar código rápidamente en cuestión de minutos en lugar de revisar los cambios de software en un repositorio en días, habilitando un ciclo de prueba y compilación de software automatizado que podría simplemente monitorearse, sin requerir grandes esfuerzos para su administración.

Los Contenedores también permitieron subdividir las aplicaciones en "Microservicios" más pequeños, donde no es necesario que una aplicación completa resida en la misma instancia o sistema operativo, sino solo una fracción que podría satisfacer una demanda comercial conocida. Esta capacidad combinada con el modelo operativo de La Nube "paga por lo que usa", permitió a las empresas pagar realmente solo por los servicios que necesitaban, cuando los necesitaban.

Arquitectura Sin Servidor (Serverless)

Atomizando las aplicaciones aún más, la computación Sin Servidor o la “Función como un Servicio” minimizó aún más la huella de los servicios de aplicaciones, al ejecutar solo pequeñas secciones de código a la vez. La computación Sin Servidor permitió a las empresas consumir fracciones de tiempo computacional y almacenamiento mínimo, simplemente ejecutando su código "bajo demanda" y sin la necesidad de poseer, administrar y dar mantenimiento al resto de la infraestructura subyacente.

En cada paso del camino, la potencia informática se mejoró, se hizo más eficiente y acercó las aplicaciones a su entorno operativo deseado siempre procurando obtener el desempeño y rendimiento correcto, satisfaciendo la demanda correcta del cliente, exactamente al costo y escala correctos.

Sin embargo, la informática Sin Servidor no es la única opción para obtener el mejor rendimiento, al menor costo y con la más óptima escalabilidad. Como ya hemos mencionado en este Blog Tecnológico, existe un riesgo inherente al entregar el control completo del hardware a un tercero y simplemente consumir recursos como un servicio. Una organización que pierde el control de sus datos no es un escenario ideal, por lo que existe una clara necesidad de una solución local que brinde los mismos beneficios que ofrece la computación sin servidor, pero sin los riesgos de seguridad y gobernabilidad.

Esa solución alternativa local es la Hiperconvergencia.

Infraestructura Hiperconvergente

La Infraestructura Hiperconvergente es aquella que gracias a La Virtualización de todos los elementos de los sistemas convencionales otrora "definidos por hardware", ahora son definidos por software. La Infraestructura Hiperconvergente (HCI por sus siglas en inglés) incluye como mínimo, recursos de cómputo (procesador y memoria) , almacenamiento y redes definidos por software . 

La Infraestructura Hiperconvergente normalmente se ejecuta en servidores comerciales listos para usar, dando como resultado los Centros de Datos Definidos por Software (SDDC por sus siglas en inglés) que permiten ofrecer a los Usuarios una Infraestructura como un Servicio (IaaS), en modalidad de Nube Privada. 

Algo muy importante a tomar en cuenta en este momento, es que la Infraestructura Hiperconvergente no sustituye ni a La Virtualización ni mucho menos a los Microservicios que vienen aparejados con Los Contenedores. Digamos que más bien aquí gracias a La Virtualización puede existir la Infraestructura Hiperconvergente, mientras que sobre una Infraestructura Hiperconvergente es posible el ejecutar Microservicios en formato de Contenedores.

Aunque se antoja pensar que la Infraestructura Hiperconvergente es el pináculo de las Tecnologías de la Información, recordemos que ésta permite que las empresas puedan gozar de Infraestructura como un Servicio en Nube Privada y Nube Híbrida (en conjunción con la Núbe Pública). Pero estamos muy seguros de que este es un escalón más a ambientes de cómputo cada vez más eficientes, flexibles y bajo demanda.

¿En qué estado se encuentran actualmente sus Tecnologías de la Información?

domingo, 31 de diciembre de 2017

El Código Abierto y la Transformación Digital...

Transformación Digital. Eso que todo mundo está hablando en estos días. Hablando acerca de múltiples tecnologías y múltiples maneras de transformar la manera en como hoy hacemos negocio.

Cosas como Big Data, Movilidad, La Nube, Contenedores, DevOps, etc. Son justamente estas tecnologías que compañías como Uber, AirBNB, etc. están utilizando para irrumpir dramáticamente en el escenario de los negocios tradicionales. Lo más interesante a tomar en cuenta es cómo todas las compañías que presentan los más altos índices de innovación, son precisamente aquellas que ya han implementado exitosamente estas nuevas tecnologías.

Esta irrupción tecnológica no solamente ha afectado y va a afectar a inmensas compañías tradicionales, sino que ahora empodera e impulsa a pequeños negocios a competir mano a mano, cara a cara contra esos gigantes de cualquier rama de la industria.

Las oportunidades que estas tecnologías nos presentan son inmensas. Pueden ser implementadas para desarrollar nuevos negocios en las empresas, ofrecer nuevos servicios o inclusive competir en nuevas áreas que en principio parecían completamente ajenas.

Para hablar más concretamente de los elementos principales de la Transformación Digital, directo de la Tercera Plataforma tenemos a Big Data. ¿Cómo detectamos, capturamos, encontramos valor en esa descomunal cantidad de datos que actualmente almacenamos en nuestras organizaciones? Precisamente con Big Data.

Frecuentemente, esos datos son generados por el mundo de las Aplicaciones Móviles. También de la Tercera Plataforma, la Movilidad. En estos días no importa si la empresa fabrica lavadoras o automóviles, los clientes están demandando más interacción de estos bienes a través de aplicaciones ejecutándose en sus dispositivos móviles.

Hablando de Interacción, una vez más desde la Tercera Plataforma, tenemos a Social Business. Hoy no hay empresa que deje de lado las Redes Sociales, el Correo Electrónico, la interacción a través de "chats" o incluso creando tendencias a través de los famosos "hashtags". Todo ello con el objetivo de formar comunidades que promuevan interacción omnidireccional entre la Organización, los Clientes Finales, Proveedores, etc.

Todo esto, obviamente arropado y soportado por Centros de Datos Definidos por Software (nube privada) y por la Nube Pública en general. Otra vez, la Tercera Plataforma hace acto de presencia. La Nube, ese concepto, ese paradigma del que ya hace unos años venimos hablando constante y consistentemente que permite a las áreas de Tecnologías de la Información de nuestras Organizaciones, hacer un uso más inteligente, eficiente, ubicuo e independiente de la Infraestructura, las Plataformas y el Software.

Precisamente para la Transformación Digital, La Nube es el concepto clave pues plantea una nueva manera de consumir los recursos informáticos de manera en la que la escalabilidad vertical, horizontal e híbrida se dan de manera completamente natural y no como un accesorio.

No puede existir un Centro de Datos Definido por Software sin la Capa de Abstracción que de manera natural nos ofrece la Virtualización, así como el poder de la Hiperconvergencia. Pero dentro de todo este escenario irrumpe un concepto que al mundo de las Tecnologías de la Información en general, da un impulso adicional orientado a los aplicativos: Contenedores.

Los Contenedores son -"...paquetes ligeros, autónomos y ejecutables de una pieza de software que incluye todo lo necesario para ejecutarlo: código, tiempo de ejecución, herramientas del sistema, bibliotecas del sistema, configuraciones."- (Definición tomada de la página oficial https://www.docker.com/what-container).

Aunque su nacimiento se dio dentro de la Comunidad de Código Abierto (Open Source) sobre sistemas operativos Linux, ahora están disponibles para aplicaciones basadas en Linux y Windows. El software en contenedor siempre funcionará igual, independientemente del entorno. Los contenedores aíslan el software de su entorno, por ejemplo, las diferencias entre los entornos de desarrollo y de etapas, y ayudan a reducir los conflictos entre los equipos que ejecutan software diferente en la misma infraestructura.

Si vamos a hablar de Aplicaciones, obviamente no podemos dejar de lado al Desarrollo. Hoy la nueva tendencia es esa sinergia entre el área de Desarrollo y el área de Operaciones. Esta sinergia tiene un nombre: DevOps.

DevOps conjunta las necesidades del área de Operaciones y en conjunto con el área de Desarrollo, se busca obtener aplicaciones sencillas, seguras, confiables y escalables. Dichas aplicaciones podrán entonces ejecutarse dentro de un Contenedor, en una Máquina Virtual, sea en un ambiente de Nube Privada o Nube Pública.

Poniendo atención a todo lo anterior, podremos darnos cuenta de que todo esto no es posible en un mundo de aplicaciones, ambientes y plataformas que sean cerradas y/o monolíticas. Se requiere entonces de los buenos oficios del Código Abierto u Open Source.

Solo por poner en la mesa algunos ejemplos de soluciones, herramientas, plataformas, marcos de trabajo, etc. de Código abierto, comencemos con Hadoop.

Hadoop es el marco de trabajo para lenguaje Java, que permite ser la plataforma ideal para cualquier solución que involucre a Big Data.

Android. Con el 85% del mercado de dispositivos móviles, es hoy por hoy el sistema operativo y la plataforma de ejecución más importante para dispositivos móviles. Android es Linux y Linux es Código Abierto.

¿Facebook? Facebook está hecha y es ejecutada ENTERAMENTE en sistemas operativos, plataforma, infraestructura basada por completo en Open Source. Desde sus Servidores de Cómputo, sus dispositivos de redes, su lenguaje de programación, etc. Todo está sobre Código Abierto.

Amazon, el jugador más grande de Infraestructura y Plataforma como un Servicio (ambos pilares de La Nube), ha creado toda su capa de Nube Pública. El concepto de los Contenedores y la Hiperconvergencia, provienen también de la Comunidad de Código Abierto. ¿DevOps? También Código Abierto.

¿Alguna duda de quiénes tienen en sus manos la clave para concretar exitosamente la Transformación Digital?