Serie de arquitecturas evolutivas (parte 1)

¿Qué le pareció este contenido?

“¡Tengo una idea excelente!”.

Cada startup comienza en forma de una idea. Antes de empezar a preocuparse por la financiación, el personal, la distribución o cualquier otra infinidad de cosas, tiene una idea nueva y fresca: un producto o servicio que cree que tiene potencial.

Si su idea se basará en la nube, necesitará una arquitectura de nube. Este esquema lo ayudará a hacer realidad su gran idea y, si lo hace bien, podrá evolucionar junto con su empresa a medida que crezca.

Para ayudarlo a crear un esquema sólido para esta idea, esta serie de cuatro partes, Arquitecturas evolutivas, le mostrará cómo una empresa, la acertadamente llamada Example Startup, pone en práctica su idea. En la primera parte, veremos cómo crearon un producto mínimo viable (MVP) para poner a prueba el interés de los clientes y la adecuación al mercado. Más adelante en la serie, veremos cómo evolucionan sus diseños y decisiones a medida que avanzan en el ciclo de vida de las startups para ofrecer una solución completa, escalable, segura, altamente disponible y redundante.

Entregar el primer MVP

Las primeras entregas de productos por parte de una startup suelen seguir un enfoque gradual. Están dictadas por la financiación, el tiempo, los recursos, el tamaño del equipo, el conocimiento y la experiencia.

En esta etapa, es extremadamente importante no dejar que lo perfecto se interponga en el camino de lo bueno y ofrecer soluciones simples, pero funcionales. Para ello, tendrá que saber cómo identificar las decisiones de puerta unidireccional y de puerta bidireccional, responder rápido a los errores y pivotar cuando sea necesario, administrar los costos y acelerar los plazos de comercialización.

Echemos un vistazo a Example Startup y veamos cómo abordan este proceso.

La idea
La idea de Example Startup es crear un “mercado de valores de fantasía”. Utilizaron las ligas de deportes de fantasía como punto de referencia y aplicaron la idea de invertir en bolsa. Prevén celebrar cuatro “torneos” en el transcurso de un año.

Al principio de cada trimestre, comienza una nueva promoción de inversores con la misma cantidad de fondos. El mercado bursátil de fantasía permite a estos inversores tomar sus decisiones de inversión (basándose en empresas y símbolos de los mercados bursátiles reales) durante los 3 meses siguientes. Al final del trimestre, se hace una clasificación de los participantes y se anuncian los ganadores.

La preparación
Para hacer realidad su idea, los dos fundadores financiaron con fondos propios la startup: reunieron sus ahorros y pidieron dinero prestado a familiares y amigos.

Una fundadora, desarrolladora experimentada, pidió 3 meses de licencia en su trabajo. Esto le permitió centrarse en la solución técnica, lo cual es útil. Sin embargo, también define el cronograma para su primera entrega.

Ahora, en solo tres meses, ella y su cofundador, que tiene experiencia en finanzas, tienen que decidir qué características incluir en el MVP y crear el producto. Para empezar, deciden 1) qué características son absolutamente necesarias para que el producto se pueda utilizar; y 2) qué características les permitirán medir la adecuación al mercado y el interés de los clientes.

Deciden lo siguiente:

  • Un proceso de importación de símbolos o empresas del mercado de valores del mundo real con los que los inversores puedan negociar
  • Fuente diaria de precios del mercado
  • Mecanismo de registro para usuarios
  • Interfaz de usuario (UI) de administración de carteras
  • Proceso diario para los cálculos de las carteras al cierre de la jornada
  • Proceso diario que calcula las clasificaciones

La creación
Tras definir su alcance, es hora de tomar algunas decisiones técnicas sobre qué tecnologías y componentes necesita el mercado de valores de fantasía. Luego, crearán un plan de implementación con hitos para el lanzamiento del MVP.

Marco
Como desarrolladora, la cofundadora de Example Startup tiene experiencia en React, una biblioteca de JavaScript para crear interfaces de usuario. Teniendo en cuenta que una gran parte de las entregas de un MVP implican el desarrollo de la interfaz de usuario, piensa que AWS Amplify sería una opción ideal. Con Amplify, el equipo obtiene soporte integrado para crear y alojar aplicaciones de React.js con muchos componentes reutilizables. Amplify también puede ayudar con el backend: puede administrar diferentes bases de datos, como Amazon DynamoDB, una excelente opción flexible para empezar, y puede usar AWS AppSync para conectar fácilmente el frontend con los orígenes de datos y desarrollar la lógica empresarial.

Dominio
Una vez resuelto el marco, es hora de obtener un nombre de dominio. Amazon Route 53 ayuda a Example Startup a configurar un servicio de DNS (sistema de nombres de dominio) que se integre bien en los servicios que ya se utilizaban, así como con el proceso de registro de dominios.

