Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Da un vecchio server bollito al cloud

E22edc988280c3b6ff183318bc1590c2?s=47 weLaika
February 08, 2016

Da un vecchio server bollito al cloud

Siamo abituati a pensare al cloud computing come qualcosa di etereo e intoccabile, ma a volte invece di usare Heroku può valere la pena azzardarsi a fare qualcosa di personalizzato, specialmente se, come me, si ha un’applicazione legacy in PHP.
Vi racconterò la mia esperienza di come siamo arrivati ad avere una rete di server in cloud partendo da un singolo server in fin di vita.

E22edc988280c3b6ff183318bc1590c2?s=128

weLaika

February 08, 2016
Tweet

Transcript

  1. Da un vecchio server bollito al cloud Torino Coding Society,

    8 Febbraio 2016 Matteo Giaccone
  2. Chi sono Matteo Giaccone fondatore di weLaika raccoglitore di server

    bolliti web developer a Vitsœ
  3. Come ho trasportato un'applicazione PHP con 10 anni di vita

  4. wc -l app/**/*.php 194937 total

  5. da un singolo server web, come si faceva una volta,

    a
  6. SPOILER ALERT

  7. Load balancer Auto scaling Web server instance Database instance Virtual

    private network Cache Network File System Content Delivery Network Bastion
  8. In 20 minuti, non temete

  9. Perché? Banalmente perché un giorno d'estate il server è fallito

    miseramente, lasciando a piedi tutta l'azienda per circa 5 ore • nessun cliente poteva effettuare acquisti • nessun ordine poteva essere completato al workshop • nessun nuovo progetto poteva essere mandato a clienti • amministrazione bloccata Circa 50 persone ferme, o quasi. Perdite stimate in decine €K
  10. Perché? Pensando invece ai benefici • robustezza • scalabilità •

    documentazione • nerdness
  11. Obiettivi del talk Portarvi a casa qualche spunto su: •

    Alcuni problemi che ho incontrato nel migrare un'applicazione legacy sul cloud • Una possibile rete virtuale per gestire un'applicazione web • Gli elementi di questa rete
  12. Se vi ho convinto Il problema principale è stato quello

    di avere una qualche parità tra ambiente di sviluppo locale e server live Stop al cowboy server
  13. Chef & Vagrant • Tra le varie alternative in cui

    mi sono imbattuto per gestire VM e installare software ho scelto la combinazione Chef & Vagrant • Chef per gestire il setup del software, la documentazione, in qualche misura • Vagrant per riprodurre il setup in locale e sul server remoto
  14. Codice e asset esistenti • Server NFS per condividere codice

    e asset esistenti tra diversi server • Garantisce compatibilità col software esistente • Performance OK • Single-point-of-failure :( – Ma molto stupido e facile da rimpiazzare – Tappa intermedia verso object storage remoto
  15. Worker come se non ci fosse un domani • I

    worker sono sostituibili • Spegni, butti via, fai partire uno nuovo • Aggiornabili • Scalabili
  16. Bastion Menzione speciale per il bastion host • Server ponte

    per entrare nella rete privata virtuale • Cronjob • Deploy
  17. Load balancer Auto scaling Web server instance Database instance Virtual

    private network Cache Network File System Content Delivery Network Bastion
  18. Jason Karsh CC BY-NC 2.0 https://flic.kr/p/828Kdt Epic win