Tuesday, October 20, 2009

Session Notes - SpringOne2GX Day 2 Keynote

Adrian Colyer

  • a year ago at SpringOne was about when the acquisition of G2One was announced
  • Sky in the UK uses Groovy and Grails
    • so much simpler to write and run code
    • with groovy/grails we can create a new feature in a week instead of a month
  • Hyperic acquisition
    • better management tools and metrics
  • CloudFoundry
    • infrastructure as a service--bit too broad
    • focus on deployment of Java apps--"Enterprise Java Cloud"
  • VMWare acquisition of SpringSource

CloudFoundry Demo - Chris Richardson

  • demo of deploying a Java app on Amazon EC2 using CloudFoundry
  • upload apps to CloudFoundry, then can deploy to Amazon from there
    • can also upload sql scripts if necessary to generate/populate database
    • can also upload static resources if you want
    • uploaded war stored on Amazon S3
  • after this, deploy to EC2
    • options for splitting servlet container and db server on different instances
    • further options for specifying instance configurations on Amazon
  • CloudFoundry manages your Amazon instances
    • responds to failure
    • scales up/down
  • CloudFoundry also offers a lot of management actions, application monitoring, etc.
  • notion of "deployment blueprint"
    • can use deployment blueprint to deploy single app to different configurations
      • e.g. simple single instance deployment vs. apache fronting multiple load-balanced tomcat instances and multiple database instances all controlled by a management server

SpringSource Tool Suite

  • spring app tools
  • enterprise osgi development
  • flexible deployment options (cloudfoundry, vmware instances, vmware in data center)
  • STS Demo
    • CloudFoundry appears as a server type in the servers view in STS
    • can drag app to CloudFoundry to deploy
    • STS tools optimize WAR files by stripping out standard JAR files which are reconstituted on the other end

Cloud Types

  • CloudFoundry is the public cloud--runs on Amazon EC2
  • Private cloud--exists in the organization's data center
    • like the model, like the flexibility, but don't want to run on the public cloud
  • Personal cloud (running on a laptop)
  • mix and match types of clouds based on needs
  • public vs. private--currently much more interest in private cloud in the marketplace

Virtualization in the data center?

  • VMWare solutions
  • from infrastructure silos to infrastructure platform to infrastructure service
  • in many cases there is a direct binding between the application and the infrastructure that supports it
    • infrastructure becomes an anchor holding that application in place
  • virtualization is leading towards infrastructure being a platform onto which applications are deployed
    • specific application stacks are virtualized, and apps are deployed to this environment
  • currently virtualization is of more interest to the operations people
    • developers ask for a server on which they run an app, but they don't know/care what's going on at that level
  • new model is to expose the infrastructure to developers as a service
  • vCloud -- internal, external, federated
    • based on vSphere technology
    • mix and match private/public clouds
    • same interface across multiple environments
  • CloudFoundry works with vCloud in addition to Amazon
    • adapters used to support different cloud environments

How does this add value to my enterprise Java apps?

  • knowledge of application blueprint, deployment blueprint, and infrastructure blueprint
  • easy management of things like firewalling across multiple VM instances
  • intelligent provisioning
    • when VMs are deployed they may or may not be on the same physical server
      • if this does matter, can declare an affinity between multiple VMs, or can specify that the instances should NOT be on the same physical server
  • optimized runtime: vMotion
    • can press a button to move VMs from one physical server to another with no interruption to the application
    • vmware platform separates out computing, memory, and storage
      • can move each of these independently without any interruption in service
  • vmware drs -- distributed resource scheduling
    • can move VMs around dynamically based on load
    • heavily loaded apps can take unused capacity away from lightly loaded apps as needed
  • optimized runtime -- vmware ft
    • single identical VMs running in lockstep on separate hosts
    • zero downtime, zero data loss failover for all VMs in case of hardware failure
    • no complex clustering or specialized hardware required
    • single common mechanism for all apps and OSes
    • all packets hitting first VM are replayed on the second VM behind the scenes
  • end-to-end management
    • hyperic hq can monitor all the vmware deployments from the infrastructure level down into the code itself

But do apps perform well on vSphere?

  • don't judge performance based on running vms on your laptop
  • on the web tier, vmware has record performance
    • served more requests on a vm than on a physical box
    • 143,000 http ops/sec on a physical box
      • equates to 3 billion http requests a day, which is 3X eBay's daily web traffic
  • appserver: near native performance
    • 95%+ of native on Specxpu and Specjbb
    • 95%+ native on specjvm
  • database performance
    • well-known oltp workload for testing
    • < 15% overhead
    • nearly 9000 database transactions per second
      • 5X number of transactions handled by visa for payment processing
    • near-perfect scalability from 1 to 8 cpus

No comments: