Serie Architetture evolutive, parte 1

Com'era questo contenuto?

"Ho avuto questa grande idea!"

Ogni startup inizia con un'idea. Prima di iniziare a preoccuparti dei finanziamenti, del personale o della distribuzione o di qualsiasi altra miriade di cose, hai la tua nuova idea: un prodotto o servizio che ritieni abbia del potenziale.

Se la tua idea si baserà sul cloud, avrai bisogno di un'architettura dedicata. Questo schema ti aiuterà a trasformare la tua grande idea in realtà e, se ben realizzato, potrà evolvere di pari passo con la crescita della tua azienda.

Per aiutarti a realizzare un solido schema per la tua idea, i quattro episodi della serie Evolutionary Architectures ti mostreranno come un'azienda, dall'evocativo nome di Example Startup, concretizza la propria visione ideale. Nella prima parte, vedremo come l'azienda ha dato vita a un prodotto minimo praticabile per testare l'interesse dei clienti e l'idoneità al mercato. Più oltre, vedremo come vengono sviluppati progetti e decisioni man mano la società si muove attraverso il ciclo di vita delle startup per fornire una soluzione completa, scalabile, sicura, altamente disponibile e ridondante.

Consegnare il primo MVP

Le prime consegne di prodotti da parte di una startup di solito seguono un approccio graduale. Sono dettate da finanziamenti, tempi, risorse, dimensioni del team, conoscenza ed esperienza.

In questa fase è estremamente importante non lasciare che prevalga la voglia di perfezione e fornire soluzioni semplici ma funzionali. A tal fine, è necessario saper riconoscere i processi decisionali a 1 e a 2 vie, anticipare l'errore (fail fast) e voltare pagina quando necessario, gestire i costi e accelerare il time-to-market.

Diamo un'occhiata a Example Startup e vediamo come viene affrontato questo processo.

L'idea
L'idea di Example Startup è creare un "mercato azionario del fantasy". Hanno preso come base i campionati di fantasy sport e vi hanno applicato l'idea dell'investimento in borsa. La loro visione è organizzare quattro "tornei" nel corso di un anno.

All'inizio di ogni trimestre, un nuovo gruppo di investitori inizia con lo stesso importo di fondi. Il mercato azionario del fantasy consente a questi investitori di fare le proprie scelte di investimento (basate su simboli e società quotate nei mercati azionari reali) nei tre mesi successivi. Alla fine del trimestre, viene redatta la classifica dei partecipanti e vengono annunciati i vincitori.

La preparazione
Per trasformare la loro idea in realtà, i due fondatori hanno avviato la loro startup: hanno raccolto i propri risparmi e preso in prestito denaro da amici e parenti.

Una dei fondatori, una sviluppatrice con grande esperienza, ha ottenuto 3 mesi di ferie dal lavoro. Ciò le permette di concentrarsi sulla soluzione tecnica, il che è decisamente utile, e nel contempo definire anche la tempistica per la loro prima consegna.

Ora, in soli tre mesi, lei e il cofondatore, che ha un background finanziario, devono decidere quali funzionalità includere nell'MVP e creare il loro prodotto. Per iniziare, decidono 1) quali funzionalità sono assolutamente necessarie perché il prodotto sia utilizzabile e 2) quali funzionalità consentiranno loro di parametrare l'adattamento al mercato e l'interesse dei clienti.

Decidono quanto segue:

  • importazione dei simboli/delle società operanti sui mercati azionari reali, con i quali gli investitori potranno operare
  • feed di prezzi di mercato quotidiani
  • meccanismo di registrazione per gli utenti
  • interfaccia utente (UI) per la gestione del portafoglio
  • procedura quotidiana per il calcolo del portafoglio a fine giornata
  • procedura quotidiana di redazione delle classifiche

La costruzione
Dopo aver definito l'ambito, è il momento di prendere alcune decisioni tecniche atte a definire di quali tecnologie e componenti ha bisogno il mercato azionario fantasy. Quindi, creeranno un piano di implementazione caratterizzato da tappe fondamentali per il lancio dell'MVP.

Framework
Nella sua veste di sviluppatrice, uno dei fondatori di Example Startup ha esperienza in React, una libreria JavaScript per la creazione di interfacce utente. Considerando che gran parte delle consegne di MVP prevede lo sviluppo di UI, ritiene AWS Amplify la soluzione ideale. Grazie ad Amplify, il team ottiene supporto integrato per la creazione e l'hosting di applicazioni React.js con molti componenti riutilizzabili. Amplify può essere d'aiuto anche con il backend: può gestire diversi database come Amazon DynamoDB, un'ottima opzione flessibile per iniziare, e può utilizzare AWS AppSync per connettere facilmente il front-end con le fonti di dati e sviluppare la logica di business.

Dominio
Una volta sistemato il framework, è il momento di ottenere il nome del dominio. Amazon Route 53 aiuta Example Startup a configurare un servizio DNS (Domain Name System) che offre una buona integrazione con i servizi che l'azienda stava già utilizzando e con il processo di registrazione del dominio.

