Y luego están los escenarios específicos de GraphQL, como consultas maliciosas, profundidad de consulta y cosas así. El siguiente área principal es la escalabilidad. Entonces has construido esta API. Funciona. Pero ¿qué sucede cuando obtienes un aumento de 10,000 usuarios al mismo tiempo, o algo se vuelve viral y obtienes 10 veces, 100 veces o incluso 1,000 veces más visitantes? Quieres que tu API sea escalable. Y luego tienes que pensar en cosas específicas de GraphQL, como las suscripciones. Una de las cosas en las que hemos trabajado mucho y en lo que nos hemos enfocado en los últimos años es hacer que las suscripciones sean escalables. Y luego, algo que debes tener en cuenta es la velocidad de desarrollo. Y finalmente, está el costo. Y cuando hablo de costo, no solo me refiero al costo monetario, sino también al costo de oportunidad y las horas de desarrollo, y las cosas que consideras, por ejemplo, si eres una startup o simplemente una empresa en general, y tienes competidores que están haciendo lo mismo que tú, si necesitas construir algo y probarlo y no sabes si funcionará o no, digamos que pasas tres meses, seis meses construyendo esto. Eso es un costo de oportunidad que debes considerar realmente, porque si esto no funciona, has gastado mucho dinero, has gastado mucho tiempo, y ese tiempo podría haberse invertido en construir algo más, si hubieras sabido que esto no iba a funcionar. Aquí es donde creo que AWS AppSync, el servicio en el que hemos estado trabajando en los últimos años, realmente destaca en todas estas áreas diferentes. De todos modos, AppSync te permite construir estas APIs, cualquier cosa que necesites mapeada a través de GraphQL se puede hacer con AppSync. Comienzas con la nueva API de AppSync, defines tu esquema. A partir de ahí, configuras los diferentes tipos de autenticación y autorización. Después de configurar tus tipos de autenticación, configuras tus fuentes de datos.
Y luego están los escenarios específicos de GraphQL, como consultas maliciosas, profundidad de consulta y cosas así. Y luego las reglas de seguridad típicas y los problemas con los que te enfrentas dentro de la superficie de la API, como ataques DDoS y cosas así.
El siguiente área principal es la escalabilidad. Entonces has construido esta API. Funciona. Pero ¿qué sucede cuando obtienes un aumento de 10,000 usuarios al mismo tiempo, o algo se vuelve viral y obtienes 10 veces, 100 veces o incluso 1,000 veces más visitantes? Quieres que tu API sea escalable. Entonces, ¿cómo provisionas realmente tu infraestructura y lo haces de manera rentable para que tu aplicación se escale? Y luego tienes que pensar en cosas específicas de GraphQL, como las suscripciones. Una de las cosas en las que hemos trabajado mucho y en lo que nos hemos enfocado en los últimos años es hacer que las suscripciones sean escalables. Tenemos clientes que han escalado nuestras APIs a decenas de millones de dispositivos conectados para un solo punto final de API. Este fue un desafío muy difícil y típicamente es algo difícil de hacer en general.
Y luego, algo que debes tener en cuenta es la velocidad de desarrollo. Entonces, cuando estás construyendo tu API, ¿qué sucede cuando necesitas agregar una nueva función? ¿Cuando necesitas versionar algo? ¿Cuando necesitas modificar una fuente de datos existente o incluso agregar una nueva fuente de datos? ¿Qué sucede cuando tu API comienza a volverse compleja? ¿Esto va a frenar a tu equipo y, por lo tanto, ralentizar el desarrollo de toda tu aplicación? Y finalmente, está el costo. Y cuando hablo de costo, no solo me refiero al costo monetario, sino también al costo de oportunidad y las horas de desarrollo, y las cosas que consideras, por ejemplo, si eres una startup o simplemente una empresa en general, y tienes competidores que están haciendo lo mismo que tú, si necesitas construir algo y probarlo y no sabes si funcionará o no, digamos que pasas tres meses, seis meses construyendo esto. Eso es un costo de oportunidad que debes considerar realmente, porque si esto no funciona, has gastado mucho dinero, has gastado mucho tiempo, y ese tiempo podría haberse invertido en construir algo más, si hubieras sabido que esto no iba a funcionar. Entonces, ¿cómo tienes en cuenta todas estas cosas y cómo lo haces de manera efectiva en todas estas áreas diferentes?
Esto es donde creo que AWS AppSync, el servicio en el que hemos estado trabajando en los últimos años, realmente destaca en todas estas áreas diferentes. Y AppSync es un servicio administrado de GraphQL de AWS. Me gustan mucho los servicios administrados porque cuando estás lidiando con un servicio administrado, este equipo está trabajando en este único problema durante años. Todas esas personas están especializadas en resolver este único problema. Entonces, cuando te unes a un servicio administrado, típicamente estás obteniendo años de trabajo, mucho dinero gastado y muchos casos especiales resueltos para lidiar con este único problema. Entonces, si puedes encontrar algo que se ajuste al desafío que estás tratando de resolver y sea un servicio administrado de un equipo en el que puedas confiar, a menudo es un enfoque bueno para hacer algo sin tener que construirlo desde cero y reinventar la rueda.
De todos modos, AppSync te permite construir estas APIs, cualquier cosa que necesites mapeada a través de GraphQL se puede hacer con AppSync. Comienzas con la nueva API de AppSync, defines tu esquema. Aquí en tu esquema defines tus tipos, por supuesto, tus consultas, tus mutaciones y tus suscripciones. A partir de ahí, configuras los diferentes tipos de autenticación y autorización. Entonces, puedes tener un tipo base y el tipo base podría ser público, podría ser privado, podría usar un proveedor OIDC, podría ser lo que sea. Pero también puedes tener tipos de autorización adicionales. La mayoría de las APIs, como mencioné, tienen múltiples escenarios de autorización. Entonces, la mayoría de las aplicaciones que se lanzan a producción tienen múltiples tipos de autenticación. Típicamente tienes algún tipo de acceso público junto con algún tipo de acceso privado. Después de configurar tus tipos de autenticación, configuras tus fuentes de datos.
Comments