jueves, 5 de julio de 2012

Arquitectura opensource: linux + DBs opensource + apps de negocios


Tus apps empresariales deberían correr sobre Linux

La cuestión es simple: las infraestructuras crecen, más pronto de lo que piensas te verás en la necesidad de implementar 30 o 40 servidores de tu aplicación empresarial, aunque hoy estés corriendo solo 2 servers.

Pronto la verás correr en entornos virtualizados, clusterizada localmente en el hipervisor, luego replicada a otro/s hipervisores (típicamente son dos réplicas adicionales: una en un hipervisor local, diferente máquina/server físico, pero mismo datacenter, y otra replica, corriendo en un hipervisor - o no -en un datacenter remoto para disaster recovery), sea que repliques usando el soft de clustering (vía OS clustering o app clustering), o herramientas de replicación de la infraestructura de virtualización.

Es decir, aunque hoy compremos 5 licencias de la aplicación, dentro de poco tal vez estemos comprando 30, si a ese costo le tienes que sumar el costo de las licencias para el sistema operativo base, ello suele llevar a una situación típica: no se implementa esquemas de replicación y otras infraestructuras de soporte de continuidad de negocios solo porque el costo de la licencia en sistemas operativos lo vuelve imposible.

La solución en principio es simple: que tu app de negocios pueda correr en Linux.


Tus apps deberían poder usar bases de datos opensource como backend

La cuestión es simple: muchas aplicaciones de negocios se respaldan en las fuertes capacidades "extra" brindan las bases de datos propietarias: diferentes y amplias posibilidades de replicación, mejoras importantes en la performance usando capacidades disponibles solo en esas DB propietarias, etc. Dichos "extras" son reales y muchos solo están disponibles al momento pagando licencias de DBs propietarias.

El problema que vimos con el costo de licencias de sistemas operativos aparece de vuelta aquí, en este caso el costo de tener hoy - licencias para - 2 servers de base de datos, es X, si mañana requirieramos correr, digamos, 20 servers de DB, el costo sería Y (mucho más alto).

Si queremos disponer de la posibilidad de usar la facilidad instalar cuantos servers Linux (con nuestra app de negocios corriendo en él), querramos, necesitamos que la DB que usa la app de backend sea también opensource.

La opción por default para aplicaciones de negocios es Postgresql, pero no hay que olvidar a MySql (y las varias alternativas libres de MySql). Ambas opciones ofrecen hoy capacidades de mejora de performance y replicamiento de nivel industrial, (con pocas excepciones), normalmente dentro del rango de los requerimientos típicos para DBs de backend para apps de negocios y/o de misión crítica.

Hoy en día muchas apps de negocios preveen esta capacidad y no solamente son compatibles con DBs propietarias, sino que también se las puede implementar sobre Postgresql (muy habitual), o MySql (no tan habitual).


De primera mano conozco muchos casos de éxito de este esquema de arquitectura básica para desplegar aplicaciones de negocios y de misión critica en organizaciones, con el consiguiente logro de otros beneficios derivados de correr software opensource.

No hay comentarios: