Jump to content
Sign in to follow this  
Katamaze

RevCloud - I Game/Voice server diventano Cloud con WHMCS [Feedback]

Recommended Posts

Ho pubblicato questa discussione in Inglese anche in altri forum ed ora la inserisco anche qui perchè ho bisogno di feedback. Alcune parti potrebbero risultare fuori luogo ma non era il caso di scrivere una versione per ogni sito quindi abbiate pazienza.

 

Quello che sto per mostrare è il mio ultimo progetto su WHMCS. Non è il più complesso che abbia realizzato ma certamente uno dei più completi. Di fatto non si tratta solo di un progetto personale ma anche di una cosa che utilizzerò per la mia stessa attività. Iniziamo dalle basi. Dovrei riferirmi a questo progetto con il termine generico di "Modulo WHMCS" ma dal momento che è così esteso e ricco di funzionalità, preferisco chiamarlo, sebbene sia brutto, con il suo nome temporaneo: RevCloud. RevCloud è formato da:

  • Server Module
  • Addon Module
  • Action Hooks
  • Interfaccia API dedicata
  • Gestione dei prezzi dedicata
  • Monitor di Sistema
  • Interfaccia front-end
  • Servizio di monitoraggio in tutto il mondo

RevCloud permette di rivendere i gameserver ed i voiceserver in un modo totalmente nuovo: Cloud, paghi solo per ciò che consumi, fatturazione in tempo reale, totalmente automatizzato ed integrato in WHMCS. Ora molti di voi probabilmente staranno pensando "Oh no, un'altra diavoleria cloud. Non sono un Game Service Provider e non sono in questo mercato perciò non mi interessa" ma non siate affrettati :) RevCloud infatti può lavorare in 4 differenti modalità ognuna delle quali si rivolge a 4 diversi target:

  • Provider [requisiti: WHMCS, TCAdmin] - Sei un Game Service Provider, già vendi servizi ed hai la tua infrastruttura. Vuoi essere in grado di rivendere i servizi in un'unico pacchetto che i tuoi clienti possano acquistare per creare liberamente tutti i servizi game e voice che desiderano
  • Reseller - Vuoi diventare un Game Service Provider o vuoi espandere la linea di prodotti che offri ai tuoi clienti senza doverti occupare degli aspetti tecnici (server, configurazioni, aggiornamenti, manutenzioni). Un'installazione di WHMCS non è necessaria. Se infatti utilizzi un software gestionale/contabile personalizzato, puoi comunque utilizzare RevCloud grazie alla sua interfaccia API dedicata
  • Reseller (Trial) - Vuoi testare il servizio senza nessuna fastidiosa pagina "Siamo spiacenti ma questa funzione non è disponibile nella demo"
  • Client - Vuoi creare, cancellare, aggiornare e gestire liberamente i tuoi servizi game e voice per te ed i tuoi amici in tempo reale e desideri pagare solo per le risorse che stai utilizzando

Tutte queste modalità supportano un'architettura padre-figlio pertanto se sei un Provider puoi avere Reseller, Client e Trial e se sei un Reseller puoi avere Client e Trial. L'installazione è davvero molto semplice! Guarda l'immagine riportata in basso. Un modulo 4 soluzioni.

 

revcloud-installationtypes.png

 

Premessa

Vendere gameservers e voiceservers non è meno complicato di vendere web hosting. Si, il web hosting può essere davvero complesso ma è pieno di soluzione all-in-one ad ogni livello (cPanel, Plesk, DA, XAMP...). Per i servizi game e voice nella maggior parte dei casi non esistono soluzioni standard in particolare per i gameserver dove ogni singolo titolo di gioco è, in genere, un caso a sè stante. La cosa di gran lunga più importante è che il listino prezzi per la vendita è gestito in modo molto povero soprattutto se lo si paragona ai corrispettivi sistemi ai quali ci ha abituato l'era Cloud. Ora vado a spiegare cosa è in grado di fare RevCloud.

 

