El entorno de ensayo de Fastly, disponible a partir de hoy, te permite probar tus configuraciones de CDN y Compute sin esfuerzo, con solo un clic, antes de que se activen. Gana en tranquilidad y confía plenamente en tus despliegues, garantiza un rendimiento impecable y ahorra tiempo en la resolución de problemas.
Pero ¿cómo hemos llegado hasta este punto?
Cuando Fastly se lanzó, allá por 2011, uno de los principios rectores era «instantáneo», y hasta hoy lo sigue siendo.
En aquella época, con otras CDN, la actualización de contenidos podía llevar horas, a menos que se pagara un extra por un número limitado de «purgas rápidas» que podían hacerse en minutos. Incluso ahora, han pasado más de 10 años desde que escribimos una entrada de blog describiendo exactamente cómo escribimos nuestro sistema de purga para que se distanciara de cualquier otra CDN.
Los registros y las métricas se enviaban por FTP una vez cada 24 horas (no FTPS o SFTP, solo FTP no seguro), y desplegar un cambio de configuración para una CDN podía llevar horas, lo que suponía un riesgo para cualquier cambio, ya que no se sabía si algo había ido mal y, en caso afirmativo, no se podía arreglar. Esta es la razón por la que cada despliegue de Fastly ha sido versionado. Cuando un cambio se pasaba a producción, se bloqueaba de forma inmutable en nuestra base de datos para que nuestros clientes, o nosotros en caso necesario, pudiéramos revertirlo en cuestión de segundos.
Y esto funcionó increíblemente bien durante más de una década. Los clientes estaban encantados con la potencia y la flexibilidad que les proporcionaba. Muy parecido a la presentación seminal de DevOps de John Allspaw y Paul Hammond de Velocity 2009 «10+ Deploys Per Day: Dev and Ops Cooperation at Flickr». La posibilidad de hacer muchos cambios rápidos garantizaba la seguridad de nuestros clientes, ya que cada cambio era fácil de razonar, fácil de probar de forma aislada y fácil de revertir en caso de que algo fuera mal o, lo más habitual, de arreglar y revertir.
Los clientes nos integraron en sus arquitecturas y canalizaciones CI/CD: utilizaron Chef y Terraform o hooks de API personalizados. Incorporaron sistemas de marcado de características en nuestro edge scripting e hicieron canarying y despliegues graduales
Sin embargo, comenzamos a recibir peticiones para que creáramos un entorno de ensayo integrado, a menudo de clientes muy grandes que confían en Fastly para eventos importantes, promociones destacadas, lanzamientos de producto, etc.
¿Qué es el entorno de ensayo de Fastly?
A la hora de decidir cómo queríamos crear el entorno de ensayo, una cosa estaba clara: no queríamos limitar las pruebas a los PoP de ensayo ni a una red de ensayo independiente. Queríamos que nuestro entorno de ensayo fuera lo más parecido posible al entorno de producción para que, al realizar las pruebas, no fuera en regiones diferentes con hardware diferente y latencias diferentes.
De acuerdo con nuestro principio rector de «instantáneo», queríamos que todo funcionara sin que vosotros, nuestros queridos clientes, tuvierais que cambiar nada.
Sin dominios de ensayo (a menos que se quiera), service pinning, conformidad regional, PCI, certificados TLS, protección contra DDoS... todo debería funcionar.
Y eso es lo que hemos lanzado: todo funciona. Entre bastidores, hay mucho trabajo, pero por delante basta con pulsar el botón «stage» (o llamar a la API o ejecutar el comando CLI) y ya está. No se necesitan cambios en el código, no hay if (staging) { … }
en el código.
Pronto se podrán realizar despliegues Canary (también conocidos como despliegues Blue/Green o despliegues graduales) con los que se migrarán lentamente a los clientes activos a una nueva versión.
Como siempre, todo lo que hemos creado forma parte de nuestra filosofía de plataforma: creamos los componentes y estos nos permiten a nosotros, y a vosotros, crear más cosas sobre la plataforma.
Gana en tranquilidad, garantiza un rendimiento impecable y ahorra tiempo en la resolución de problemas utilizando el entorno de ensayo de Fastly hoy mismo. Como siempre, si tienes alguna pregunta, sugerencia, petición de funciones o comentario, no dudes en ponerte en contacto.