Beanstalk (or more officially known as AWS Elastic Beanstalk) is quite possibly the coolest thing since sliced bread, ha! For developers like me who know just enough about Amazon Web Services hosting to be dangerous but not enough (at least right now) to run a full-scale production site, it is perfect! It is especially cool since I’ve been doing all my latest development with Groovy and Grails which can be deployed to the first release of Beanstalk which utilizes Tomcat. There is talk of Beanstalk supporting Rails in the near future too though.
So, why is Beanstalk so cool? Well, first off, Beanstalk is free, ha! Yes, that’s right, everything I’m about to describe is free of charge! You only pay for the underlying services on AWS (EC2, S3, RDS, etc.) which you would pay for anyway and not a single penny for Beanstalk. All my Grails applications will now have capacity provisioning, load balancing, auto-scaling and application health monitoring built right in for every single deployment! Second, it has a great user-interface and is incredibly easy to use. I didn’t even read any of the documentation. I just enabled it for my AWS account, deployed an application and used AWS Route 53 to direct my URL to the load-balancer! And third, it provides the ability to fine-tune apps after deployment. I can change the number of max/min EC2 instances and change the instance types, adjust the heap size, change monitoring settings (intervals and even what the health check is) and even add custom JVM command line options for all my applications right from the Beanstalk user-interface.
So, what does this mean for the industry? IMHO this essentially means the end of SpringSource’s CloudFoundry. There’s simply no reason for a developer like me to use a third-party tool to manage AWS environments for Java when AWS has the functionality built-in now. This also really sets the bar pretty high for other Java PaaS models like VMforce and Google App Engine. How can others even compete with this model given the amount of functionality built-in to AWS that Beanstalk users can utilize for no additional cost for the PaaS? I also can’t wait to see what the Rails version looks like too (I read that they were working with Engine Yard). With Salesforce.com buying Heroku and RedHat buying Makara, the PaaS models are really starting to become mainstream and the deployment model of choice for me! There is simply no reason for me to manually configure the infrastructure anymore for my web applications. I’ll just focus on coding!