Setting up development environment often turns into a developer horror story. Bring secrets, environment variables, authentication and consistency between each developer's machines and CI pipelines and it becomes a nightmare. Thankfully, modern tools like Novops and Flox can help streamline most of this boilerplate.| blog.crafteo.io
On paper, Dev Containers are great to define and share development environments easily. Actually using them is not that great: lack of reproducibility, integrating host files in containers, difference in implementations between various tools…| blog.crafteo.io
I recently had to configure cross-compilation for one of my Rust project, and, oh boy... What a journey ⛵ Manual test on target platform I wanted to be able to compile on Linux / MacOS / Windows and _x8664 / aarch64. Before adding the layer of complexity required by cross-compilation, I wanted to test on...|
Nix and NixOS are reputed for their reproducibility. I've been using it for a few years with great satisfaction, never believing that somehow the Nix store (holding Nix packages and binaries) could somehow be corrupted into not following this sacro-saint reproducibility. Updating NixOS, what could go wrong? NixOS system update or upgrade is as simple...|
Setting-up local development environment is a pain. Make it double with matching CI configuration. Packages and tools to install, local configurations, secrets, deployment... Developers often loose hours - if not days - before being able to run a simple make build or deploy a local instance. This series of article will guide you through patterns...|
GitLab Container Registry allows developers to manage container images per project via one or more Container Repositories. As storage size increase, so will cost 💸 and you'll want to cleanup your Container Repositories. Easier said than done, here's a story of how it went with our on-prem GitLab instance. Automated cleanup policy will be enough......|
Working with Docker for 8+ years I've seen many teams struggling with build process optimization - mostly around CI config for efficient cache re-use. I was surprised very little literature mention that a Docker daemon can be configured as a remotely available server, allowing for a de-facto secure remote cache and build engine. I've been...|
Destroy every resources from your AWS accounts with aws-nuke You probably heard - or lived yourself - the story of this surprisingly high AWS bill because you forgot to turn off your development environment. Here comes aws-nuke ! It's not only useful for dev/sandox resources, but can also help reduce your AWS costs and test...|
When deploying Traefik with Let's Encrypt on Kubernetes, need quickly arise for High Availability (HA). It requires multiple instances of Traefik to run in parallel, but prevents the use of Traefik's built-in Let's Encrypt features: it is not possible to run multiple instances of Traefik 2.0 with Let's Encrypt enabled, because there is no way...|
You just Dockerized your NodeJS application, yay ! Now you need to run docker build and it's awfully long as Docker needs to download the same dependencies again and again. BuildKit - built-in with Docker - can help you cache Node dependencies to reduce build time.| blog.crafteo.io