I have just completed the CKA (Certified Kubernetes Administrator) exam. The exam is vastly different from other certifications I have. I mean, this in a positive way. The exam is 100% hands-on, a quality I have missed in many other certifications. Although passing the exam does not give you everything you need to be able to administer a Kubernetes cluster in production, it is a good start, and it shows that you have understood the inner workings of Kubernetes.Read More »CKA certification – 3 tips to rock the exam
When starting a new project, architecture is one of the defining decisions you want to make. If you have followed the hype, microservices seems to be the young and hip choice. But you should not rule out the monolith to quickly. Both architectures have a profound impact on not only the code but also on the team(s) writing it. In this article, I’m going to cover all aspects you need to consider when making a choice, not just on the code part. I will also include the organizational, infrastructure, deployment, and security aspects. Please remember to check out the checklist at the bottom that can help you choose.Read More »Monolith or Microservice?
When developing distributed systems with containers, common problems surface. Common problems in programming are tackled using patterns. Brendan Burns introduces several patterns to use when designing and implementing distributed systems. Similar to the thoughts behind using patterns for software development. The author is one of the co-founders of the Kubernetes projects, so he is an expert in distributed systems.
The book is only 149 pages long and is available for free from Microsoft. It features both generic explanations of the different patterns and hands-on examples on how to implement them using Kubernetes.Read More »Book Review: Designing Distributed Systems
At DockerCon EU 18 I held a tech talk about monitoring Docker containers in swarm mode. Since the talk was only 20 minutes, it was not possible to cover all the interesting detail. This article provides some additional information and a tutorial for setting up a simple monitoring infrastructure for swarm mode. You can jump directly to the tutorial here.
The slides from the talk are available here.Read More »DockerCon EU 18 – Monitoring Docker Containers in Swarm mode
Docker setup – part 3: setting up a simple Continuous Deployment pipeline using bitbucket and docker
This part ended up being a lot more involved and much longer than I expected. In this part my goal was to make the production deployment process smoother, make it easier to do development on the setup and prepare it to be more redundant.
Before I started, the production deploy process was to connect my IDE(phpstorm), with it’s docker-compose integration, to my remote docker and run a “docker-compose up”. This workflow has some drawbacks
- It is easy to deploy to production by error since it is only a single click in the wrong place – so I can’t be sure that the running version maps to a specific revision in my git
- When I deploy, the containers are taken down until the new containers are booted, causing service disruption
- There are no easy way to do a revert, if I deploy a setup with errors, it is a manual process to revert it to a previous version
- I would like to work with Continuous Integration / Continuous Deployment (CI/CD) as a pipeline for a more smooth workflow which requires a more tight control of the process
- I don’t have an easy way control differences between development and production
- Also I would like to prepare to work with replicated services where the service would have a fall over if an error crashes a container.
Much of this part are to prepare the setup to solve the challenges above. I did not manage to solve all of the problems up front, which disappointed me a bit, but it will be solved in later parts.Read More »Docker setup – part 3: setting up a simple Continuous Deployment pipeline using bitbucket and docker
In part 2 I wanted to fix the problem with the loadbalancer from part 1. The loadbalancer did not actually function as a loadbalancer it just proxy the request to the correct webserver.Read More »Docker setup – part 2: loadbalancing web requests
My day-job is developing and managing websites and e-commerce platforms, so I know the importance of stability and scalability on web platforms and technology in general. This is also true when working with my personal projects. For some time I have wanted to push my projects to the cloud so I can more easily utilize the scalability there. Also, I only have a laptop, and I don’t want a desktop computer to take space, collect dust, and consume power. Hardware also gets old and needs to be maintained. All those worries I would like to skip.
My goal is to setup a platform that will do a few things for me:
- Allow me to run my blog – this site
- Allow me to run my girlfriend’s blog – this site
- Be easy to update WordPress since it is known to have security issues in older versions
- Have good backup
- Alert me if/when the sites are down
- Alert me if/when the sites experience high load
- Protect the sites against DDoS and similar attacks
- Provide me with a coherent platform for all my projects both web and data analysis
- Be a learning platform for new technology in cloud computing
Lofty goals but I hope to setup a platform that will service me for many years.Read More »Docker setup – part 1: Setting up a state of the art infrastructure for personal projects