Passare ad Amazon ECS ha migliorato notevolmente le prestazioni del nostro servizio. Abbiamo diminuito il tempo di risposta al 99° percentile del 50%.
Jason Fischl Vice presidente progettazione

Remind è un'applicazione Web e per dispositivi mobili che consente agli insegnanti di inviare messaggi di testo agli studenti e rimanere in contatto con i genitori. Remind ha 25 milioni di utenti e oltre 1,5 milioni di insegnanti sulla propria piattaforma e l'applicazione distribuisce 150 milioni di messaggi al mese.

Keynote al AWS re:Invent 2015 | Jason Fischl, vice presidente del dipartimento di engineering, Remind (7:44)

reinvent-remind
  • Remind utilizzava una piattaforma cloud di terze parti come un servizio (PaaS) per eseguire l'intera infrastruttura applicativa (motore di consegna dei messaggi, API front-end, client Web, back-end chat) come applicazione monolitica.
  • Problemi di dimensionamento hanno indotto la necessità di passare a un'architettura basata su microservizi ma Remind non era soddisfatta della visibilità limitata sulla CPU e delle prestazioni di rete messe a disposizione dal fornitore PaaS.
  • Remind desiderava utilizzare Docker su Amazon Elastic Compute Cloud (Amazon EC2) per un migliore utilizzo delle risorse e una migliore uniformità dell'ambiente e il pensiero iniziale è stato quello di disporre di una soluzione PaaS interna che garantisse l'efficienza degli sviluppatori.
  • Remind ha iniziato a creare la propria soluzione PaaS al di sopra del CoreOS basato su Linux e del parco istanze, ma il parco istanze e l'etcd per la memorizzazione dei valori chiave erano instabili. Inoltre il team non desiderava trascorrere tempo nell'eseguire e rendere operativo il proprio sistema di gestione del cluster.

  • Remind ha scelto di utilizzare AWS direttamente per mantenere la semplicità operativa; utilizzava già Amazon Redshift, Amazon DynamoDB, Amazon Simple Storage Service (Amazon S3) e Amazon CloudFront.
  • La società ha deciso di creare la propria soluzione PaaS Amazon EC2 Container Service (Amazon ECS) poiché il team di engineering era ridotto e non aveva il tempo o l'esperienza necessaria per attivare e gestire i cluster.
  • Remind ha rilasciato in open source la propria soluzione PaaS su Amazon ECS come "Empire".
  • Amazon ECS fornisce la pianificazione e l'integrazione dei contenitori, mentre Elastic Load Balancing (ELB) consente a Empire di utilizzare DNS per il rilevamento dei servizi.
  • Empire fornisce un'API compatibile con Heroku e CLI che consente agli sviluppatori di distribuire facilmente le applicazioni su Amazon ECS.

  • Amazon ECS, un servizio gestito, offre efficienza operativa, consentendo alle risorse del dipartimento di engineering di focalizzarsi sullo sviluppo e sulla distribuzione delle applicazioni anziché sulla gestione e sul mantenimento dei cluster.
  • Il passaggio ad Amazon ECS ha offerto miglioramenti significativi delle prestazioni, compresa una migliore stabilità e una latenza inferiore.
  • Remind ha registrato una riduzione di 2 volte nei tempi di risposta nel 99° percentile, con meno varianza e minori picchi.
  • AWS ha fornito il controllo sulla sicurezza e l'instradamento tramite VPC, oltre a una maggiore visibilità sulle prestazioni delle applicazioni.

Per ulteriori informazioni su come AWS può aiutarti a gestire i tuoi contenitori Docker, visita la pagina dei dettagli su Amazon EC2 Container Service.