Si pretendes recurrir a la computación en 'nube' para simplificar tu entorno de tecnologías de la información, me temo que tengo malas noticias para ti. Sí, puede que descubras que estás menos preocupado por la infraestructura, menos preocupado acerca de cómo funcionan los sistemas de almacenamiento en red o por cuál red utilizar para conectar una fuente de recursos virtualizados, o incluso cuál configuración de software de interconexión es la más óptima para tus aplicaciones.
Sin embargo, para cada problema eliminado al elegir la nube, encontrarás que sólo crea más problemas de los cuales tú sigues siendo responsable, y puede incluso crear algunos nuevos problemas que nunca tuviste que enfrentar antes. Y así es como debe de ser.
Permíteme explicar...
Cuando describo la computación en 'nube' como un modelo de operaciones enfocado en las aplicaciones, una de las primeras preguntas que debe venir a la mente es: "¿Operaciones de qué, exactamente?" El hecho de que la nube se enfoque en la aplicación, de ninguna manera implica que la aplicación es todo lo que está siendo operado. De hecho, al igual que en cualquier otra tecnología informática desde las primeras computadoras electrónicas, la aplicación no podría existir sin una infinidad de cosas que la apoyan.
Y el mundo no consiste en una aplicación única, sino, de hecho, en millones de aplicaciones. La mayoría de ellas están interconectadas de alguna manera, y la matriz de código, datos, infraestructura, personas, políticas, requisitos y demás que conforman a las tecnologías de la información modernas son, en última instancia, un sistema complejo muy interconectado. La computación en nube es sólo una (muy efectiva) manera de lidiar con esa complejidad.
La nube como un sistema complejo
Lo interesante es que la ciencia tiene todo un campo de estudio construido alrededor de los sistemas complejos. Un sistema complejo, de acuerdo con Wikipedia, es "un sistema compuesto de partes interrelacionadas que, como un todo, exhiben una o más propiedades (comportamiento entre las posibles propiedades), que no son evidentes a partir de las propiedades de las partes individuales".
Eso es especialmente cierto en el moderno entorno interconectado de las tecnologías de la información. Basta con mirar los sistemas de comercio automatizado y el famoso crash flash, por ejemplo - sistemas diseñados para aumentar los rendimientos en el mercado que reaccionan entre ellos en un modo que temporalmente desploma ese mercado. Otros ejemplos abundan, y estoy seguro de que tu propio entorno de tecnologías de la información a menudo se comporta de maneras en que ninguna aplicación u otro elemento individual fueron diseñadas para comportarse de manera explícita.
Lo que la ciencia nos enseña acerca de los sistemas complejos es que se componen de muchos agentes individuales, cada uno de los cuales afecta y es afectado por los agentes a su alrededor. Los circuitos de retroalimentación de eventos creados por agentes que se afectan entre sí, tanto directa como indirectamente, en combinación con los mecanismos que eligen comportamientos en respuesta a esos eventos, se combinan para crear el comportamiento sistémico que es tan impredecible.
La 'nube' como un sistema adaptativo
Si embargo, la cuestión es que una cierta clase de sistemas complejos, los sistemas adaptativos complejos, tienen la característica adicional de que pueden cambiar su comportamiento en respuesta al éxito o el fracaso de las conductas anteriores cuando se produce un determinado evento, o cuando ocurre una cierta serie de acontecimientos. Esta capacidad de 'aprender' y adaptarse al entorno del sistema circundante crea resultados sorprendentes, incluyendo algunos de los sistemas más ricos, duraderos y poderosos en el universo.
Piensa en la biología. Piensa en la economía. Piensa en los ecosistemas.
Las tecnologías de la información son adaptativas, en la medida en que ganar funcionalidad hace que sobrevivan y prosperen, mientras que la pérdida de esa funcionalidad provoca que mueran y desaparezcan. Por lo tanto, aquellos que invierten en la construcción de las tecnologías de la información buscan constantemente formas para que su tecnología sobreviva en un ambiente cambiante y a menudo hostil.
Si una aplicación, o función, o incluso una sola línea de código no logra agregar valor al ambiente -o peor, altera negativamente el valor del ambiente- será removida o cambiada, de una manera u otra. Aquellos que dependen de las tecnologías de la información están buscando constantemente formas de optimizar las aplicaciones, datos y tecnologías para sacar el máximo provecho de sus entornos de sistemas.
El resultado es una constante innovación y adaptación a nuestras necesidades como empresas y particulares. No siempre es agradable, como dicen, pero hasta ahora ha sido bastante eficaz (debo señalar que esto aplica incluso a las aplicaciones 'legado' que se modifican con poca frecuencia; existe una decisión permanente de no modificar este tipo de aplicación, por lo que sigue sobreviviendo).
El desarrollador como ADN
Quiero hacer una última reflexión. Una de las cuestiones acerca de los sistemas adaptativos complejos son los rasgos de aprendizaje o de adaptación de los agentes en el sistema. En el mundo de la evolución, el principal agente de cambio o aprendizaje es el ADN. En el mundo de las tecnologías de la información, el agente de aprendizaje o cambio es el ingeniero o desarrollador de software.
Si algo sale mal con una aplicación, los desarrolladores están bajo presión para arreglarlo, cambiarlo o eliminarlo. Si el hardware existente no consigue crear nuevas oportunidades para innovar, los ingenieros encuentran nuevos enfoques que luego introducen en el ecosistema para cambiar las cosas.
Sin embargo, los desarrolladores y los ingenieros sólo pueden hacer uno o algunos pocos de esos cambios en los componentes a la vez. Nadie puede configurar el 'sistema' para que funcione de una manera esperada. Todo lo que puedes hacer es realizar un monitoreo constante del éxito y la eficacia de las tecnologías que implementas en la 'nube', y ajustarlas constantemente para que sean tan útiles como puedan en ese entorno.
Depende de la gente crear tecnologías que sobrevivan a la 'nube' como un sistema complejo - un componente a la vez. Bien, así es como debes lidiar con ello.
Fuente: CNNexpansión / Por: James Urquhart
Publicado por: TuDecides.com.mx
Edición: Adrián Soltero
Contacto: dir@tudecides.com.mx
Nota: Por lo general todos los artículos cuentan con fuente y autor del mismo. Si por alguna razón no se encuentra, lo hemos omitido por error o fue escrito por la redacción de TuDecides.com.mx.