• infrastructure as a service(IAAS): AWS/linode/Rackspace
  • platform as a service (PAAS): Google App Engine/ Heroku(Ruby)/ Joyent (created node.js)/ Azure(.Net)

iaas will give you total flexibility on the architecture, language and technical components you use for your app, but you still have to assemble and manage your infrastructure yourself. hardware failures and network infrastructure are taken care of the vendor.

With paas, the platform puts constraints on your code (specific languages supported, time limit to execute a request, datastore type), but if you can respect these constraints the benefits are huge: you just write your code, push it to the platform and don't have to manage anything, It is cheaper, secure and much much easier to maintain.

AWS offer a slew of services that are very interesting: Relational, DynamoDB (NOSQL), elastic cache, DNS, message queues, that provide the best of both worlds: complete app control but delegate service infrastructure to Amazon.

Lock-In: App Engine is more closely tied to the platform, and you cannot change your platform without basically rewriting the entire system.

if scaling isn't a big concern, may add complexity.

GAE limitations:

  • request get terminated if not served in some seconds.
  • Diluted support for frameworks

AWS limitations:

  • compatibility problems
  • AWS management console

https://www.quora.com/search?q=google+app+engine+or+aws

AWS EC2

ssh -v -i ~/.ssh/taz.pem ec2-user@leo

da winscp user:ec2-user e protocollo SFTP, occorre convertire la chiave da SSH a putty con puttygen(nei repo ubuntu)

Google Storage

gsutil cp ./test.zip gs://gemini/test.zip

per interagire con le applications: dopo la prima connessione le credenziali vengono salvate

google docs upload test.zip
google picasa create --title "My album" ~/Photos/vacation/*.jpg
google calendar add "Lunch with Jason tomorrow at noon"
google docs edit --title "Shopping list" --editor vim

Google Cloud Platform

https://cloud.google.com/launcher/explore?q=lamp https://cloud.google.com/appengine/#pricing https://cloud.google.com/appengine/docs/php/gettingstarted/introduction https://cloud.google.com/appengine/docs/php/


Notice: Undefined variable: browserName in /var/www/taziomirandola.it/lib/Visitors.php on line 86

Notice: Undefined variable: browserName in /var/www/taziomirandola.it/lib/Visitors.php on line 96

Deprecated: strripos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in /var/www/taziomirandola.it/lib/Visitors.php on line 96

Notice: Undefined index: HTTP_ACCEPT_LANGUAGE in /var/www/taziomirandola.it/lib/Visitors.php on line 39

Fatal error: Uncaught TypeError: Argument 1 passed to safe_text() must be of the type string, null given, called in /var/www/taziomirandola.it/lib/Visitors.php on line 39 and defined in /var/www/taziomirandola.it/lib/Visitors.php:162 Stack trace: #0 /var/www/taziomirandola.it/lib/Visitors.php(39): safe_text() #1 /var/www/taziomirandola.it/lib/Visitors.php(124): Visitors::getData() #2 [internal function]: Visitors::log() #3 {main} thrown in /var/www/taziomirandola.it/lib/Visitors.php on line 162