Resumen Architecting the cloud (1)

Michael J. Kavis

Hace algún tiempo empecé mi estudio de las tecnologías de la nube. El potencial que tiene y resuelve. Sin embargo, más allá de entender cada servicio, lo que ofrece y su funcionamiento necesitaba conocer sus inicios y sobre todo encontrar una forma de explicarlo fácilmente a aquellos que están iniciando en este contexto. Este libro me ofreció esta perspectiva de entendimiento .

Una historia para explicar de manera sencilla cómo funciona la nube:

Hubo un tiempo cuando cada familia, pueblo, granja o aldea tenía su propio pozo de agua. Hoy en día, los servicios públicos nos dan acceso a agua limpia, tan simple como abrir el grifo; la computación en la nube funciona de manera similar. Como el agua del grifo de la cocina, los servicios de computación en la nube pueden ser encendidos o apagados rápidamente como lo necesite. Similar a la compañía de agua, hay un equipo de profesionales dedicados a asegurar que el servicio ofrecido sea asegurado, seguro y disponible 24/7. Cuando el grifo no está abierto, no sólo ahorras agua, sino que también no estás pagando por recursos que actualmente no necesitas.

-- Viver Kundra, Former Federal CIO, U.S. Government

La computación en la nube nos permite gestionar un amplio número de servicios de cómputo virtualizados. Por ejemplo se tiene un ambiente de pruebas ejecutando durante un par de horas y luego se descarta rápidamente los recursos computacionales virtuales. El costo total de la infraestructura usada para ejecutar este prototipo es de 50 centavos o $1. Luego poder pasar a la siguiente configuración de servidor e intentar otra serie de pruebas. Esto se podría hacer tres veces durante el día y acumular $3 en costos de infraestructura.

Comparación de ejecutar un prototipo en instalaciones locales versus la nube:

On-premisesOn-Cloud
Compra de tres diferentes servidores a lo sumo $3000 a $5000 por cada uno, más software, envío, e instalaciónEl desarrollador crea tres diferentes recursos de cómputo virtuales en minutos a $0,50/hora, usando a la vez durante dos horas cada uno (total $3)
Tiempo transcurrido hasta la adquisición e implementación aproximadamente un rango de uno a tres mesesPruebas completadas y toma de decisión en un día
Resultado: Decidir qué servidor mantener, comprar más, deshacerse de los otros dosResultado: Completa todo el escenario en un día de trabajo por sólo $3 más el salario de una persona. Sin despilfarrar activos

Lo que la historia nos muestra una y otra vez es que cada innovación tecnológica se topa con resistencia. Los primeros en adoptar y asumir riesgos abrazan las nuevas tecnologías y vienen a ser los conejillos de indias para las empresas que típicamente prefieren esperar hasta que la tecnología llegue a estar madura.

