AWS Open Source Blog

Microservices on AWS Compute Using Containers and Serverless

building blocks for containerized microservices

Deploying microservices-based applications can be complex. First, it requires setting up your basic compute, storage, and networking capabilities. You’re also going to need some simple developer tools, application integration, logging, distributed tracing, and monitoring.

AWS offers a wide variety of choices in each of these areas. In compute, you can create your own custom stack using your choice of EC2 instances. This gives you extreme flexibility for designing your application stack but… “with great power comes great responsibility” – if you do this, you will also need to manage all the various layers of your stack. For example, for a Java-based microservices application, you will need to manage operating system upgrades, JDK, application libraries, and of course the upstack components. There are other ways to manage application packaging, but this is where containers and serverless applications really shine: the entire application is packaged as a single deployment bundle, with all the dependencies included.

Once the packaging problem is solved, you need to think about local dev/test of your application. The seamless integration of a Docker image or a serverless distribution bundle (that you create) into your application development lifecycle reduces the barrier to the adoption of microservices. Then you need to address the other developer tooling you need…

All of this may sound daunting, but we’re here to help! Tiffany Jernigan (@tiffanyfayj) and I recently gave a three-hour tutorial on this topic at Devoxx France. The video is now available:

This tutorial is open sourced; the repo is here: github.com/aws-samples/aws-microservices-deploy-options. Feel free to file issues on what you’d like to see more of in this project. And of course, we’d love to see Pull Requests!

Arun Gupta

Arun Gupta

Arun Gupta is a former a Principal Open Source Technologist at Amazon Web Services. He has built and led developer communities for 12+ years at Sun, Oracle, Red Hat, and Couchbase. He has extensive speaking experience in more than 40 countries on myriad topics and is a JavaOne Rock Star for four years in a row. Gupta also founded the Devoxx4Kids chapter in the US and continues to promote technology education among children. A prolific blogger, author of several books, an avid runner, a globe trotter, a Docker Captain, a Java Champion, a JUG leader, NetBeans Dream Team member, he is easily accessible at @arungupta.