Per favore si prega di notare che anche se tutte le immagini allegate presentano testo in Italiano, ogni singola parte di RevCloud supporta nativamente il multi-language sia nelle pagine di back-end che nel front-end.

 

Esempio pratico

Il cliente visita il tuo sito ed invece di effettuare un ordine per un gameserver Counter Strike con una configurazione fissa (esempio: 10 slot, pubblico, mensile) ed un altro per un server Teamspeak 3 da 90 slots, semplicemente si registrerà in WHMCS (o in qualsiasi altro sistema tu stia utilizzando) per caricare credito nel suo account. Tutto qui. Ora il cliente può liberamente creare, aggiornare ed eliminare tutti i gameserver ed i voiceserver che desidera in tutte le location ed in tutti i server che supporti. Ogni singolo minuto RevCloud controllerà automaticamente lo status di tutti i servizi e salverà i risultati. Alla fine di ogni giorno RevCloud condenserà i risultati di tutti questi check in un singolo record che conterrà la media dei consumi di slot, cpu, ram, banda, la percentuale del tempo durante il quale server è stato pubblico, per quanto in esecuzione e molto altro. In basso è riportato un esempio di risultato che il tuo cliente potrebbe visualizzare accedendo alla pagina di gestione dei propri servizi nell'area clienti.

 

revcloud-front-end.png

 

Da questa pagina i tuoi clienti possono sempre verificare quanto stanno spendendo per i loro servizi. Ovviamente puoi decidere di nascondere dalla loro vista alcune colonne mediante una semplice interfaccia nel back-end. Dal momento che tutte le pagine del front-end sono file .tpl, potrai facilmente personalizzare il loro aspetto grafico. Nell'esempio sopra riportato puoi vedere che il giorno 27/08/2013 il cliente stava eseguendo 2 gameserver il cui costo complessivo è stato di 1.1 euro (0.35 + 0.75). Supponiamo che il cliente avesse 50.00 euro di credito nel suo account. Ora ne avrebbe 48.9 (50.00 - 1.1) perchè RevCloud "succhia" automaticamente soldi dal suo credito.

 

Configurazione prezzi

Prima di cominciare è bene osservare gli screenshot:

Puoi stabilire un costo/slot per ogni servizio game e voice. Puoi anche decidere se applicare un sovrapprezzo ad i server pubblici. Probabilmente la funzione più interessante riguarda la gestione dei servizi "stopped". Un servizio stopped potrebbe essere ad esempio un gameserver Counter Strike che non è in esecuzione (non online) ma che comunque esiste in un server. A questo tipo di servizi puoi decidere di applicare un costo inferiore (in pieno stile coud), superiore o nullo. Come se non fosse abbastanza puoi anche decidere di applicare tariffe extra per servizi che utilizzano una quantità di cpu, ram e banda superiori al normale. Per renderti la vita più semplice è stato creato un "Indice di Computazione" che rende l'idea del "peso" del servizio unendo in un solo numero più aspetti (cpu, ram, banda).

 

Settings

Di seguito alcune immagini delle impostazioni (visuale parziale):

 

