sábado, 29 de mayo de 2010

Reduciendo riesgos de malos tiempos de respuesta en SOA con XTP

Adoptar una arquitectura orientada a servicios (SOA) para el desarrollo de una aplicación conlleva el riesgo de tiempos de respuesta inadecuados. Esto debido principalmente a que los estándares que se utilizan para la construcción de este tipo de aplicaciones hacen uso intensivo del lenguaje XML, el cual por ser basado en texto requiere mayores recursos de procesamiento.
Existen varias formas de mitigar este riesgo, pero quisiera mencionar una notablemente efectiva: la construcción de servicios utilizando tecnologías de procesamiento extremo de transacciones (XTP).
Este tipo de tecnologías, del cual el producto Oracle Coherence es un ejemplo, permiten que los servicios no requieran ir necesariamente a una base de datos cuando tengan que guardar u obtener información, ya que utilizan la memoria de múltiples servidores como un gran caché de objetos distribuido y robusto sobre el cual los servicios pueden trabajar en vez de con la base de datos. Este caché tiene la inteligencia necesaria para guardar la información en las bases de datos anacrónicamente si así se desea.
Al trabajar con memoria, en vez de ir a buscar información a los dispositivos clásicos de almacenamiento (discos duros, SANs, etc.), los tiempos de respuesta aumentan en orden de magnitud.
A los CIOs o gerentes de desarrollo que estén embarcándose en nuevos proyectos, con altos requerimientos de desempeño, y donde SOA no sólo vaya a usarse para integrar legacys, sino que para construir activos reutilizables, definitivamente recomiendo al menos leer el resumen de las capacidades de productos como Oracle Coherence. A los arquitectos de software, recomiendo estudiar el patrón Service Grid, el cual aclara cómo técnicamente la construcción de los servicios puede hacerse para aprovechar estas tecnologías.

 Fuentes
SOA Design Patterns (The Prentice Hall Service-Oriented Computing Series from Thomas Erl) Oracle Coherence 3.5

jueves, 22 de abril de 2010

Información util para presupuestar el gasto en TI

Estimar nunca es una tarea fácil, por lo que tener información de referencia basada en la industria siempre resulta útil. La siguiente distribución del gasto en TI se ha encontrado que aplica, en términos generales, para las grandes compañías.
  • Para manufactura, educación, legal y transporte, las compañías tienden, en promedio, a gastar entre el 2% al 3% de sus ganancias anuales brutas en el presupuesto anual de TI.
  •  Para operaciones basadas en servicios y operaciones (publicación, compañías de reservas, hoteles, establecimientos corporativos promedio, etc.) las compañías tienden, en promedio, a gastar entre el 3% al 6% de sus ganancias anuales brutas en el presupuesto anual de TI.
  • Para operaciones intensivas en información (bancos, bolsa, seguros, tarjetas de crédito, etc.), las compañías tienden, en promedio, a gastar entre el 6% y el 10% de sus ganancias anuales brutas en el presupuesto anual de TI.
Además, para una firma típica, aproximadamente el 40% del presupuesto de TI es para costos de operaciones y el 60% para el desarrollo de nuevas aplicaciones.

Del presupuesto para aplicaciones, para muchas firmas el 20% o menos es utilizado para venta interna o relaciones con los usuarios de negocios.

Del presupuesto de operaciones, entre el 27% y el 33% (en promedio el 30%) tiende a ser para personal, entre 21% y 25% (en promedio el 23%) es para equipamiento (estas son figuras basadas en una amortización anual), entre el 15% y el 19% (17% promedio) para licencias de software, 10-14% (12% promedio) en comunicaciones, 10-16% (13% promedio) para servicios de soporte externo (sin incluir carriers), 4-6% (5% en promedio) para instalaciones (p.e. centros de datos, sitios de respaldo, oficinas, etc.) y misceláneos.

El 12% destinado a comunicaciones se divide generalmente de la siguiente manera: entre el 83-87% (85% promedio) en servicios de voz, 13-17% (15% en promedio) en servicios de datos e internet.

Fuente:
Enterprise Architecture A to Z: Frameworks, Business Process Modeling, SOA, and Infrastructure Technology

sábado, 10 de abril de 2010

Redimensionamiento de la partición raíz en LVM para ampliar el swap

En Oracle Enterprise Linux (y probablemente RH), la instalación por omisión del LVM utiliza todo el espacio de almacenamiento disponible, no dejando extents libres para ampliar las particiones. Esto es un problema cuando se quiere instalar la base de datos Oracle y se encuentra que el espacio de swap no es suficiente. (La instalación de la infraestructura de grid para un cluster y Oracle RAC de la 11gR2 requiere un mínimo de 2.5 GB en RAM e igual espacio en swap)
 Para redimensionar la partición raíz y dejar más espacio para ampliar la de swap se debe hacer lo siguiente:
  • Arrancar el sistema desde el primer cd de instalación del OEL
  • Iniciar el sistema operativo en modo de rescate (o sea, poniendo linux rescue en las opciones de arranque)
  • No montar los sistemas de archivos
  • Asumiendo un disco de 20 gigas, el que se quiere reducir a 17.5, ingresar los siguientes comandos

# lvm vgchange -a y
# e2fsck -f /dev/VolGroup00/LogVol00
# resize2fs -f /dev/VolGroup00/LogVol00 17.5G
# lvm lvreduce -L17.5G /dev/VolGroup00/LogVol00

Una vez realizado esto, es posible ampliar el swap (en este ejemplo, a 2.5GB y asumiendo que el swap se encuentra en el LogVol01):

# swapoff -v /dev/VolGroup00/LogVol01
# lvm lvresize /dev/VolGroup00/LogVol01 -L 2.5G
# mkswap /dev/VolGroup00/LogVol01
# swapon -va
Esto se probó en OEL Relase 5 Update 4.

Fuentes:
http://www.linuxquestions.org/questions/fedora-35/how-to-resize-root-lvm-logical-volume-337823/
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/sysadmin-guide/s1-swap-adding.html