In the previous chapters, we built a Scala and Play framework application. We used the most effective frameworks and tools around the Scala ecosystem, such as Play framework and Akka; and we used the Reactive and Functional Programming techniques using Futures and RxScala. Additionally, we created reports with Jasper and Chat with WebSockets. This is the final chapter, and we will learn how to deploy and scale our application.
In this chapter, we will cover the following topics:
- • Standalone deploy
- • Architecture principles
- • Reactive drivers and discoverability
- • Mid-Tier load-balancer, timeouts, Back pressure, and caching
- • Scaling up microservices with an Akka cluster
- • Scaling up the infrastructure with Docker and AWS cloud
Throughout this book, we used the Activator and SBT build and development tools. However, when we talk about production, we can't run the application with SBT or Activator; we need to do a standalone deploy.
What about standard Java Servlet containers, such as Tomcat? Tomcat is great; however, Play is greater. You won't get better performance by deploying your app on Tomcat. The standalone play uses Netty, which has superior network stack.
There are some small changes that we will need to make in order to deploy our application for Jasper reports. Don't worry; these changes are very simple and straightforward.