Si bien la computación en la nube ofrece soluciones, esto podría llegar a ser un dolor de cabeza si no es usada adecuadamente. Algunos de los errores más comunes son:

  • Tener una percepción inadecuada de la nube. Es común tener la noción que al migrar las aplicaciones a la nube, el costo se va a reducir sustancialmente. La realidad es completamente opuesta. Son pocas las aplicaciones que son candidatas para ser migradas a la nube. Las arquitecturas cloud requieren de bajo acoplamiento. En caso de software legado, lo más probable es que tenga una alta dependencia con la infraestructura. Tratar de migrar este tipo de software tomaría más trabajo y un proceso de reingeniería mayor.

    Otro de los desafíos para las aplicaciones legado sean aplicaciones con estado. Los servicios de la nube son stateless, es decir que no tienen conocimiento sobre solicitudes o respuestas previas, sólo de información durante el tiempo que el servicio esté procesando.

    Recomendación: Entender las diferencias entre patrones de diseño con y sin estado. Entender si una aplicación es una buena candidata para migrar a la nube, alojamiento o si reescribir la aplicación es la mejor opción.

  • Expectativas mal fundamentadas. No todos los problemas necesariamente serán resueltos por la computación en la nube.

    Recomendación: Tener expectativas realistas. Dividir las iniciativas de la nube en pequeños entregables de modo que permita entregar valor de negocio más rápido y permita al equipo aprender en el camino. Entender los pros y contras de cada modelo de servicio. Diseñar para optimizar, monitorear, y auditar el consumo de servicios de la nube e implementar un proceso de gobernanza para imponer patrones de consumo adecuados. La factura mensual debe ser monitoreada de cerca para asegurarse que los costos estén dentro de lo esperado.

  • Desinformación acerca de la seguridad en la nube. Dentro de este contexto dos errores comunes convergen. El primero es el mito de creer que la computación en la nube es catastróficamente insegura y que los datos no pueden ser ubicados en una nube pública por ninguna razón. El segundo es creer que la seguridad es responsabilidad de los proveedores de la nube. Muchos de los servicios desplegados en la nube son desplegados sin tomar en cuenta las medidas de seguridad necesarias y dejando susceptibles a todo tipo de ataques.

    Recomendación: Diseñe la seguridad desde el principio. Asegurarse que los arquitectos, el equipo de producto y los profesionales de seguridad tengan un amplio entendimiento de la seguridad en la nube.

  • Seleccionar un proveedor favorito, no un proveedor adecuado. Es un error muy común que muchas compañías no evalúan apropiadamente los proveedores de la nube y simplemente escogen al cual están más familiarizados. No dejarse llevar por preferencias y hacer una buena elección para el negocio.

    Recomendación: Entender las diferencias entre los tres modelos de servicios: IaaS, PaaS, SaaS.

  • Interrupciones y tiempos muertos. Cuando se hace uso de servicios, debe haber la expectativa de que todo puede y va a fallar.

    Recomendación: Al escoger proveedores y servicios, entender los riesgos y puntos de falla y diseñar para evitar fallos. Entender los SLA (Service Level Agreement) del proveedor, políticas de propiedad de datos y examinar los documentos y acuerdos legales.

  • Subestimar el impacto del cambio organizativo. Para empresas establecidas con infraestructura IT existente y con personal con limitada experiencia en la nube los impactos organizaciones no deben ser subestimados. Los cambios van más allá de sólo TI.

    Recomendación: De ser posible empiece por algo pequeño, iniciativas de bajo riesgo como candidatas de proyectos de computación en la nube. Forme y empodere al equipo, cree una visión del futuro y comunique el mensaje por toda la organización usando todos los medios posibles.

  • Escasez de personal calificado. Intentar migrar a la nube con personas que no son expertas en arquitecturas de la nube usualmente no produce buenos resultados.

    Recomendación: Evaluar el personal e identificar las brechas basadas en los requerimientos del proyecto. Contratar personal con experiencia. Asegurarse que el personal aprenda de las personas experimentadas. Animar a los miembros del equipo a hacer cursos, leer blogs y colaborar para aprender.

  • Malinterpretar los requerimientos del cliente. A veces los informáticos descuidan el aspecto del negocio de la ecuación y construyen una solución de la nube que es mejor para TI.

    Recomendación: Entender los requerimientos del negocio y las expectativas del cliente sobre la computación en la nube antes de seleccionar servicios de la nube y tipos de nube. Ten una lista de preguntas frecuentes a la mano, que respondan todas las dudas y preocupaciones que el cliente típico tendría cuando de una solución en la nube se trata.

  • Costos inesperados. Una de las promesas de la computación en la nube es que el modelo pay-as-you-go reduce en gran medida el costo de infraestructura IT. Lo cual sólo aplica si el software está diseñado y gestionado de tal modo que optimice el uso de los servicios de la nube.

    Recomendación: Entender el costo de cada modelo de servicio en la nube y establecer el apropiado nivel de gobernanza y controles de software para optimizar y monitorear los costos.

La realidad es que implementar iniciativas de la nube puede ser mucho más desafiante de lo que la gente está dispuesta a creer. Es crítico que cada compañía entienda los pros y contras de cada modelo de servicio, y las implicaciones permanentes de las cuestiones clave como seguridad, privacidad, propiedad de datos, regularizaciones, costos, impacto del cambio en la organización y mucho más.

-- Michael J. Kavis