Para la mayoría de las empresas de TI, los años de innovación, crecimiento y adquisición han dado como resultado la expansión de la infraestructura que pone a prueba las capacidades de administración. A pesar de que las aplicaciones y los sistemas de TI a menudo son diseñados de manera cuidadosa e implementados por manos expertas, la magnitud de las inversiones actuales de TI se ha convertido en un tema a tomar en cuenta. Incluso cuando las mejores tecnologías, estándares y proveedores líderes del mercado más recomendados, y las modernas arquitecturas como SOA han sido implementadas de manera generalizada, la mayoría de las empresas ahora reconoce tener demasiadas plataformas, tecnologías, experiencias en distintas áreas, y también demasiados proveedores para coordinar y administrar los sistemas.
En respuesta a esto, ciertas tecnologías y prácticas se han convertido en el elemento focal para grandes empresas, que van desde la virtualización y el almacenamiento centralizado hasta la estandarización del software y hardware en toda la empresa. No obstante, un reciente debate sobre las técnicas de reducción de costos ha dado lugar a un debate aún mayor sobre la verdadera transformación de las TI, desde el centro de costos hasta el centro de ganancias. Por lo general, este tipo de transformación implica adoptar una infraestructura más centralizada, automatizada y elástica comúnmente denominada cómputo en una nube privada (private cloud computing). Los enfoques en tiempo real que verdaderamente cumplen con la promesa de la nube privada proponen sistemas diseñados conjuntamente para obtener el máximo desempeño mientras se logra un equilibrio entre apertura, fiabilidad, costos, flexibilidad y eficiencia en los recursos.
Tal vez lo más importante es que estos sistemas desarrollados no deben ser monolíticos y las empresas deben tener la posibilidad de implementarlos en cualquier momento, según las verdaderas necesidades de negocio y sus plazos razonables de inversión. Oracle Exalogic Elastic Cloud es el primer sistema del mundo diseñado específicamente para brindar a las empresas una base sólida para crear una nube privada segura, de misión crítica, capaz de escalar prácticamente sin limitaciones, ofrecer un desempeño insuperable y una simplicidad de administración nunca antes imaginable. Exalogic es la plataforma ideal para aplicaciones de todo tipo, desde aplicaciones departamentales de menor escala hasta las aplicaciones de mainframe y ERP más complejas y exigentes.
A pesar de que Exalogic ha sido optimizado para las aplicaciones de Oracle Fusion, Oracle Fusion Middleware y Java, también ofrece un excelente entorno para la gran cantidad de aplicaciones Linux y Solaris externas y hechas a medida que se implementan en la actualidad. En resumen, Exalogic es un verdadero avance hacia la visión de Oracle para el desarrollo del centro de datos del siglo XXI.
Hardware de Oracle Exalogic Elastic Cloud
El hardware de Exalogic se ofrece previamente ensamblado y se entrega en configuraciones dentro de un gabinete estándar de 19’’y 42U. Cada configuración Exalogic es una unidad de capacidad de nube elástica, balanceada para soportar cargas de trabajo que requieren una gran cantidad de recursos informáticos. Cada configuración Exalogic contiene una cantidad de nodos que se pueden intercambiar sin necesidad de desconectarse, un subsistema de almacenamiento de disco en clúster de alto desempeño, y una estructura de interconexión (fabric) de gran capacidad de ancho de banda con los switches necesarios para conectar cada componente individual dentro de la configuración, así como para conectar externamente cualquier gabinete adicional de Exalogic o Exadata Database Machine.
Asimismo, cada configuración incluye múltiples puertos Ethernet de 10 Gigabits para integrarse con la red de servicios del centro de datos y puertos Ethernet de un Gigabit utilizados para integrarse con las redes de administración del mismo centro de datos. Todas las configuraciones Exalogic son completamente redundantes en cada nivel y son diseñadas sin ningún punto de falla. Cada nodo Exalogic es una unidad totalmente autocontenida de capacidad de cómputo con procesadores SPARC-T3 o x86 Xeon de múltiples núcleos, fuentes de alimentación redundantes, memoria rápida tipo ECC DIMM, e interfaces de InfiniBand (Infiniband Host Channel Adapters). Cada nodo además contiene dos discos de estado sólido (SSDs), los cuales albergan las imágenes del sistema operativo utilizadas para iniciar el nodo y actuar como almacenamiento así como el espacio de memoria virtual (swap) local de gran rendimiento y para los datos de diagnóstico generados por el sistema durante los procedimiento de administración de fallas. InfiniBand es esencial para el sistema Exalogic Elastic Cloud.
Además de proporcionar una interconexión extremadamente rápida y de alto rendimiento entre todas las unidades de hardware dentro de una implementación, también brinda gran elasticidad, aislamiento de aplicaciones y altos niveles de escalamiento.
Existen dos enfoques tradicionales para aumentar la capacidad de cómputo en un centro de datos, el enfoque más básico es el escalamiento vertical. Este tipo de escalamiento añade mayor capacidad a una computadora individual, pero con importantes limitaciones en cuanto al nivel de escalamiento de una computadora única con una configuración equilibrada. Asimismo, el escalamiento vertical potencia el impacto de cualquier falla de sistema. Recientemente, el escalamiento horizontal se ha vuelto más común como Ethernet.
El escalamiento horizontal aumenta tanto la capacidad de cómputo como la tolerancia ante las fallas individuales del sistema. No obstante, los sistemas horizontalmente expandidos funcionan como una colección de computadoras separadas que requieren coordinación. Esta coordinación está amenazada por el rendimiento, la latencia y la falta de funciones de cluster de primer nivel en redes Ethernet básicas. Contrariamente, la estructura conmutada de E/S del InfiniBand utilizada por el sistema Exalogic.
Software de Oracle Exalogic Elastic Cloud
Java es la tecnología de implementación de aplicaciones más generalizada y exitosa utilizada por las empresas de hoy. Exalogic ha sido diseñada desde cero con el objeto de ofrecer el entorno ideal para las aplicaciones e infraestructuras basadas en Java. El portafolio completo de Oracle Fusion Middleware ha sido diseñado para implementarse en Exalogic. Asimismo, con la incorporación reciente del portafolio de Oracle Fusion Applications, también podrá ser implementado en Exalogic.
El software de Oracle Exalogic Elastic Cloud incluye una cantidad de optimizaciones y mejoras que han sido realizadas en los principales productos de Oracle WebLogic Suite, la base esencial de Java sobre la cual se desarrollan las aplicaciones Oracle de próxima generación. Oracle WebLogic Suite incluye Oracle WebLogic Server, Oracle Coherence, Oracle JRockit y Oracle HotSpot. Además del soporte exclusivo para las aplicaciones Java y Oracle Fusion Middleware, Exalogic también brinda a los usuarios la posibilidad de optar por los sistemas operativos de Oracle Linux y Oracle Solaris.
Exalogic es 100% compatible con todas las aplicaciones Oracle Linux 5 y Solaris 11 estándar, y no se requiere ninguna certificación especial para Exalogic.
Oracle Enterprise Manager ofrece la administración desde la aplicación hasta el disco a través de Grid Control y OpsCenter. Enterprise Manager permite monitorear en tiempo real cada componente de hardware individual dentro de una implementación Exalogic y a decisión del cliente, informar automáticamente del estado del sistema a Oracle Support para un mantenimiento proactivo y preventivo del sistema.
A través de la integración con Oracle Support, Enterprise Manager puede aplicar grupos de parches probados para Exalogic que abarcan cada nivel del sistema, desde el sistema operativo y el 6 firmware de dispositivos hasta la máquina virtual de Java(JVM), el servidor de aplicaciones, el Fusion Optimizaciones Técnicas del Software de Exalogic Elastic Cloud Dentro de la infraestructura de software que se ejecuta en Exalogic se han realizado optimizaciones técnicas en el WebLogic Server, el Coherence, el JRockit y en el Hotspot que generan grandes beneficios de desempeño.
Estas optimizaciones de software abarcan dos importantes categorías:
- Optimizaciones de Software para el Hardware del Exalogic
La plataforma de hardware Exalogic Elastic Cloud es una combinación específica de capacidad de cómputo, configuración de memoria, conexión de redes y almacenamiento disponible para las cargas de trabajo del middleware. Como resultado de una cuidadosa construcción del hardware, el software puede ser configurado y personalizado específicamente para aprovechar la cantidad de procesadores y núcleos en cada nodo, la velocidad de conexión de red exacta, la localización del almacenamiento flash, y las características de desempeño de la infraestructura de almacenamiento. Incluso dentro de una infraestructura de hardware distinta al Exalogic, éste puede resultar un ejercicio de optimización desafiante dada la capacidad de configuración disponible en los diferentes niveles del sistema operativo, de la máquina virtual de Java (JVM), del servidor de aplicaciones WebLogic Server y del Coherence. Con respecto al Exalogic Elastic Cloud, Oracle no solo ha adaptado previamente la infraestructura de software utilizando sus características originales, sino que ha diseñado importantes y nuevos cambios arquitectónicos en el software para mejorar drásticamente el desempeño de los componentes de hardware que no pertenecen a Exalogic.
- Optimizaciones de Software para la Base de Datos de Oracle: Una característica esencial de Exalogic Elastic Cloud es su modo de integrarse con Oracle RAC y específicamente en la manera en que Oracle RAC se ejecuta en Oracle Exadata. Los beneficios de este desempeño abarcan tres importantes áreas con RAC y Exadata:
- Exalogic puede integrarse directamente con Exadata utilizando InfiniBand como estructura de gran velocidad sin interrupción que se conecta a las dos soluciones de hardware juntas. Como resultado de la tecnología InfiniBand, dichas configuraciones se convierten efectivamente en una amplia estructura informática de gran velocidad que ejecuta arreglos de middleware y arreglos de base de datos.
- Para garantizar que la conectividad entre Exalogic y Exadata no solo se produzca en el nivel de estructura de InfiniBand, éste se encuentra totalmente disponible para la infraestructura WebLogic, WebLogic Server y el driver JDBC los cuales han sido diseñados con el fin de comunicarse nativamente a través de los protocolos disponibles en InfiniBand.
- Finalmente se ha incorporado una innovadora característica como parte del software de Exalogic Elastic Cloud dentro de WebLogic Server, denominada Active Grid Link para RAC. Esta característica permite a WebLogic Server conectarse a instancias del RAC, tanto en Exadata e independientemente de Exadata, al aumentar las conexiones JDBC con un nuevo canal basado en eventos para las instancias de RAC y con la finalidad de compartir la información de estado con el WebLogic Server. Estas optimizaciones para que el Exalogic se comunique con RAC mejoran drásticamente el desempeño de las aplicaciones OLTP hasta dos o tres veces si lo comparamos con WebLogic Server que se ejecuta en un hardware estándar.
Optimizaciones del Software Exalogic Elastic Cloud para el Hardware Exalogic
Tal vez lo más importante para la infraestructura de software dentro del Exalogic es el uso de InfiniBand como estructura de red interna. InfiniBand es un enlace de comunicaciones de estructura conmutada estándar en la industria ampliamente utilizado en centros de datos empresariales e informáticos de alto desempeño.
Para Exalogic, se utiliza Quad Data Rate (QDR) InfiniBand, que permite un ancho de banda de hasta 40Gb/s con una latencia (Message Passing Interface MPI ping) de tan solo 1.2 microsegundos. El protocolo de conexión nativo InfiniBand es Socket Direct Protocol (SDP), pero también se puede construir el IP estándar en InfiniBand (IPoIB), lo que permite que cualquier solución basada en TCP/IP se ejecute en el Exalogic. Además de un mayor ancho de banda y una menor latencia, otra característica clave de InfiniBand es la capacidad de enviar paquetes mucho más grandes en la capa de red. Con IPoIB, la Unidad de Transmisión Máxima (MTU) se establece en 64K, y con SDP el tamaño de MTU comienza a partir de los 32K y luego puede autoajustarse a un tamaño arbitrariamente mayor.
Reducción de Copias de Buffer
Dentro de esta infraestructura de red altamente optimizada, la primera área que debía actualizarse era la infraestructura de E/S del WebLogic Server y la comunicación de lectura y escritura entre el servidor WebLogic y la capa de sockets en el InfiniBand. El objetivo era optimizar el flujo de entrada y salida del tráfico del WebLogic en la estructura InfiniBand. El foco de atención se concentraba en dos áreas:
- Hace varios años, con la introducción de la funcionalidad del Native Input Output (NIO) en Java SE 1.4, WebLogic Servertuvo que extender su solución de E/S nativa interna para adoptar la solución Java SE adecuada. En Exalogic este enfoque fue optimizado aún más al aprovechar por completo la función Java NIO Byte Buffers y así evitar copiar el contenido del buffer de mensajes hacia (o desde) cualquier buffer intermedio antes(o después) de cada invocación a una de las operaciones de E/S nativas del sistema operativo subyacente. Java VM de JRockit y Hotspot también han sido adaptados para soportar esta arquitectura de red altamente optimizada.
Esta optimización no solo se realizó a través de la infraestructura principal del kernel de WebLogic Server sino también en las construcciones clave del modelo de programación Java EE, en áreas relacionadas con el tiempo de ejecución del servlet de WebLogic Server, dando como resultado una reducción drástica en la cantidad de copias de buffer en el modelo de programación, en el tiempo de ejecución del servidor de aplicaciones, en la máquina virtual de Java (JVM), y finalmente en la capa de red. Esto complementa e incrementa directamente la capacidad de InfiniBand en el Exalogic en donde Para tener un panorama de la magnitud de este cambio, dentro del WebLogic Server adecuado, se han eliminado cuatro copias de buffer – reduciendo de manera efectiva el copiado interno en más del 65%, siguiendo el camino Java I/O desde un JSP típico hasta servlet en el kernel de WebLogic Server.
- InfiniBand permite la comunicación entre procesos en el nivel de red utilizando paquetes significativamente mayores que el tradicional tamaño de 1.5K de MTU con el Ethernet – otro cambio estructural que fue introducido en WebLogic Serverha sido el uso de la E/S vectorizada (o “scatter/gather”). Scatter/gather hace referencia al proceso de recopilar información desde un grupo determinado de buffers o mensajes, o esparcir esta información endicho grupo de buffers o mensajes con una sola operación en lugar de hacerlo a través de múltiples operaciones. Debido a que cada operación de lectura/escritura implica una (costosa) llamada desde el espacio del usuario al kernel, esto representa un importante ahorro en los ciclos de la unidad central de procesamiento (CPU).
Con el proceso scatter/gather de E/S lo que efectivamente sucede es que WebLogic Server puede utilizar una sola llamada de procedimiento para escribir secuencialmente los datos desde múltiples mensajes (por ej., bloques de 4K dentro deWebLogic Server) a un único stream de datos y luego leer los datos desde un único stream de datos de regreso a los múltiples mensajes.Con este cambiose produce una reducción drástica de impedancia entre el tamaño 4K de los mensajes internos dentro deWebLogic Server y el MTU de 64K con IPoIB y particularmente el MTU arbitrariamente amplio con SDP.
Este enfoque ha complementado las optimizaciones de buffer NIO y ha sido esencial para el armado y desarmado de paquetes más grandes que fluyen en InfiniBand en, entre y desde las instancias del WebLogic Server.
Canales Paralelos en Socket Direct Protocol (SDP)
El siguiente grupo de cambios realizados consistió en permitir que la infraestructura de canal de red de WebLogic Server aprovechara las capacidades de InfiniBand de manera nativa. SDP se integró a los múltiples niveles de las capas del software, específicamente en el driver de Oracle JDBC y el JRockit y Hotspot, y luego a través de propiedades estándar configurables dentro de WebLogic Server.
Esto permitió a todos los canales de red dentro deWebLogic Server – HTTP(S), T3(S), IIOP (S) y otros – comunicarse nativamente a través del SDP. Luego, debido a que el WebLogic Server ha sido originalmente optimizado para una red Ethernet de 10Gb/s, fue necesario volver a revisar las cargas de trabajo estándar de Java EE como las aplicaciones de Internet, las aplicaciones basadas en mensajes, y las aplicaciones de base de datos para determinar si podían ser optimizadas para hacer uso del InfiniBand. Un área clave en donde las optimizaciones se han vuelto aparentes ha sido el área de E/S de red basada en sockets en, entre o desde las instancias del WebLogic Server. WebLogic Server utiliza un concepto denominado canales de red para manejar dichas comunicaciones.
Para facilitar el uso de múltiples protocolos – HTTP(S), T3(S), IIOP(S) y otros – en un canal de red único, WebLogic Server utiliza una construcción interna de bajo nivel denominada muxer que actúa como multiplexor y demultiplexor para el tráfico de red. En esta árease han producido dos cambios exclusivos dentro de WebLogic Server:
- La Unidad Máxima de Transferencia (MTU) en una Ethernet de 10Gb/s es de 1,5K, y este es el valor por defecto configurado en la distribución estándar de WebLogic Server. No obstante, debido a que InfiniBand permite tener una MTU significativamente más elevada con IPoIB, (64K), y una MTU autoajustable y potencialmente elevada con SDP, WebLogic Server en el Exalogic fue primero optimizado a través del cambio de la E/S del scatter/gather para escribir recopilaciones de bloques más grandes en la MTU disponible para la capa del protocolo InfiniBand – con opción de protocolo IPoIB o SDP.
- Cuando se combinó una MTU más elevada con mayor ancho de banda de InfiniBand, también fue necesario rediseñar la infraestructura muxer de WebLogic Server para incrementar significativamente el flujo de los paquetes en, entre y desde las instancias del WebLogic Server. Esto se logró al permitir a selectores de canales adicionales ejecutarse en paralelo con el objeto de administrar los mensajes provenientes de los canales de red en WebLogic Server.
Esta capacidad de muxer paralela, recientemente incorporada y adaptada para igualar la velocidad de red de InfiniBand, eliminó casi por completo cualquier contención de bloqueos que pudiera surgir debido a la rapidez del flujo de entrada de los paquetes.
Esta combinación de mayor MTU y más paralelismo para la infraestructura de distribución interna de WebLogic Server permitió un drástico incremento de desempeño para todos los protocolos de red en WebLogic. La figura 5 ilustra este grupo de cambios.
Figura 5. Comparación entre la Comunicación Estándar entre Procesos y la Comunicación Exalogic entre Proceso
Optimización del Tamaño de Hilos (threads)
Las optimizaciones de software basadas en la infraestructura de hardware de Exalogic no solo fueron limitadas a la adopción nativa de InfiniBand para el desempeño máximo de red utilizando SDP e IPoIB y al importante replanteamiento de la infraestructura de E/S de Java dentro de WebLogic Server; sino que también permitieron crear una infraestructura de hilos (threads) autoajustables. Para entender cómo el conjunto autoajustable de hilos (threads) de WebLogic Server ha sido optimizado, es importante comprender cómo funcionaba anteriormente.
Antes de Exalogic, el conjunto de hilos (threads) autoajustable de WebLogic Servermonitoreaba el rendimiento global cada dos segundos y utilizaba los datos recopilados para determinar cuándo debía de cambiar el número de hilos (threads). El algoritmo tomaba en cuenta la combinación de los diferentes parámetros como el número actual de hilos (threads), el rendimiento medido y los hechos pasados para saber cuándo debíaser aumentado o disminuido, y los nuevos threads eran automáticamente incorporados al conjunto o removidos, según sea el caso.
Para aprovechar la configuración específica del hardware Exalogic de 30 nodos cada uno con dos procesadores y seis núcleos por procesador, la implementación del conjunto de hilos (threads) autoajustables de WebLogic Server tuvo que ser modificada para ajustarse a la capacidad de procesamiento del hardware subyacente, modificándose también el algoritmo de asignación de hilos (threads) con base a esta información.
En lugar de incrementar el número total de hilos (threads)de a uno a la vez, WebLogic Server ahora aprovecha la capacidad al conocer la densidad más elevada del núcleo y la tecnología hyper-threading disponible en el hardware para incrementar significativamente el número de hilos (threads)-24 de una sola vez. Esto dio como resultado un nuevo diseño de algoritmo autoajustable para lograr el desempeño óptimo de la aplicación Java en Exalogic, mucho más rápido que las versiones anteriores a WebLogic Server, especialmente debido a la variación de las cargas de trabajo con el tiempo.
Optimizaciones del Software Exalogic Elastic Cloud para la Base de Datos de Oracle
Uno de los objetivos de diseño clave del Exalogic era optimizar su infraestructura con Oracle RAC y Oracle Exadata. Además de diseñar una conectividad específica con el InfiniBand entre los racks de Exalogic y Exadata en la configuración de hardwareque da origen precisamente a esa estructura y a las optimizaciones de desempeño del Software de Exalogic Elastic Cloud que ya hemos mencionado, WebLogic Server ha sido optimizado aún más gracias a una nueva funcionalidad denominada Active Grid Link para RAC.
Esta funcionalidad, que es parte del Software de Exalogic Elastic Cloud, integra las fuentes de datos de WebLogic Server con Oracle RAC, en un nuevo enfoque arquitectónico. Específicamente, RAC soporta un mecanismo de notificación basada en eventos para depositar información sobre el estado de un cluster RAC. La característica Active GridLink para RAC, manifestada en el WebLogic Server como un tipo de fuente de datos GridLink, optimiza aún más la probada infraestructura de fuentes de datos de WebLogic Server aprovechando al máximo la información dentro de las notificaciones RAC para proporcionar: una mejor conectividad general a través de una respuesta mucho más rápida ante las fallas de nodos RAC y las actividades de mantenimiento; una mejor utilización de los recursos en cluster/RAC; y una mejor administración y monitoreo del tiempo de ejecución.
Tal vez el aspecto más importante sea que el procesamiento inteligente del tiempo de ejecución de esta información de eventos RAC ha dado como resultado un mejor desempeño para las cargas de trabajo de la base de datos OLTP basadas en WebLogic en Exalogic y Exadata en comparación con las infraestructuras que no son de ExaLogic ni de Exadata.
Única Fuente de Datos
La característica Active GridLink para RAC también simplifica y consolida enormemente la administración y configuración de la fuente de datos del WebLogic Server. Proporciona una fuente única de datos que es optimizada para sustentar las capacidades de RAC. Esto es totalmente diferente y mucho más fácil de administrar que el modelo tradicional de Fuentes de Datos Múltiples (aún soportado), que posee una combinación de una fuente de datos por nodo RAC y una fuente de datos lógica adicional como nivel proxy, que representa la colección resultante de fuentes de datos RAC.
Por ejemplo, en un cluster Oracle de 4 nodos en Exadata, la configuración de fuente de datos de WebLogic Serverse reduciría de cinco fuentes de datos distintas con Fuentes de Datos Múltiples (una para cada nodo RAC y una fuente de datos proxy) a una con Active GridLink para RAC. Failover de Conexión Rápida Oracle Notification Service (ONS) es utilizado por la base de datos Oracle RAC para pronosticar eventos que describen cambios de estado. Con Active GridLink para RAC, WebLogic Server se utiliza para recibir notificaciones de ONS y rápidamente conocer cualquier cambio de estado en una base de datos RAC.
En Exalogic este enfoque puede traducirse en pedidos de magnitud mucho más rápidos en comparación con el enfoque de grupos de fuentes de múltiples datos o, en el peor de los casos, en desconexiones de TCP/IP. Al utilizar estos eventos de notificación de cambio de estados, WebLogic Server puede inteligentemente adaptar sus grupos de conexión a los tiempos de ejecución para proporcionar acceso continuo y confiable a la base de datos RAC a medida que se producen los cambios.
Conclusión
La necesidad de las organizaciones de IT por brindar capacidades de tecnología de nube de próxima generación, como por ejemplo ofrecer una capacidad elástica mientras se cumple con requisitos de fiabilidad y desempeño cada vez más exigentes, está impulsando la demanda de un nuevo enfoque de infraestructura. Ya sea que las cargas de trabajo se basen en la Web o en thick-clients, que requieran una gran cantidad de datos o procesos, o que sean homogéneas o altamente heterogéneas, la clave del éxito es el diseño conjunto de hardware y software para mejorar el desempeño, la fiabilidad y la capacidad de escalamiento. Construir o utilizar sistemas personalizados para distintas aplicaciones es costoso.
Oracle Exalogic Elastic Cloud, el primer y único motor middleware integrado del mundo, supera ampliamente todas las alternativas y brinda la mejor base de ejecución de aplicaciones. Al consolidar aplicaciones en Oracle Exalogic Elastic Cloud, las empresas podrán:
- Aumentar el desempeño de las aplicaciones Java hasta 14 veces
- Mejorar la fiabilidad y la capacidad de escalamiento más allá incluso de los requerimientos más exigentes
- Reducir los esfuerzos de implementación en hasta un 95% y los costos en un 60%