Altre funzionalità

  • C'è un'opzione in RevCloud che, quando abilitata, invia periodicamente informazioni statistiche sui tuoi servizi. Questi dati vengono raccolti per creare un database che ogni provider può utilizzare ad esempio per conoscere il consumo medio delle risorse di un dato servizio prima ancora di configurarlo oppure di conoscere il prezzo medio, massimo e minimo di mercato e chi sono i suoi concorrenti. Ci sarà anche una pagina come questa che i clienti potranno visitare per trovare facilmente un Provider.
  • Specializzazioni servizi. Supponiamo che un cliente venda prevalentemente servizi Call Of Duty 4 che gli costano 0.8 euro / al mese per slot. Può acquistare una "Specializzazione" in Call Of Duty 4 che ne abbatta il costo ad un valore più basso.
  • Opzione "Like a boss". Se un cliente non ha più credito nel suo account ed ha acquistato questa opzione, il sistema gli permetterà di andare in negativo con il credito evitando la sospensione dei suoi servizi. Ovviamente quando un certo limite (liberamente impostabile) viene raggiunto i servizi saranno comunque disabilitati. In altre parole il cliente ha diritto ad un minimo di tolleranza.
  • In sviluppo un sistema che permette di processare le richieste dei clienti (create, suspend, unsuspend, terminate) secondo una lista dove le richieste più vecchie hanno la precedenza su quelle più recenti. Grazie a questo se anche ci fossero migliaia di richieste su un singolo server, queste sarebbero comunque processate una alla volta. Un estensione di questo discorso è rappresentanto dall'opzione "Servizio prioritario". Il cliente che acquista questa opzione il cui pagamento può essere ricorrente o una tantum, avrà diritto a scavalcare la fila e vedere le sue richieste essere evase in tempo reale.
  • In sviluppo un sistema che, se il cliente decide di abilitarlo, si occupa di terminare automaticamente i servizi che non sono in esecuzione da un certo tempo. In questo modo evita di pagare per servizi creati e dimenticati

 

Note finali

Ho aperto questa discussione perchè vorrei ricevere suggerimenti e pareri su questo sistema soprattutto persone del settore e potenziali utilizzatori. Ho intenzione di continuare il suo sviluppo pertanto sono bene accetti i consigli.

Share this post


Link to post
Share on other sites

Un ottimo lavoro come sempre, complimenti. :)

 

La domanda che mi viene spontanea però è la seguente: ha senso tutto ciò per servizi che hanno un prezzo medio mensile davvero basso(un ts da 10 slots ormai è sui 2euro mensili), considerando anche le eventuali problematiche che possono derivare dal controllo di tutte le transazioni che andrai a registrare? Intendo proprio in whmcs, non paypal o altro.

 

Di sicuro comunque la cosa positiva è che questo modello è applicabile a diversi prodotti, non solo nel campo game e voice server, e può tornarti utile in futuro per altri progetti.

 

Un saluto! ;)

Share this post


Link to post
Share on other sites

la mia paura invece è dovuta alla scarsa "scalabilità"...

 

come ben sa chi lavora nel settore su una macchina anche bella grossa per certi giochi ci si possono mettere 5 o max 10account attivi in contemporanea... se l'utente paga ad ore vedo molto dura la cosa... non stiamo parlando di webhosting dove le richieste di risorse sono molto diverse...

 

discorso simile per teamspeak3 (e relativi costi di licenza che vanno comunque con precisione minima di 24h se non ricordo male... quindi 1ora è conteggiata comunque come 24h)

Share this post


Link to post
Share on other sites
la mia paura invece è dovuta alla scarsa "scalabilità"...

 

come ben sa chi lavora nel settore su una macchina anche bella grossa per certi giochi ci si possono mettere 5 o max 10account attivi in contemporanea... se l'utente paga ad ore vedo molto dura la cosa... non stiamo parlando di webhosting dove le richieste di risorse sono molto diverse...

Capisco il ragionamento che fai ed anzi lo voglio portare al limte. Prendi un classico gameserver CoD4 che solo per stare acceso consuma 300 mega di RAM. Un cliente potrebbe creare 10 di questi gameserver con 1 slot ciascuno. A te questi server peserebbero 3 GB di RAM ma riceveresti un misero pagamento per 10 slot con i quali non ci ripagheresti le spese. Questo problema, come anche quello che hai evidenziato tu, non si presenta poichè ci sono due diversi modelli di fatturazione:

 

 

  • Slot - Oltre al costo per slot di ogni servizio, puoi anche impostare per ognuno di essi un numero minimo di slot sotto il quale il cliente non può creare il servizio. Analogamente puoi anche impostare un limite massimo. Prendendo l'esempio di cui sopra potresti imporre per CoD4 un numero minimo di slot di 10 ed un massimo di 100. In questo modo il cliente può creare gamameserver di questo titolo solo a partire da 10 slot e fino ad un massimo di 100.
  • Consumi effettivi - Puoi fatturare i consumi hardware effettivi di RAM, CPU e banda. Sempre prendendo come riferimento lo stesso esempio, per quei 10 server da 1 slot riceveresti il pagamento per il consumo 3 GB di RAM, 7% di CPU e 20 GB di banda secondo il tuo listino prezzi CPU/RAM/Bandwidth oppure con un "Indice computazionale" che mettere in relazione tutti e tre gli elementi secondo criteri che francamente devo ancora decidere :zizi:

 

