Este es un caso extremo, pero esta presentación no lo cubrirá. En cuanto al bloqueo del proveedor, realmente creo que Mark Schwartz, estratega de enterprise en AWS, tiene razón. Él piensa que el término bloqueo es engañoso porque en realidad estamos hablando de costos de cambio. Tan pronto como nos comprometemos con una plataforma o proveedor, tendremos costos de cambio si luego decidimos cambiar ese proveedor o plataforma. Por ejemplo, si construyes tu aplicación en PHP, y luego en algún momento quieres migrar eso a Node.js o Go o algo más, tendrás un gran costo de cambio porque necesitas hacer una pausa por un tiempo, reconstruir todo en un lenguaje diferente, y luego continuar desde ese punto.
Entonces, ¿cómo combatimos el bloqueo del proveedor, o mejor aún, hagamos la mejor pregunta, ¿cómo mantenemos nuestros costos de cambio razonables? Bueno, podemos hacer algunas cosas. Primero, necesitamos planificación y análisis. Por ejemplo, necesitamos responder algunas preguntas como ¿qué tan probable es que necesite cambiar a otra plataforma o servicio? ¿Cuál sería el costo de ese cambio? Si no hay muchas posibilidades de cambiar a otra cosa, por ejemplo, elegiste tu database y no crees que necesitarás cambiar en el futuro cercano, está bien tener un costo de migración ligeramente más alto, pero para algunas otras cosas, necesitas mantener ese costo más bajo. Necesitas tener una buena arquitectura, por supuesto. Y finalmente, necesitas tener procedimientos de implementación porque si no los tienes, será realmente, realmente difícil migrar a cualquier lugar.
Eso nos lleva a nuestro tema de hoy, y eso es escribir aplicaciones serverless testables y prevenir el bloqueo del proveedor utilizando la arquitectura hexagonal. Pero antes de continuar, permítanme presentarme. Soy Slobodan Stanovich, CTO y socio de Cloud Horizon y VacationTracker, VacationTracker es un sistema de gestión de seguimiento de clientes y Cloud Horizon es básicamente una agencia que crea aplicaciones web para otras personas. También escribí el libro, Aplicaciones serverless con Node.js con mi amigo Alexander Simovich, y está publicado por muchas editoriales. Y también soy un héroe serverless de AWS. Puedes seguirme en mi sitio web. Escribo mucho sobre serverless y también sobre pruebas. Así que volvamos a nuestro tema porque eso es definitivamente más interesante que yo. Hablaremos sobre cómo escribir aplicaciones serverless testables utilizando la arquitectura hexagonal. Pero primero, centrémonos en la parte de las pruebas. ¿Por qué son importantes las pruebas para las aplicaciones serverless? Básicamente, externalizas algunas partes de tu aplicación a un proveedor, pero eso no cubre todo. Ellos administrarán la infraestructura por ti, pero aún eres dueño de tu código y tu lógica empresarial. Entonces, necesitas probar esa parte de la aplicación. Y la mayoría de las veces, las aplicaciones serverless no son monolitos completamente aislados sin integraciones. En cambio, contienen muchos servicios pequeños que interactúan entre sí todo el tiempo, y tienen muchas dependencias externas. Mencioné VacationTracker, así que aquí tienes un ejemplo. Nuestra aplicación es una WebApp que también tiene un chatbot de Slack. Y dentro de Slack, puedes escribir /vacation y solicitar vacaciones con solo unos pocos clics. Es muy fácil, puedes hacerlo en solo unos minutos, en realidad, unos pocos segundos. Pero en segundo plano, se ve algo como esto.
Comments