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
- can use deployment blueprint to deploy single app to different configurations
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
- when VMs are deployed they may or may 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