Un errore comune che si vede spesso commettere dai fondatori delle start up su AWS è quello di cercare di implementare la propria soluzione, quando invece potrebbe essere utilizzato un Managed Service.
Quando si parla di AWS, un Managed Service è un servizio che viene creato, mantenuto e gestito dai nostri esperti altamente qualificati. Questa iniziativa è in contrasto con l’idea base in cui siamo noi stessi ad attivare la soluzione sul nostro server, dove siamo responsabili della gestione e delle operazioni in corso – una situazione che viene definita “Rolling your own“.
Si vedono spesso gli sviluppatori utilizzare software e strumenti open source per creare localmente il loro proof of concept (prova di fattibilità). Una volta che è il momento di lanciare la propria applicazione online o ridimensionarla, tuttavia, si ritrovano a dover eseguire il refactoring di parte della stessa per sfruttarne i servizi cloud oppure a doverla mantenere così com’è, il che spesso comporta più lavoro operativo e costi più elevati.
Prima di scegliere uno stack tecnologico, è consigliabile valutare la sua capacità di crescere con l’attività. È più che lecito porsi questo quesito: la struttura che si possiede, se si avrà successo, funzionerà ancora sia tecnicamente che finanziariamente?
Scegliere l’approccio migliore
Quando si sceglie la struttura della propria applicazione, è giusto considerare i seguenti fattori. La ponderazione di questi può aiutarti a decidere se è meglio utilizzare un Managed Service o implementare la propria soluzione.
- Lavoro operativo: quanto tempo e lavoro sono necessari per mantenere lo stack? Pensare per esempio ad attività ripetitive come aggiornamenti di versione, patch di sicurezza, aggiornamenti hardware e distribuzioni software. Queste attività richiederanno una notevole quantità di tempo per il team? Si deve ricordare che, il tempo non dedicato al lavoro operativo può essere speso per aggiungere valore al prodotto.
- Costi delle infrastrutture anticipati e su larga scala: quanto costerà all’azienda gestire gli stack nei diversi stadi della crescita? Questo è molto importante, poiché spesso definisce quanto capitale si dovrà raccogliere e quanto può diventare redditizia l’attività. Il denaro è al potere, quindi più snella è l’azienda, meglio è. Gli investitori sono alla ricerca di società che sfruttino i servizi esistenti e si concentrino sulla creazione di valore.
- Complessità: se si sceglie uno stack specifico, quanto diventerà complesso nel tempo? Mantenere la complessità il più bassa possibile è fondamentale, così poi ci si potrà muovere più velocemente e ridurre i rischi. Più tecnologie, prodotti dei fornitori e software vengono incorporati nel prodotto, più grande e specializzato dovrà essere il personale IT, aumentando potenzialmente i costi e il lavoro operativo complessivo.
- Creazione di funzionalità VS Infastruttura: l’utilizzo di un particolare servizio di Managed Service aiuta a creare funzionalità più velocemente per i clienti? L’adattamento del prodotto alle richieste del mercato spesso deriva dalla ripetizione delle varie funzioni, non dall’avere una struttura perfetta. L’obiettivo di AWS è aiutare i clienti a scrivere un codice che offra un valore agli utenti finali.
- Agilità: quanto velocemente si può implementare una nuova funzionalità e quanto velocemente si può cambiarla se necessario? L’agilità è la principale proposta di valore del cloud e dei Managed Service. Grazie a loro, si possono apportare dei cambiamenti in modo rapido e ci si potrà innovare più velocemente.
- Affidabilità: è necessario assicurarsi di avere il minor numero possibile di errori nell’applicazione, ma mantenere quel livello di costanza e affidabilità può essere difficile. Con i Managed Service, gli esperti altamente qualificati di AWS si concentrano sull’implementazione e sul funzionamento dei servizi.
- Disponibilità: l’applicazione deve essere sempre attiva e funzionante? Essere costantemente disponibili non è facile. Se il data center, una zona di disponibilità o una regione non funziona, cosa succede all’applicazione? I Managed Service sono sempre disponibili di default e vengono gestiti da AWS.
- Sicurezza: quanto sarà solida la posizione sulla sicurezza se si crea il proprio servizio personalmente? Questo è un tema che dovrebbe avere una priorità assoluta nell’azienda sin dal primo giorno e ovviamente, comporta diverse problematiche. Per poter mantenere un alto livello di sicurezza, spesso si crea un sovraccarico nel processo di sviluppo e questo può rallentare l’innovazione. In AWS, la sicurezza è la nostra priorità numero uno. AWS ha team dedicati di ingegneri altamente qualificati che lavorano i team di prodotto per garantire che i Managed Service siano il più sicuri possibile.
- Time to market: quanto velocemente puoi rilasciare nuove funzionalità? Utilizzare i Managed Service significa non dover dedicare tempo a creare qualcosa che già esiste e ciò permette alle startu up, invece, di concentrarsi interamente all’aggiunta di valore al prodotto.
- Portabilità: ci sarà il bisogno di spostare l’applicazione in sede o su un altro Cloud Provider? In questo caso, si potrebbe prendere in considerazione l’idea di implementare il servizio. Tuttavia, si potranno utilizzare diversi Managed Service come Amazon Elastic Kubernetes Service (Amazon EKS), che aiuta a gestire i container su AWS. I container possono quindi essere facilmente trasferiti su un cluster Kubernetes di un’altra piattaforma.
- Personalizzazione: c’è bisogno di un alto livello di personalizzazione per soddisfare le esigenze aziendali? In tal caso, l’attivazione di un proprio servizio potrebbe essere vantaggiosa, poiché è possibile adattarlo esattamente alle proprie esigenze. Se la personalizzazione non è l’obiettivo primario della startup, tuttavia, è consigliabile considerare l’utilizzo dei Managed Service.
Vantaggi dei Managed Service
Prima di iniziare a scrivere codici o distribuire software open source su un server, si dovrebbero conoscere tutte le opzioni a disposizione, in modo da poter iniziare a creare nel modo giusto, muoversi velocemente per battere la concorrenza e realizzare un prodotto che cresca insieme all’attività. Ne vale la pena distaccarsi da una mentalità “Crea prima” e iniziare, invece, ad effettuare anticipatamente una ricerca per determinare cosa c’è sul mercato, prima di proseguire con il progetto.
AWS fornisce Managed Service per la maggior parte dei casi di uso comune. Di norma, è consigliabile utilizzarne uno già disponibile che possa soddisfare le proprie esigenze.
Sfruttare i servizi AWS, invece di implementarli da soli, può aiutare a risparmiare una elevata quantità di lavoro pesante e inutile, offrire serenità e permette di concentrarsi solo sulla creazione di valore per la propria azienda invece di occuparsi del lavoro operativo.
Vantaggi di Rolling your own
Come descritto in precedenza, ‘Rolling your own’ consente un livello più elevato di personalizzazione e controllo. Tuttavia, è consigliabile prendere in considerazione questa alternativa solo se fornisce evidenti vantaggi per il core business. La progettazione e l’implementazione del proprio modello saranno in grado di produrre un continuo vantaggio competitivo?
Anche le normative e la trasferibilità sono fattori da considerare, in quanto potrebbe essere necessario che l’applicazione utilizzi un software particolare o sia ospitata in loco o in una regione specifica del mondo. In questi casi, potresti voler controllare e gestire lo stack, e non fare troppo affidamento su provider esterni.
Si dovrebbe anche tenere conto delle conoscenze interne del team, che possono accelerare lo sviluppo iniziale. Se un team ha molta esperienza con una struttura specifica, ad esempio, potrebbe essere più vantaggioso per creare l’applicazione seguendo questo metodo. Tuttavia, è necessario non solo considerare lo step iniziale della costruzione, ma anche tutti i costi a lungo termine provenienti sia dal lato del lavoro operativo che dalla manutenzione, poiché costituiranno la maggior parte dei costi totali.
Conclusione
Per iniziare col piede giusto e già in un punto di crescita, valutare un approccio cloud-native quando si avvia un progetto. Anche se non è possibile prevedere tutte i possibili scenari, si deve pensare a dove potrà essere ospitata l’applicazione, quali sono i Managed Service già a disposizione e come questa verrà gestita su larga scala. Quindi è consigliabile prendere in considerazione i linguaggi di programmazione, il framework, il software e gli strumenti necessari per crearlo. Sposare questo tipo di approccio aiuterà a prendere la giusta decisione in merito alla distribuzione iniziale.
di Nicolas Menciere, AWS Startup Solutions Architect