Visualizzazione post con etichetta CRM. Mostra tutti i post
Visualizzazione post con etichetta CRM. Mostra tutti i post

sabato 10 novembre 2012

Uhuru AppCloud: Installare FatFreeCRM come Apps - Parte 3

 

Precedenti Post:

1. PAAS: Platform As A Service  - e il middleware diventa un servizio
2. Uhuru AppCloud: Installare FatFreeCRM come Apps - Parte 1
3. Uhuru AppCloud: Installare FatFreeCRM come Apps - Parte 2

Questo è l'ultimo passaggio di questo articolo sui sistemi PAAS.
Differentemente da quanto accade quando si utilizzano servizi di VPS o Server dedicati, non ci siamo soffermati sulla intallazione del framework, del database o sui particolari settaggi da utilizzare per la produzione.

Partendoda un ambiente di sviluppo personale e quanto mai diverso dal sistema di produzione finale, ci siamo esclusivamente preoccupati di identificare quali erano i SERVIZI che dovevamo utilizzare affinche la nostra applicazione potesse funzionare. E in questo caso abbiamo identificato un servizio di STORAGE/DATABASE ed un servizio di SERVER APPLICATIVO.

La differenza è sostanziale, non solo nei termini, ma nelle logiche concui le applicazioni vengono pensate, realizzate e deployate.

Veniamo agli utilimi passi....

Clonare FatFreeCRM in locale

Ora effettuiamo il clone del repository di fatFreeCRM
> git clone https://github.com/fatfreecrm/fat_free_crm.git

Modifichiamo quindi il file “gemfile” effettuando le seguneti modifiche:
  • lasciare solo la gemma relativa a MySQL
  • eliminare i gruppi :development, :test, :heroku

Modifichiamo anche il file config/database.mysql.yml effettuandone una copia rinominata in config/database.yml ed impostandolo come l’esempio:
> #------------------------------------------------------------------------------
> development: &development
> adapter: mysql2
> encoding: utf8
> database: d9818ba918245401c85e2e6efd4ceba85
> pool: 5
> username: uecvMF7JNEM1u
> password: p1l4sYafcOFVq
> socket: /var/run/mysqld/mysqld.sock
> host: 127.0.0.1
> port: 10000
>
> # Warning: The database defined as "test" will be erased and
> # re-generated from your development database when you run "rake".
> # Do not set this db to the same as development or production.
> test:
> <<: *development
> database: not-set
>
> production:
> <<: *development
> database: d9818ba918245401c85e2e6efd4ceba85

modifichiamo il file fat_free_crm.gemspec commentando la riga relativa alla specifica dei file:
#gem.files = `git ls-files`.split("\n")

possiamo quindi procedere con l’installazione delle gemme e la preparazione degli asset (l’operazione potrebbe durare alcuni minuti):

> bundle install
> bundle package
e procedere alla generazione degli asset (l’operazione potrebbe durare alcuni minuti):
> rake assets:precompile

quindi modifichiamo il file "config/environments/production.rb" impostando:
-config.serve_static_assets = true

Effettuare la pubblicazione sul cloud

Posizionarsi sulla cartella dell’applicazione (nel nostro caso c:\sites\fat_free_crm) ed eseguire il comando
> vmcu push --runtime ruby19

ci verranno richiesti una serie di parametri (in grassetto le risposte) :
> Would you like to deploy from the current directory? [Yn]: Y
> Application Name: FatFreeCrm
> Detected a Rails Application, is this correct? [Yn]: Y
> Application Deployed URL [FatFreeCrm.uhurucloud.com]: fatfree01.uhurucloud.com
> Memory reservation (128M, 256M, 512M, 1G, 2G) [256M]: 256M
> How many instances? [1]: 1
> Bind existing services to 'FatFreeCrm'? [yN]: y
> 1: ff-development
> Which one?: 1
> Create services to bind to 'FatFreeCrm'? [yN]: N
> Would you like to save this configuration? [yN]: y
> Manifest written to manifest.yml.
> ...

