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.
In this post we’ll see how to create a .NET Core solution with two projects with using nothing but the command line. Once that is setup, we’ll do a bit of TDD using Visual Studio Code.
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.
An information dashboard is a way to visualize and share information within a team about things that are important. You can setup a big monitor showing live updates about build statuses, open jira issues, a sprint burndown graph, the health of your applications on production, and so on. Having this information visible is a way to keep it on the back of your head (out of sight, out of mind). It also shows to people outside your team what matters to you.
The term microservice has been getting a lot of hype and attention. I have to admit that I fail to understand what’s the big deal about it. The best practices about microservices are similar to the ones we should apply to everyday software design. Avoid tight coupling. Single responsibility principle. Keeping things simple. Even those principles go back to the old Unix mantra of doing one job and doing it well (and that’s from 1978). And even that could in turn be labelled just “common sense”.