Hip Hop Virtual Machine
- Performance HHVM
- Compatibilità con PHP
- Compatibilità con Magento
- Compatibilità Piattaforma: Debian, Centoos, Ubuntu
Ambiente in Produzione
- Caso Studio
- Statistiche
- Problematiche
1. 1
HIPHOP
VIRTUAL
MACHINE
HIGH PERFORMANCE MAGENTO ON HHVM
ALESSANDRO SCAVELLA
BACKEND & MOBILE DEVELOPER
In Collaborazione con
FRANCESCO CORRIGA
2. Cos'è
HHVM
HHVM è una virtual machine sviluppata da Facebook
HHVM è programmabile in vari linguaggi incluso PHP
HHVM fornisce migliori performance di PHP 5.6 ed è
compatibile con Magento
HHVM consuma meno memoria di PHP e soffre di meno
memory leaks
TEMA:
HIGH
PERFORMANCE
MAGENTO
HHVM
RELATORE:
ALESSANDRO
SCAVELLA
2
3. Performance
di HHVM
HHVM ha un JIT compiler che trasforma il codice PHP in
bytecode e lo ottimizza
Il bytecode viene poi tradotto in codice macchina ed
eseguito nativamente
In Magento HHVM è risultato più veloce del 50/100% di
PHP 5.6
In altri casi HHVM può arrivare ad essere fino a 40 volte
più veloce di PHP
TEMA:
HIGH
PERFORMANCE
MAGENTO
HHVM
RELATORE:
ALESSANDRO
SCAVELLA
3
5. Response
Time
TEMA:
HIGH
PERFORMANCE
MAGENTO
HHVM
RELATORE:
ALESSANDRO
SCAVELLA
5
6. Compatibilità
con PHP
TEMA:
HIGH
PERFORMANCE
MAGENTO
HHVM
RELATORE:
ALESSANDRO
SCAVELLA
6
HHVM è compatible al 99% con PHP 5.6
Non tutti i moduli sono implementati (Postgre SQL,..)
HHVM è più severo sull'interpretazione del codice e
alcuni “tricks” abituali di programmazione possono causare
problemi
E' stato implementato un file di configurazione identico a
PHP.ini; la gran parte delle impostazioni utili sono state
implementate
7. Compatibilità
con Magento
TEMA:
HIGH
PERFORMANCE
MAGENTO
HHVM
RELATORE:
ALESSANDRO
SCAVELLA
7
Compatibile ad oltre il 99% con Magento 2 CE e precedenti
I moduli aggiuntivi sono da testare ad eccezione di
alcuni ad uso comune
Le problematiche che si verificano in genere sono di facile
soluzione
E' preferibile utilizzare moduli OpenSource per poter
intervenire in caso di incopatibilità
8. Compatibilità
Piattaforma
TEMA:
HIGH
PERFORMANCE
MAGENTO
HHVM
RELATORE:
ALESSANDRO
SCAVELLA
8
HHVM è OpenSource e può essere compilato su sistemi
Linux e Apple. (Windows non supportato)
Il team offre builds precompilate per Ubuntu, Debian,
Centos, Fedora e Linux Mint Debian
Le builds sono ospitate in repositories per facilitare
l'installazione, l'aggiornamento e la manutenzione
9. Ambiente in
Produzione
TEMA:
HIGH
PERFORMANCE
MAGENTO
HHVM
RELATORE:
ALESSANDRO
SCAVELLA
9
HHVM è un software in continuo sviluppo ma sono state
rese disponibili versioni Nightly, Stable e Long Term
Support.
In produzione sono preferibili versioni LTS o
eventualmente Stable.
E' importante testare sempre gli aggiornamenti su una
macchina di test.
10. Caso Studio
Gasmy.it
TEMA:
HIGH
PERFORMANCE
MAGENTO
HHVM
RELATORE:
ALESSANDRO
SCAVELLA
10
Gasmy.it è basato su Magento CE 1.8.1 ed è altamente
customizzato
Più di 100.000 prodotti (semplici/configurabili)
Store singolo con viste e valute multiple
Picchi di oltre 15.000 utenti/giorno, oltre 150 visitatori
contemporanei
Singolo virtual server cloud capace di servire pagine in
meno di un secondo
11. Caso Studio
Vantaggi
Ottenuti
TEMA:
HIGH
PERFORMANCE
MAGENTO
HHVM
RELATORE:
ALESSANDRO
SCAVELLA
11
Riduzione della RAM utilizzata da 24 a 16GB
Aumento performance tale da rimuovere Varnish ed
utilizzare una FPC scritta in PHP
Diminuzione del carico computazionale del 60%
Riduzione tempi di caricamento delle pagine del
backend del 75%
12. Statistiche
TEMA:
HIGH
PERFORMANCE
MAGENTO
HHVM
RELATORE:
ALESSANDRO
SCAVELLA
12
Server cloud con Debian 7, 8 core Xeon E5 2660 v2 @
2.20GHz (8 thread), RAM 16GB, 160GB di storage con
partizioni separate.
Software: Percona 5.6, Redis 2.8, Sphinx 2.1, HHVM
3.3.1, Nginx 1.6+Pagespeed, Dnsmasq
Il sistema è in grado di reggere un carico sostenuto di
circa 300 visitatori contemporanei
Con l'aggiunta di Varnish si potrebbe andare oltre il
doppio
13. Problematiche
TEMA:
HIGH
PERFORMANCE
MAGENTO
HHVM
RELATORE:
ALESSANDRO
SCAVELLA
13
HHVM non include tutti i moduli PHP (alcuni dei quali
sono disponibili solo se compilati)
Alcuni dei moduli presentano dei bug o delle
incongruenze con gli equivalenti in PHP
In caso si riscontrino queste problematiche è necessario
intervenire sul codice ed adattarlo
Gli aggiornamenti possono provocare nuovi problemi
14. Link Utili
TEMA:
HIGH
PERFORMANCE
MAGENTO
HHVM
RELATORE:
ALESSANDRO
SCAVELLA
14
http://hhvm.com
https://github.com/danslo/Magento-HHVM-Module-Compatibility
http://webchat.freenode.net/?channels=hhvm
https://github.com/facebook/hhvm/wiki/Extensions
http://www.cooder.it
http://www.gasmy.it
15. Ringraziamenti
TEMA:
HIGH
PERFORMANCE
MAGENTO
HHVM
RELATORE:
ALESSANDRO
SCAVELLA
15
Francesco Corriga
www.gasmy.it