la procedura potrebbe durare alcuni minuti, ed in funzione del carico della rete e della connessione ad internet andare in timeout.
> Creating Application: OK
> Binding Service [ff-development]: OK
> Uploading Application:
> Checking for available resources: OK
> Processing resources: OK
> Packing application: OK
> Uploading (3M): OK
> HTTP exception: RestClient::RequestTimeout:Request Timeout
In tal caso è necessario utilizzare il comando vmcu update (le impostazioni sono state già salvate)
> vmcu update
>
> Updating application 'FatFreeCrm'...
> Uploading Application:
> Checking for available resources: OK
> Processing resources: OK
> Packing application: OK
> Uploading (2M): OK
> Push Status: OK
L’ultima operazione è l’esecuzione delle migrazioni necessarie alla creazione delle tabelle del db ed al popolamento dei dati di base. Per questa operazione si utilizzerà il comando rake in locale sfruttando il tunnel che è stato avviato all’inizio
> rake ffcrm:setup USERNAME=admin PASSWORD=password EMAIL=admin@example.com

una volta completato il task di rake è possibile avviare l’applicazione
> vmcu start FatFreeCrm

l’operazione potrebbe andare in timeout. È possibile verificare lo stato dei servizi con il comando
> vmcu apps
> PS C:\Sites\fat_free_crm> vmcu apps
>
> +-------------+----+---------+--------------------------------+----------------+
> | Application | # | Health | URLS | Services |
> +-------------+----+---------+--------------------------------+----------------+
> | FatFreeCrm | 1 | RUNNING | fatfree01.uhurucloud.com | ff-development |
> | caldecott | 1 | RUNNING | caldecott-96490.uhurucloud.com | ff-development |
> +-------------+----+---------+--------------------------------+----------------+

Complimenti.. avete appena pubblicato la vostra istanza di FatFreeCRM in cloud!













martedì 6 novembre 2012

Uhuru AppCloud: Installare FatFreeCRM come Apps - Parte 2

 Precedenti Post:


Come detto nel precedente post, la pubblicazione sulla nostra Uhuru- nuvola richiede alcuni accorgimenti, accorgimenti che per essere applicati richiedono necessariamente un ambiente di sviluppo funzionante e configurato.
Nel nostro esercizio però partiremo da zero, anche per verificare le possibilità offerte dai servizi cloud di essere utilizzate anche solo come file server o db server.
Quindi ci appresteremo a:
-          Creare un db in remoto da utilizzare per la configurazione “production” di fatfree
-          Apportare tutte le modifiche a FatFree per utilizzare il db remoto e per prepararlo alla pubblicazione
Per proseguire è necessario che
-          Ruby, Git e Rails siano correttamente installati e configurati
-          Mysql 5 sia installato e funzionante sul client (è necessario per poter compilare la gemma mysql2)

Per questo post ho utilizzato RailsInstaller e l’archivio mysql-5.5.28-win32.zip
Colleghiamoci alla nostra nuvola (vedi post precedente) e verifichiamo i servizi attivi:
vmcu service


otterremo una risposta come questa:

C:\Users\Luca>vmcu services

>         ============== System Services ==============
>          
>         +------------+---------+---------------------------------------+
>         | Service    | Version | Description                           |
>         +------------+---------+---------------------------------------+
>         | mongodb    | 2.0     | MongoDB NoSQL store                   |
>         | mssql      | 2008    | MS SQL Server database service        |
>         | mysql      | 5.1     | MySQL database service                |
>         | postgresql | 9.0     | PostgreSQL database service (vFabric) |
>         | rabbitmq   | 2.4     | RabbitMQ message queue                |
>         | redis      | 2.2     | Redis key-value store service         |
>         | uhurufs    | 0.9     | Uhuru persistent filesystem service   |
>         +------------+---------+---------------------------------------+
>          
>         =========== Provisioned Services ============



Creiamo il nostro database:

>         Vmcu create-service mysql ff-development



Creiamo un tunnel così da poter utilizzare il database remoto *** QUESTA SHELL DOVRA’ RIMANERE SEMPRE APERTA ***:

>         Vmcu tunnel 
>          
>         1: ff-development
>         Which service to tunnel to?: 1
>         Deploying tunnel application 'caldecott'.
>         Uploading Application:
>           Checking for available resources: OK
>           Packing application: OK
>           Uploading (1K): OK
>         Push Status: OK
>         Binding Service [ff-development]: OK
>          
>         Staging Application 'caldecott': OK
>          
>         Starting Application 'caldecott': OK
>         Getting tunnel connection info: OK
>          
>         Service connection info:
>           username : uecvMF7JNEM1u
>           password : p1l4sYafcOFVq
>           name     : d9818ba918245401c85e2e6efd4ceba85
>          
>         Starting tunnel to ff-development on port 10000.
>         1: none
>         2: mysql
>         3: mysqldump
>         Which client would you like to start?: 1
>         Open another shell to run command-line clients or
>         use a UI tool to connect using the displayed information.
>         Press Ctrl-C to exit...