Experimentación y administración de costos
El equipo simplemente tiene que elegir un servicio de AWS que se adapte a su caso de uso para satisfacer la mayoría de sus necesidades iniciales. La variedad de servicios de AWS permite a Example Startup experimentar rápidamente con diversas opciones y tomar decisiones en función de la experiencia.

Si bien muchos de los servicios de AWS tienen una capa gratuita, algunos de los experimentos de Example Startup pueden resultar excesivamente entusiastas. Cuando llega la factura del primer mes, el equipo se da cuenta de que debe prestar más atención a los costos. Como en muchos otros casos, hay una solución de AWS para eso: comienzan a usar el servicio gratuito AWS Budgets, que ayuda al equipo a mejorar la planificación y administración de costos y a definir alertas personalizadas que llamen su atención sobre cualquier cosa que no esté en consonancia con sus expectativas.

Datos
Un mes después, Example Startup ya tiene gran parte de la interfaz de usuario y algunas características relacionadas que funcionan con datos de muestra. A continuación, necesitarán procesos por lotes que hagan el trabajo pesado con algunos datos reales.

Tras encontrar los orígenes de datos que les proporcionen la información que necesitan, el equipo quiere ingerir los datos de manera automática. Con JavaScript como lenguaje de programación preferido, quieren ejecutar con algo que simplifique al máximo el aspecto operativo.

Esto les lleva a AWS Lambda. El equipo no quiere preocuparse por el funcionamiento de los servidores ni por la escalabilidad, por lo que adoptan un enfoque sin servidor. Para ello, utilizan el tutorial Programar funciones de AWS Lambda con EventBridge.

Con eso, como se muestra en el diagrama de arquitectura inicial, cuentan con un diseño para los servicios que tienen que ejecutar relacionados con los datos.

Pruebas
El equipo está logrando grandes avances. La arquitectura está creciendo, y están satisfechos con el plazo de 3 meses.

Sin embargo, a medida que aumenta el número de personas que prueban la solución, notan un problema. Alguien del equipo preguntó: “¿Cuántas personas son usuarios activos y cuál es el número promedio de transacciones por usuario?”. Pero no pudieron encontrar una respuesta significativa. Están de acuerdo en “improvisar” y ejecutar temporalmente consultas directamente en la consola de DynamoDB y crear una “lista de deseos” para la siguiente iteración.

El lanzamiento
Example Startup alcanzó el plazo límite y lanzó el MVP. En poco tiempo, el equipo observa que se registra una enorme cantidad de personas. Se dan cuenta de que han dado en el clavo, pero necesitan ayuda para mejorar el producto y ampliar el negocio.

Un amigo de un amigo menciona AWS Activate, un programa que ofrece a las startups una serie de beneficios, como créditos de AWS, créditos para planes de AWS Support y orientación sobre arquitectura.

Se postulan para AWS Activate con el objetivo de obtener la ayuda que necesitan para la siguiente fase del recorrido.

Conclusión

Han pasado muchas cosas con Example Startup en tan solo unos meses. Durante el proceso de entrega del primer MVP, muchas startups se enfrentan a desafíos similares a los que superó Example Startup.

Continuaremos con su recorrido en los próximos blogs de la serie Arquitecturas evolutivas. Descubra cómo sus necesidades, desafíos y objetivos cambian a medida que la empresa crece y se escala.

Zoran Nakev

Zoran Nakev

Zoran es Arquitecto senior de Soluciones en AWS y trabaja principalmente con startups de tecnología financiera, ayudándolas a crear soluciones en la plataforma de AWS. Utiliza su experiencia y su pasión por la tecnología para ayudar a las startups a cumplir sus objetivos. Vive en Nueva Jersey con su familia y disfruta de pasar su tiempo libre viendo películas, escuchando música y dando largos paseos con el perro de la familia.

Aayzed Tanweer

Aayzed Tanweer

Aayzed es Arquitecto de Soluciones en AWS y trabaja con clientes de startups en el ámbito de la tecnología financiera y con un enfoque especial en los servicios de análisis. Originario de Toronto, se mudó recientemente a la ciudad de Nueva York, donde disfruta comiendo por la ciudad y explorando sus muchos rincones peculiares.

Justin Plock

Justin Plock

Justin es Arquitecto principal de Soluciones en AWS, y se centra en startups de tecnología financiera. Se reúne periódicamente con los fundadores de empresas de tecnología financiera para garantizar que sus negocios sean seguros y cumplan con las normativas del sector. Antes de trabajar en AWS, fue Director de habilitación de la nube en una compañía de seguros incluida en la lista Fortune 200, y Director de ingeniería en una empresa de ciberseguridad. Le apasiona ayudar a las startups a desarrollarse de forma segura y eficiente en AWS. Vive en Connecticut con su esposa y sus dos hijas.

¿Qué le pareció este contenido?