Série Evolutionary architectures, parte 1

Como estava esse conteúdo?

“Eu tenho essa ótima ideia!”

Toda startup começa como uma ideia. Antes de começar a se preocupar com financiamento, equipe, distribuição ou qualquer outra infinidade de coisas, você tem uma ideia nova e nova: um produto ou serviço que você acha que tem potencial.

Se sua ideia se basear na nuvem, você precisará de uma arquitetura de nuvem. Esse esquema ajudará a transformar sua grande ideia em realidade e, se bem construído, poderá evoluir junto com sua empresa à medida que ela cresce.

Para ajudar você a criar um esquema robusto para sua ideia, esta série de quatro partes, Evolutionary Architectures, mostrará como uma empresa, a apropriadamente chamada Example Startup, coloca sua ideia em prática. Na parte 1, veremos como eles criaram um produto mínimo viável (MVP) para testar o interesse do cliente e a adequação ao mercado. Posteriormente na série, veremos como seus projetos e decisões evoluem à medida que avançam no ciclo de vida das startups para oferecer uma solução completa, escalável, segura, altamente disponível e redundante.

Entregando seu primeiro MVP

As primeiras entregas de produtos por uma startup geralmente seguem uma abordagem em fases. Eles são ditados por financiamento, tempo, recursos, tamanho da equipe, conhecimento e experiência.

Nesse estágio, é extremamente importante não deixar que a perfeição atrapalhe o que é bom e oferecer soluções simples, mas funcionais. Para fazer isso, você precisará saber como identificar decisões unidirecionais e bidirecionais, antecipar-se à falha e mudar quando necessário, gerenciar custos e acelerar o tempo de comercialização.

Vamos dar uma olhada em Example Startup e ver como eles abordam esse processo.

A ideia
Exemplo: a ideia da Startup é criar um “mercado de ações de fantasia”. Eles usaram ligas de esportes de fantasia como base e aplicaram a ideia de investir no mercado de ações. Eles preveem realizar quatro “torneios” ao longo de um ano.

No início de cada trimestre, uma nova coorte de investidores começa com a mesma quantidade de fundos. O mercado de ações de fantasia permite que esses investidores façam suas escolhas de investimento (com base em empresas e símbolos de mercados de ações reais) nos próximos 3 meses. No final do trimestre, os participantes são classificados e os vencedores são anunciados.

A preparação
Para tornar sua ideia realidade, os dois fundadores iniciaram sua startup: eles juntaram suas economias e pediram dinheiro emprestado a amigos e familiares.

Uma fundadora, uma desenvolvedora experiente, teve três meses de licença do emprego. Isso permite que ela se concentre na solução técnica, o que é útil. No entanto, também define o cronograma para a primeira entrega.

Agora, em apenas três meses, ela e seu cofundador, que tem experiência em finanças, devem decidir quais atributos incluir no MVP e criar seu produto. Para começar, eles decidem 1) quais atributos são absolutamente necessários para um produto utilizável e 2) quais atributos lhes permitirão medir a adequação ao mercado e o interesse do cliente.

Eles decidem o seguinte:

  • Um processo de importação de símbolos/empresas do mercado de ações do mundo real nos quais os investidores podem negociar
  • Feed diário de preços de mercado
  • Mecanismo de inscrição para usuários
  • Interface de usuário (UI) de gerenciamento de portfólio
  • Processo diário para cálculos de portfólio de fim de dia
  • Um processo diário que calcula classificações

A construção
Depois de definir seu escopo, é hora de tomar algumas decisões técnicas sobre quais tecnologias e componentes o mercado de ações de fantasia precisa. Em seguida, eles criarão um plano de implementação com marcos para o lançamento do MVP.

Framework
Como desenvolvedor, um dos fundadores da Example Startup tem experiência em React, uma biblioteca JavaScript para criar interfaces de usuário. Considerando que uma grande parte das entregas de MVP envolve o desenvolvimento da interface do usuário, ela acha que o AWS Amplify parece uma ótima opção. Com o Amplify, a equipe obtém suporte integrado para criar e hospedar aplicações React.js com muitos componentes reutilizáveis. O Amplify também pode ajudar com o back-end (ele pode gerenciar bancos de dados diferentes, como o Amazon DynamoDB, uma ótima opção flexível para começar) e pode usar o AWS AppSync para conectar facilmente o front-end às fontes de dados e desenvolver a lógica de negócios.

Domínio
Com a estrutura resolvida, é hora de obter um nome de domínio. O Amazon Route 53 ajuda a Example Startup a configurar um serviço DNS (Sistema de Nome de Domínio) que tenha boa integração com os serviços que eles já estavam usando, bem como com o processo de registro de domínio.

