Visualizzazione post con etichetta Cloud. Mostra tutti i post
Visualizzazione post con etichetta Cloud. 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


domenica 28 ottobre 2012

Infografica: l'evoluzione degli smartphone

Leggendo questo post su ReadWrite mi sono imbattuto in questa infografica sull'evoluzione degli smartphone.

Mi ha fatto riflettere sul fatto che parliamo di oggetti che 30 anni fa non esistevano, ad ulteriore riprova di quanto sia difficile se non impossibile ragionare su investimenti a lunga scadenza in ambito informatico: probabilmente le tecnologie che oggi sono all'avanguardia non lo saranno più tra 3/4 anni, e saranno completamente sostituite tra 10 anni, e questo vuol dire che chi investe oggi deve necessariamente fare i conti con un rientro break-even point di 2/3 anni al massimo.

Mi ha fatto sorridere ricordare dei telefoni "waterproff" della ericsoon (qualcuno la ricorda più?)

Mi ha stupito  che la Android Inc sia stata fondata nel 2003 ... ed acquistata nel 205 da Google: alla fine anche loro hanno impiegato non meno di 7 anni ad emergere

Non sono proprio d'accordo con la conclusione (a meno che non si contino anche i sensori attivi): si sta affermando il "device unico" e alla fine molti dei dispositivi oggi esistenti verranno sostituiti o rimpiazzati da device sempre più intelligenti e sempre più connessi: il  paradigma client - server , applicato al binomio individuo - cloud sfruttando la capacità delle connessioni 3G e 4G, potrebbe essere una soluzione stabile ed a lungo termine.