Showing posts with label cloud computing. Show all posts
Showing posts with label cloud computing. Show all posts

2011/11/15

Devoxx11: Real-world deep-dive into Infinispan - the open source data grid platform


Sanne Grinovero, Pete Muir and Mircea Markus
Infinispan details
  • developed & provided by JBoss
  • Open Source license
  • distributed, in-memory data structure
  • High Available: configuration options depending on your safety / performance considerations
    • Total replication
    • Partial replication ("distribution mode")
  • Elastic:
    • easy to scale up / down
    • deal with node stops / crashes
    • accept additional nodes
    • managed through JGroups
Capabilities:
  • Transactions
  • Map / Reduce
  • Query
  • JMX access
Two access modes to inifinispan:
  • embedded mode: in the JVM
  • client / server mode: different protocols supported:
    • REST
    • memcached
    • hotrod
Possible setups:
  • local cache: Simple Map-like interface, with advanced cache-features (eviction, etc.)
  • cluster cache: all caches are kept in sync between JVM's, the developer is responsible for accessing the persistence layer (DB)
  • grid cache: the cache itself handles the persisting of the data to the DB.
JGroups
  • reliable cluster communication
  • developed by JBoss, and used by Infinispan
  • Node / cluster config (incl. auto-discover setup)
  • focus on performance: e.g. UDP, but with reliability handled by JGroups
  • support for reliable multicast messages

2010/01/27

Fixing Ubuntu One

Ubuntu One is Ubuntu's first step into Cloud Computing. Like dropbox, it provides automatic file-syncing of a dedicated "ubuntu one" folder over the internet between several computers. Both solutions are running on Amazon EC2 virtual servers and both solution have a free starting plan that provides 2 GB of synced storage. The magic syncing and free 2GB provides a convenient alternative to USB sticks for exchanging documents.

As an Ubuntu 9.10 user, I played a bit with ubuntu one, but I had problems with the syncing on one computer. If you have trouble with ubuntu one, you can experiment with the command line tools. Some useful commands:
  • install command line tools:
    $ sudo apt-get install ubuntuone-client-tools
  • $ u1sync --authorize
  • $ u1sync --init ~/Ubuntu\ One
  • $ u1sync --diff ~/Ubuntu\ One
At first, I had to uncheck the "limit bandwidth" in the ubuntu one config: ~/.config/ubuntuone
[bandwidth_throttling]
read_limit = -1
write_limit = -1
on = False
This didn't help much, however. These are the relevant ubuntu one directories:
  • python sources:
    /usr/lib/ubuntuone-client/ubuntuone-syncdaemoncd
    /usr/share/pyshared/ubuntuone/*
  • data dir: ~/.local/share/ubuntuone/syncdaemon
  • shares dir: ~/.local/share/ubuntuone/shares
  • logging ~/.cache/ubuntuone/log
As I couldn't find any relevant errors and get Ubuntu one continue its syncing, I finally re-initialized Ubuntu One:
  • I killed all ubuntu one processes:
    $ pkill ubuntuone
  • I removed all ubuntu one configuration files:
    $ rm -rf ~/.*/ubuntuone
    $ rm -rf ~/.*/*/ubuntuone
After logging out / logging back in, ubuntu one just worked fine. I had to remove the conflict files, but apart from that, the syncing is now OK.

As an additional service, ubuntu one also provides excellent syncing for Tomboy and for Evolution. Simply follow the steps in https://wiki.ubuntu.com/UbuntuOne/Tutorials/Notes.

2009/11/18

Devoxx 2009: Architecting Robust Applications for Amazon EC2

18/11/2009, Chris Richardson, SpringSource (VMware) www.cloudtools.org

Amazon EC2 cloud computing solution:
  • choose your virtual machine, with machine images of standard OS's
  • cloud services
    • SQS: Simple Queue Services
    • SimpleDB: alternative to relational DB
    • S3: storage
    • EC2 firewall: security groups
    • Elastic Block Storage:
      • replicated, mounted as device
      • snapshots → backup
    • Elastic Relational DB Service:
      • MySQL 5.2
      • maintenance window: 4hour/week
      • backup window
  • standard software: simply install (with yum or apt) your packages
  • console
  • local storage:
    • plenty (160GB → 1690 GB)
    • ephemeral
    • slow down on first access
    • → Elastic Block Service
  • easy upgrades:
    • clone your production environment
    • upgrade the clone
    • test the clone
    • if OK: put the clone in production
    • remove the old clone
  • regions:
    • US
    • EU
    • Asia
    • sub-zones:
      • “availability zones” that are isolated from each other.
      • better availability
      • more expensive
issues:
  • security:
    • not PCI-compliant
    • discomfort of putting your core data on the cloud
    • where is your data really?
    • but:
      • Amazon experience
      • unlimited logging
      • standard best practices for security
      • isolated instances
      • put servers in different security groups → Amazon EC2 firewall
      • encrypt your data and backups
  • cost:
    • expensive for large servers
    • bandwidth
    • but: no extra cost of cooling, power etc.
  • machines:
    • no very small, very big machines
    • maintenance windows
    • load-balancing:
      • ipbased: no support for sessions
      • dns (cname)
  • is it reliable?
    • is internal IT better?
    • Amazon expertise
    • easy to launch a new instance within a few minutes
future:
  • Platform as a Service:
    • complete stack
    • simpler scaling, without being involved into the technical details
    • Google Application Engine
    • Cloud Foundry:
      • Spring & Grails