Experimentação e gerenciamento de custos
A equipe é capaz de atender à maioria de suas necessidades iniciais simplesmente escolhendo um serviço da AWS que se alinhe ao seu caso de uso. A variedade de serviços da AWS permite que a Example Startup experimente rapidamente várias opções e tome decisões com base na experiência.

Embora muitos dos serviços da AWS tenham um nível gratuito, algumas das experiências da Example Startup podem ser excessivamente entusiasmadas. Quando chega a fatura do primeiro mês, a equipe percebe que precisa prestar mais atenção ao custo. Como em muitos outros casos, existe uma solução da AWS para isso: eles começam a usar o serviço gratuito AWS Budgets. Isso ajuda a equipe a melhorar o planejamento e o gerenciamento de custos e a definir alertas que chamam sua atenção de forma conveniente para qualquer coisa que possa não estar de acordo com suas expectativas.

Dados
Um mês depois, o Example Startup já tem grande parte da interface do usuário e alguns atributos relacionados funcionando com dados de amostra. Em seguida, eles precisarão de processos em lote que farão o trabalho pesado com alguns dados reais.

Depois de encontrar fontes de dados para fornecer as informações de que precisam, a equipe deseja ingerir os dados automaticamente. Continuando com o JavaScript como sua linguagem de programação preferida, eles querem executá-lo com algo que torne o aspecto operacional o mais simples possível.

Isso os leva ao AWS Lambda. A equipe não quer se preocupar com a operação de servidores e a escalabilidade, então eles adotam uma abordagem sem servidor, usando o tutorial Schedule AWS Lambda functions using EventBridge.

Com isso, conforme mostrado no diagrama de arquitetura inicial, eles têm um design para os serviços relacionados a dados que precisam executar.

Testes
A equipe está fazendo um grande progresso. Sua arquitetura está crescendo e eles se sentem bem com o prazo de 3 meses.

No entanto, à medida que o número de pessoas que testam a solução aumenta, elas percebem um problema. Alguém da equipe perguntou: “Quantas pessoas são usuários ativos e qual é o número médio de transações por usuário?” Mas eles realmente não conseguiram encontrar uma resposta significativa. Eles concordam em “improvisar” executando temporariamente consultas diretamente no console do DynamoDB e iniciando uma “lista de desejos” para a próxima iteração.

O lançamento
A Example Startup cumpriu seu prazo e lançou o MVP. Em pouco tempo, a equipe vê uma lista enorme de inscrições. Eles percebem que estão no caminho certo, mas precisam de ajuda para melhorar seus produtos e expandir seus negócios.

Um amigo de um amigo menciona o AWS Activate, um programa que oferece às startups vários benefícios, incluindo créditos da AWS, créditos do plano de suporte da AWS e orientação de arquitetura.

Eles se inscrevem no AWS Activate para obter a ajuda de que precisam para a próxima fase de sua jornada.

Conclusão

Muita coisa aconteceu com o Example Startup em apenas alguns meses. Durante o processo de entrega do primeiro MVP, muitas startups enfrentam desafios semelhantes aos que a Example Startup superou.

Continuaremos com sua jornada nos próximos blogs da série Arquitetura Evolucionária. Saiba como suas necessidades, desafios e metas mudam à medida que a empresa cresce e cresce.

Zoran Nakev

Zoran Nakev

Zoran é Arquiteto de Soluções Sênior na AWS, trabalhando principalmente com startups da FinTech e ajudando-as a criar soluções na plataforma da AWS. Ele usa sua experiência e paixão pela tecnologia para ajudar as startups a atingir seus objetivos. Ele mora em Nova Jersey com sua família e gosta de passar seu tempo livre assistindo filmes, ouvindo música e fazendo longas caminhadas com o cachorro da família.

Aayzed Tanweer

Aayzed Tanweer

Aayzed é Arquiteta de Soluções na AWS, trabalha com clientes de startups na área de FinTech, com foco especial em serviços de análise. Sendo originalmente de Toronto, ele se mudou recentemente para a cidade de Nova York, onde gosta de explorar lugares para comer em toda a cidade e seus muitos cantos e recantos peculiares.

Justin Plock

Justin Plock

Justin é Principal Arquiteto de Soluções na AWS, com foco em startups de fintech. Ele se reúne regularmente com fundadores de fintech para ajudar a garantir que seus negócios estejam seguros e em conformidade com as regulamentações do setor. Antes da AWS, ele foi Diretor de Capacitação em Nuvem de uma seguradora da Fortune 200 e Diretor de Engenharia em uma empresa de segurança cibernética. Ele é apaixonado por ajudar startups a se desenvolverem com segurança e eficiência na AWS. Ele mora em Connecticut com a esposa e duas filhas.

Como estava esse conteúdo?