ABSTRACT: Java Application Deployment
This presentation will take developers through how do execute a parallel deployment for three common web application architectures. A basic single server environment, a multi-server environment with a reverse proxy load balancer and a scalable environment built on AWS using Autoscaling groups.
I’ll start by discussing common deployment expectations such as zero downtime and fully automated and how a parallel deployment approach helps address these needs. Then I’ll walk through the different environments and discuss how we go about achieving those goals in practice.
For the first environment, the single server, I’ll walk through the process of starting up a second container and re-routing traffic to that new container. For the multi-server environment, I’ll walk through how we can tear down and add in instances gracefully. Finally for the AWS environment, I’ll review and walk through the different parts of their architecture which can be leveraged to built a dynamically scaling, high availability environment that can receive application updates easily. For those unfamiliar with AWS this will be good primer to help them understand some of the capabilities of the AWS platform.
For each of the architectures I’ll call attention to some of the challenges and areas that developers need to specifically account for, such as session management or static asset delivery. While the range of possibilities for deployments are varying and growing, from tools like Docker to built-in parallel deployment support in containers (Tomcat 7+), to PAAS solutions like AWS Beanstalk and Heroku, this discussion will give developers a solid sense of what to consider when designing their own application delivery system.
SPEAKER BIO: Frederic Jambukeswaran
Fred is a developer and technology leader with over 15 years of experience building web applications, predominately in Java. He has previously worked as CTO at Pronto (IAC company) and VP, Technology at EXPO communications. He got his start building Java applications with EJBs, later becoming a big fan of Hibernate and Spring Framework. His experience in application deployments really grew over the last few years where he often took on build and release functions for his teams using tools such as Maven, Jenkins, Composer, Phing and Grunt.
MEETING SLIDES: Java Application Delivery slides (PPT)