2
votes

I'm a Ruby developer, but I like Scala very much as well.

For Rails framework we have awesome tools that supports deployments like Capistrano automation tool and Puma/Unicorn servers. With simple cookbooks using Chef or Ansible I can easily setup my VPS and deploy Rails application there.

How does automatic deployment look like in Play framework? What is minimal required stack for developing and deploying Play applications? Are there any tools for automatic deployment? What are recommended application servers?

2

2 Answers

3
votes

All you need to run a Play app is a JVM. Play is container-less. So deploying your Play app in production is as simple as running a script that invokes a fat jar with all the other required jars in the classpath.

$play dist should generate a zip file that contains everything you need to run the app.

You can use Ansbile to automate. http://code.hootsuite.com/automating-our-scala-deploys-with-ansible-case-study/ http://www.ansible.com/press-release/ansibleworks-typesafe To deploy Play Framework apps in AWS (Amazon) ec2 using Ansible playbook

As well as Chef. https://github.com/gildegoma/chef-typesafe-stack

0
votes

If you are happy to run on AWS, Boxfuse comes with native Play 2 support.

You can now simply execute boxfuse run my-play-app-1.0.zip -env=prod and this will automatically:

  • create a minimal AMI tailor-made for your Play 2 app
  • create an elastic IP
  • create a security group with the correct permissions
  • launch an instance of your app

All future updates are performed as blue/green deployments with zero downtime.

This also works with Elastic Load Balancers and Auto-Scaling Groups and the Boxfuse free tier is designed to fit the AWS free tier.

You can read more about it here: https://boxfuse.com/blog/playframework-aws

Disclaimer: I'm the founder and CEO of Boxfuse