Muy ilustrativo este artículo del propio Werner Vogels (el CTO de Amazon.com) sobre lo que han aprendido en el diseño y construcción de Amazon AWS. Aunque el artículo es de hace un par de años, creo que no pierde actualidad, al contrario.

Amazon fue el pionero en la construcción de lo que hoy conocemos como servicios en la nube, con el lanzamiento del servicio de almacenamiento (s3) en Marzo de 2006. Evidentemente no tenían a nadie al que copiar o sobre el que “inspirarse” así que las lecciones que aprendieron son particularmente valiosas para los arquitectos de T.I., algunas son evidentes, otras curiosas…

Las 10 lecciones

1.- Construir sistemas que evolucionen

El software que funciona ahora seguramente no será igual al que se ejecute el año que viene. Hay que ser capaz de evolucionarlo, incluso en varios órdenes de magnitud, sin que el usuario se de cuenta de los.

2.- Esperar lo inesperado

Todo falla, es un hecho. Hay que diseñar un sistema que adopte el fallo como algo natural y que es seguro que va a ocurrir.

3.- Primitivas, no frameworks

Cuando se piensa en un servicio y se pone a disposición el cliente, normalmente este lo usa de una manera que no habíamos imaginado. Por lo tanto, en lugar de proporcionarle un framework cerrado en el que las cosas sólo pueden hacerse de un manera, es mejor proporcionar una serie de primitivas o utilidades que el cliente pueda combinar y adaptar como se le ocurra.

4.- La automatización es clave

Hay que automatizar la gestión del software tanto como se posible, evitando los errores derivados de las tareas manuales.

5.- Los APIs son para siempre (como los diamantes 😉

Una vez que los clientes empiezan a usar las APIs para construir su propio software, es prácticamente imposible cambiar estas APIs. Por lo tanto, el diseño de las APIs cobra mayor importancia, ya que sólo se tiene una oportunidad para hacerlo bien.

6.- Conoce el uso de recursos

Cuando se presta un servicio de alto volumen, con margen de negocio bajo, es importante tener muy bien medido el coste de la ejecución estos recursos.

7.- Seguridad desde el principio

Para construir servicios seguros, es necesario integrar la seguridad desde el principio del diseño del servicio. El grupo de seguridad no es un grupo que hace la validación después de que todo esté hecho. Deben ser partners desde el día uno para asegurarse que la seguridad es como una roca desde el principio. No hay compromiso cuando se trata de la seguridad.

8.- La encriptación como “ciudadano de primera clase”

La encriptación es el mecanismo que garantiza que el cliente tenga un control total sobre sus datos. En este momento, la encriptación está integrada en la primera fase del diseño de un servicio

9.- La importancia de la red

Han creado una infraestructura de red flexible que pueda dar respuesta las diferentes necesidades de sus clientes. Han aprendido que no deben tener miedo a desarrollar sus propias soluciones de hardware. Problemas como la latencia de la red les llevó a desarrollar su propio hardware virtualizado.

10.- Plataforma de partners: “no gatekeepers”

Amazon comprendió que no todo lo tienen que hacer ellos cuando hay todo un ecosistema de partners que pueden ofrecer soluciones para sus clientes. Así que la filosofía, podríamos decir, fue que en lugar de que aquí sólo tocamos nosotros, les han dado libertad a sus clientes para construir necesidades verticales específicas. Actuar así ha hecho posible que se desarrollen procesos innovadores y abre la puerta a otras innovaciones inesperadas.

Anuncios