Latest Posts

Say Goodbye to Tedious Docker Commands: Embrace Docker to Bake Images

Building and pushing container image with Docker is easy. Right? We define a Dockerfile and we execute a command like docker image build .... Docker file is easy to define and the rest is just a CLI command. How hard can it be?

Well… It can be hard or, at least, tedious.

Imagine that we have to build images for multiple platforms, that each of those images should be released both as a specific version but also as latest. Then add to that the situation that we need to build more than one image, let’s say a backend and a frontend.

How many commands do we need to execute and how many arguments should each of those commands have? Can we remember all those arguments and are we willing to execute a bunch of commands?

That simple example already shows that building and pushing container images can be hard and tedious. The good news is that there is a better way. There is a declarative way to do all that.

Full article »


From Zero to Fully Operational Developer Platform in 5 Steps!

Internal Developer Platforms or IDPs are not hard to create. Anyone can do it, as long as that someone knows everything about everything.

Today I’ll show you everything you should know about developer platforms. We’ll go through all the principles behind them, through all the components they should have, and I’ll even show you how to build one. This will be a tutorial on how to build a platform in 4 mandatory and 1 optional step.

At the end of today’s journey, we’ll have a fully operational IDP with everything you might need. Most likely…

Full article »


Why I Changed My Mind About Backstage? A Brutally Honest Opinion

I was very negative towards Backstage. Some of the architectural choices are, in my opinion, bad. The way to install plugins is just silly. The quality of most of the plugins is very low. The need to rebuild container image every time we make a change is something I thought we will never see again. And so on and so forth.

Now, however, my impressions about Backstage changed. Actually, that’s not true. I still stand behind everything I said about it. What changed is the additional impression. Now I think I get it. Now I think I understand why Backstage makes sense, why it is one of the most contributed project and why it might make sense to adopt it even though it’s bad.

Full article »


From UX to API: Mastering Platform Validations with Kubernetes Validating Admission Policies

Validations are extremely important when building Internal Developer Platforms, or any platforms for that matter. They serve two primary purposes. They help us ensure that user’s requests are valid before they are processed by the platform and they make user experience better. The problem, however, is that people mix those two all the time. One is ensuring that something is valid and the other is improving user experience without guaranteering validity of the requests. The first group are “real” policies while the other is just UX.

Full article »


Full Application Setup in Internal Developer Platform (IDP) with Crossplane

What if I tell you that fifty of so lines of YAML will get you everything you might need to work on an application. What if everything includes Git repo, branches, pull requests, CI workflows, scripts needed both for local development and CI, Dockerfile, a bunch of Kubernetes resources and quite a few other things you might need. What if everything is really everything and, at the same time, tailor-made for your specific needs?

Full article »


How to Create Custom CLIs That Make Your DevOps Life Easier - Nushell

When building user interfaces for developer platforms or, frankly, for anything else, we tend to focus mostly on Web UIs. That’s why there is a surge in popularity of portals like Backstage, Port, and many others. Still, user interfaces can have many other forms and, more often than not, a single one is not enough. The truth is that some forms are more appropriate for some tasks while others for other tasks.

Full article »