Effettuiamo il download di mysql-5.5.28-win32.zip e scompattiamo l’archivio in c:\mysql5. Quindi installiamo la gemma mysql2 versione 0.3.1

>         gem install --no-rdoc --no-ri mysql2 -v 0.3.10 -- with-mysql-dir=c:\mysql5

quindi copiamo il file libmysql.dll nella cartella bin del nostro interprete ruby. Ad esempio

>         copy C:\mysql5\lib\libmysql.dll C:\RailsInstaller\Ruby1.9.3\bin

Verificare con un client MySQL il collegamento al servizio. ad esempio con SquirrerSQL la stringa sarà:

jdbc:mysql://localhost:10000/ d9818ba918245401c85e2e6efd4ceba85


Uhuru AppCloud: Installare FatFreeCRM come Apps - Parte 1


Uhuru AppCloud è un nuovo servizio fornito da Uhuru Software (vedi precedente post). Qui sono descritti i passaggi per installare FatFreeCRM - un CRM OpenSource interamente scritto in Ruby on Rails - come "App" all'interno della nuvola messa a disposizione con l'account gratuito.
Nell'effettuare il deploy di una applicazione Rails sui server di Uhuru è necessario tenere presente che alcune impostazioni e caratteristiche degli ambienti di sviluppo non sono compatibili (al momento) con le caratteristiche dei loro server.
Ad esempio, non è possibile utilizzare gemme come "therubyracer" e quindi non è possibile utilizzare "direttamente" less (In realtà possiamo farlo, ma con l'accortezza di precompilare in locale gli asset prima di inviarli al server). in particolare le limitazioni al momento sono relative a:
  • non è possibile installare gemme che hanno dipendenze su GIT 
  • non è possibile installare gemme che hanno un path specifico (ex. :path=>some/path)
  • non è possibile utilizzare gemme specifiche per alcune paittaforme
  • sostituire la gemma 'jquery-rails' con 'cloudfoundry-jquery-rails'
  • occorre configurare gli asset (per la produzione) come statici => config.serve_static_assets = true


In questi articoli vedremo quindi come impostare un ambiente di sviluppo, predisporre l'applicazione fatFreeCRM e quindi utilizzare i server di Uhuru per ospitare gli ambienti di produzione.
Il processo di pubblicazione prevedrà di installare
- sottoscrizione del servizio ed installazione del componente di comunicazione con il cloud vmcu
- setup del database remoto di produzione
- installazione di fatFreeCrm in locale
- setup dei database locali di sviluppo e test
- pubblicazione sul server di produzione
Nota bene
Partiamo dal presupposto di avere un ambiente Rails installato e funzionante. per redarre questa guida è stato utilizzato un sistema Windows 7  con Ruby - Rails - Git installato tramite RailsInstaller.

Step 1 - sottoscrizione del servizio ed installazione del componente di comunicazione con il cloud vmcu

Collegatevi alla pagina http://www.uhurucloud.com/ ed utilizzare il link “Sign Up”. Verrò richiesto un account Google, Microsoft o Facebook per proseguire con l’attivazione del servizio
image
una volta registrati si accede direttamente alla dashboard di gestione del servizio:
image

Ora, sul nostro client, installiamo il client vmcu (vedi qui per ulteriori informazioni)
$ gem update --system 
  ...
$ gem install vmcu 
  ...
$ gem install caldecott
  ...

una volta che la gemma vmcu è installata occorre collegarsi al server:
$ vmcu target services.uhurucloud.com
e quindi
$ vmcu login
Qui ci verrà richiesto di immettere un token: per ottenerlo è necessario cliccare sul codice numerico presente in alto a destra della dashboard del nostro cloud:
verrà generato un token alfanumerico da utilizzare per il collegamento:

occorre quindi selezionare il cloud-team su cui si vuole lavorare con il comando
$ vmcu cloud-team
ci verrà proposto l’elenco dei team (al primo accesso sarà uno solo) con cui vogliamo lavorare
image
Complimenti! la vostra nuvola è Online!