We use AWS at work and I’ve been learning more and more about it. AWS offers so many services it’s even difficult to remember all of them. It’s quite impressive how many things a developer could build upon in order to deliver a scalable solution. The phrase “standing on the shoulders of giants” is quite fitting.
Last week I organized a hacking session for my team at work. We ordered pizzas and we stayed a couple of hours extra to have a look at Docker. For some people this was completely new, for some others not as much. The feedback however was positive overall.
Here’s what we covered initially:
- Docker introduction and some concepts. What is Docker? What is a Docker image? What is a Docker container?
- Hands on (after all this is a hacking session): Install Docker on our laptops and run the hello world (some folks had Windows 7 laptops so they installed Docker Toolbox instead).
- Introduction to Dockerfile. We went over the instructions. We discussed ports, volumes, environment variables and base images.
- Introduction to Docker Store (formerly Docker Hub). Discussed certified images, popular images, etc.
From there, we created a simple Spring Boot application and dockerized it (following this guide from Spring):
- First, we created a hello world Spring Boot web application. To some people this was also new, so we stayed on this point for a bit longer.
- We created a Docker image for the app using Docker’s CLI.
- We created a Docker image for the app using the Spotify Maven plugin.
- Finally, we published the custom Docker image to AWS ECR.
- Just when we ran out of time, we briefly took a glance at docker-compose as well.
In my opinion, the success of a hacking session depends on the participation of the joiners (and that’s why our session turned out quite nice). This is not like a meetup where you go and hear someone speaking. In a hacking session, you have to join with a hands on experimenting mentality. You type, you search, you figure it out, you learn, you have fun!
(The photo is from the 1995 movie Hackers, but you already knew that)
So, in the previous post we created a fancy dashboard using the smashing framework. Let’s see how we can deploy our dashboard to AWS Elastic Beanstalk using Docker.
In this post we’ll create a small Java application, run it inside a Docker container, and use IntelliJ IDEA to debug. The source code is available here. This is a rather large post, so take your time.
Using Kafka on your local development machine adds another level of complexity. You need to manage two extra services, Apache ZooKeeper and Apache Kafka. In a previous post, I mentioned the possibility of creating a Windows service wrapper for Kafka, so that managing is a bit easier. In this post, we’ll have a look at Docker and how we can use it to solve the same problem in a different way. I am new to Docker, so this is a very basic post, more like an introduction to Docker. Continue reading “Kafka with Docker: A Docker introduction”