A cosa serve uno starter kit?
By Samir El Moubaraky
A cosa serve uno starter kit?
Gli starter kit vengono utilizzati per fornire uno scaffolding preimpostato agli elementi che vanno al di fuori della business logic del progetto.
Consente quindi ad uno sviluppatore di iniziare molto più rapidamente lo sviluppo avendo già un primo workflow di deploy e testing impostato.
Perché gli starter kit?
Con l’evoluzione dell’approccio allo sviluppo di microservizi nativi nel cloud, sono entrati in uso numerosi framework, tecnologie di configurazione runtime e best practice per migliorare la qualità e la robustezza del codice.
Diventa molto dispendioso in termini di tempo creare, gestire e mantenere questi elementi. Lo scaffolding di uno starter kit ci permette di superare questo problema.
Meno errori umani
Gli starter kit ci permettono anche di eliminare una serie di processi manuali che potrebbero portare ad errori umani, che risultano meno probabili nel momento in cui una serie di file e processi sono già preimpostati, dandoci una configurazione più affidabile.
Da cosa sono costituiti i nostri starter kit:
- Documentazione: Tramite la quale è possibile scrivere ed impaginare tutta la documentazione del servizio, che sarà presente su github così come sulla Developer Platform.
- Framework di Unit Test (jest)
- Framework di linting del codice (eslint)
- Dockerfile e docker-compose
- Esempi di use case per API, Dashboard etc.
- Configurazione di pipeline CI/CD (Github Actions)
- Configurazione del cloud service, Infrastructure as a Code e credenziali (serverless framework)
Esempio della struttura di un nostro starter kit per lambda basata su fastify:
IaC + starter kit, accoppiata vincente.
Unire ad uno starter kit l’Infrastructure As a Code è un’idea vincente. L’IaC, già di per sè semplifica molto la configurazione dell’infrastruttura cloud che utilizzerà la nostra applicazione, ma se la uniamo anche ad uno starter kit, il tempo risparmiato risulta di grande rilevanza.
In ogni starter kit utilizziamo il framework Serverless, ed è infatti presente un file di configurazione serverless.yml che contiene già le configurazioni di base al deploy del nostro servizio nel cloud di AWS, facilmente modificabile per impostare le resource, function ed event da utilizzare.