Ciò detto questi 2 diversi modelli di fatturazione non solo sono interscambiabili tra loro ma sono anche utilizzabili insieme. Puoi quindi scegliere se adottare un modello totalmente basato sul consumo degli slot piuttosto che uno basato solo sui consumi hardware o su entrambi. In quest'ultima modalità ibrida, puoi far si che il cliente paghi sempre per il consumo degli slot ma che laddove stesse utilizzando risorse hardware superiori alla norma, paghi anche il burst hardware. La soglia di questo burst si imposta liberamente in percentuale. Esplicito il tutto a parole. Il sistema ti indica per ogni servizio il consumo hardware medio ricavandolo sia dai tuoi stessi servizi/clienti che dalla rete globale di chi utilizza il modulo ed ha accettato di contribuire inviando report periodici sui propri consumi. Avresti una situazione del genere:

 

 

  • Call of Duty 4
    • Locale: 300MB RAM, 0.5% CPU, 1GB/mese
    • Globale: 298.91MB RAM, 0.449% CPU, 1.1GB/mese

     

 

Essendo in possesso di questi dati continuamente aggiornati, sarà facile indicare in 3 campi quali sono i valori che per te rientrano nell'uso normale/accettabile. Fatto questo comparirà una quarta opzione dove potrai indicare la percentuale di tolleranza. Impostando ad esempio il 20%, il sistema farà pagare al cliente anche i consumi hardware laddove questi siano superiori alla norma del 20% o più. C'è anche un'opzione che permette di impostare dinamicamente ed automaticamente i valori che rientrano nell'uso normale/accettabile il che è utilissimo se vuoi far pagare di più i servizi nei momenti di maggiore utilizzo (sera/notte) e meno in quelli a minore (mattina).

 

discorso simile per teamspeak3 (e relativi costi di licenza che vanno comunque con precisione minima di 24h se non ricordo male... quindi 1ora è conteggiata comunque come 24h)

 

Premesso che non avrei nessun problema ad aggiungere un'opzione che forzi il sistema a ragionare per un determinato servizio sulla base una certa ricorrenza temporale, al momento questo discorso lo sto volutamente lasciando da parte. Intendo infatti affrontarlo direttamente con qualcuno di Teamspeak quando avrò completato almeno una versione BETA presentabile. D'altronde di strappi alle regole ne han già fatti come ad esempio quel GSP che auto-espande/contrae il numero di slot dei server in base agli utenti connessi pagando quindi le licenze solo per gli slot realmente utilizzati.

 

La domanda che mi viene spontanea però è la seguente: ha senso tutto ciò per servizi che hanno un prezzo medio mensile davvero basso(un ts da 10 slots ormai è sui 2euro mensili), considerando anche le eventuali problematiche che possono derivare dal controllo di tutte le transazioni che andrai a registrare? Intendo proprio in whmcs, non paypal o altro.

 

Per quanto concerne le transazioni in realtà è tutto estremamente semplice. Quello che da te il cliente acquista sono solo delle ricariche di credito nell'account. Ogni giorno il sistema succhia dall'account del cliente il consumo effettuato registrando la transazione nello stesso "Manage Credits" di WHMCS. È quindi facile sia per te che per il cliente tenere sotto controllo i consumi come anche stornare in parte o in toto determinate transazioni.

Edited by revhosting

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×