Sperimentazione e gestione dei costi
Il team è in grado di soddisfare la maggior parte delle sue esigenze iniziali semplicemente scegliendo un servizio AWS in linea con il caso d'uso. L'ampia gamma di servizi AWS consente a Example Startup di sperimentare rapidamente diverse opzioni e prendere decisioni in base all'esperienza.

Sebbene molti dei servizi AWS siano gratuiti, alcune delle sperimentazioni di Example Startup potrebbero risultare troppo entusiastiche. Quando arriva la fattura del primo mese, il team si rende conto che deve prestare maggiore attenzione ai costi. Come in molti altri casi, esiste una soluzione AWS per questo: iniziano a utilizzare il servizio gratuito Budget AWS. Il servizio aiuta il team a migliorare la pianificazione e la gestione dei costi e a definire degli avvisi che richiamano efficacemente la loro attenzione su tutto ciò che potrebbe non essere in linea con le aspettative.

Dati
Dopo un mese, Example Startup ha già molte UI e alcune funzionalità correlate che funzionano con dati campione. Successivamente, avranno bisogno di procedure batch che dovranno occuparsi del lavoro pesante con alcuni dati reali.

Dopo aver trovato le fonti di dati da cui ricavare le informazioni di cui ha bisogno, il team desidera acquisire automaticamente i dati. Continuando a utilizzare JavaScript come linguaggio di programmazione preferito, l'azienda desidera far funzionare il sistema con qualcosa che renda gli aspetti operativi quanto più intuitivi possibile.

È questo a condurli ad AWS Lambda. Il team non vuole preoccuparsi del funzionamento dei server e della scalabilità, quindi adotta un approccio serverless, utilizzando il tutorial Pianificare le funzioni AWS Lambda utilizzando EventBridge.

Con ciò, come mostrato nel diagramma dell'architettura iniziale, dispongono di un progetto per i servizi relativi ai dati di cui hanno bisogno per far funzionare il sistema.

Test
Il team sta facendo grandi progressi. La loro architettura sta crescendo e si sentono al passo con la scadenza preventivata a tre mesi.

Tuttavia, man mano che il numero di persone che testano la soluzione aumenta, si evidenzia un problema. Un componente del team chiede: "Quante persone sono utenti attivi e qual è il numero medio di transazioni per utente?", ma non riescono a trovare una risposta significativa. Sono d'accordo nel "bypassare" la questione eseguendo temporaneamente le query direttamente sulla console DynamoDB e creano una "lista dei desideri" per l'iterazione successiva.

Il lancio
Example Startup ha rispettato la scadenza e ha lanciato l'MVP. In poco tempo, il team assiste a un numero enorme di registrazioni. Si rende conto di aver scoperto qualcosa di profittevole, ma ha bisogno di aiuto per migliorare il prodotto e ampliare il business.

Un amico comune menziona AWS Activate, un programma che offre alle startup una serie di vantaggi, tra cui crediti AWS, crediti del piano di supporto AWS e linee guida sull'architettura.

Si rivolgono quindi ad AWS Activate per ottenere l'aiuto di cui hanno bisogno per affrontare la fase successiva del loro percorso.

Conclusioni

In pochi mesi, sono successe molte cose ad Example Startup. Durante fase che porta alla consegna del primo MVP, molte startup affrontano sfide simili a quelle con cui si è dovuta confrontare Example Startup.

Continueremo a seguirne le vicende nei prossimi blog della serie Evolutionary Architecture. Scopri come esigenze, sfide e obiettivi cambiano man mano che l'azienda cresce e si espande.

Zoran Nakev

Zoran Nakev

Zoran è Senior Solutions Architect presso AWS. Lavora principalmente con le startup Fintech e le aiuta a creare soluzioni sulla piattaforma AWS. Usa la propria esperienza e passione per la tecnologia per aiutare le startup a raggiungere i loro obiettivi. Vive nel New Jersey con la sua famiglia e ama passare il tempo libero guardando film, ascoltando musica e facendo lunghe passeggiate con il proprio cane.

Aayzed Tanweer

Aayzed Tanweer

Aayzed è Solutions Architect presso AWS e collabora con vari clienti di startup nel settore Fintech, con una particolare attenzione ai servizi di analisi. Originario di Toronto, si è recentemente trasferito a New York, dove si diverte a esplorare la città e a deliziarsi con le sue innumerevoli specialità culinarie e angoli nascosti.

Justin Plock

Justin Plock

Justin è Principal Solutions Architect presso AWS ed è specializzato nel campo delle startup Fintech. Incontra regolarmente i fondatori di Fintech per contribuire a garantire che la loro attività sia sicura e conforme alle normative del settore. Prima di entrare in AWS, è stato Director of Cloud Enablement presso una compagnia assicurativa Fortune 200 e Director of Engineering presso una società di sicurezza informatica. Nutre una forte passione per aiutare le startup a svilupparsi in modo sicuro ed efficiente su AWS. Attualmente, vive nel Connecticut con sua moglie e le sue due figlie.

Com'era questo contenuto?