At Wehkamp we’ve been using ASP.NET for a long time. Containers brought .NET with us to our microservices architecture. We used a shell script in a special build container to build our service. Today we’ll discuss how we turned that shell script into a multi stage build Dockerfile.
I’m on Windows and I use AWS Vault to connect to AWS using an MFA token. It works wonderfully, unless you need to execute some Bash scripts. I love using Bash on Windows, as WSL makes it really easy to write my scripts. But, alas, the AWS environment variables set by AWS Vault are not […]
When I build containerized apps that need to be exposed on the internet, I usually need to forward ports, set up let’s encrypt and reverse proxy some random port. In this blog I’ll show you how to ditch all of that in favor of 1 secure Cloudflare tunnel in a docker-compose file.
As browser security improves, many applications have implemented CORS headers to protect against unauthorized access. I’m working on a Chrome extension that needs to check if a certain URL is present on GitHub, before it opens the URL in a new tab. Let’s explore what we can do.
We’re currently in the business of moving from Mesos/Marathon to Kubernetes. As we have a microservices environment we can move service by service. We have multiple clusters running, so I need to track which teams have which services (still) running on Mesos/Marathon.
Let’s see if we can lift the data out of the system using the Marathon API, JQ and cURL.
When working on Bash scripts, it is often useful to make them more flexible by using parameters. In a previous blog post, I demonstrated how to add named parameters to a single script. However, if you want to apply this feature to multiple script files, it might make sense to move the code to a […]
At Wehkamp, we use the Hubot Grafana project to make our Grafana dashboard available in Slack. It mainly helps our standby team to make quick assessments on what’s going on with our website. Last year, we saw we could not upgrade the package from 2.5.2 to 3.0.1, because slugs could not be used anymore. But we use slugs and… quite heavily! So we did not upgrade our Grafana v7… until we got hit by the input field bug. We decided to see what we could do to bring our slug feature back to our ChatOps bot!
I always use Prettier to reformat my code in Visual Studio Code. Prettier formats CSS, HTML, JavaScript and TypeScript. Formatting helps code to look consistent and thereby more easily to read. In this blog I try to format all code I publish.
Anneke Keller (CTO), Koen Roumen (Head of Platfom) and me did a talk on DevOpsDays Eindhoven 2022: A true story on how we learned how to handle the immense web traffic caused by a successful influencer campaign. How we built a platform with Karpenter and Keda for rapid and massive auto-scaling and the effects this had on our platform.
When working on a project, the need arose for better handling of enums decorated with a [Flag] attribute. In a previous article we explored how to use Handlebars.NET to generate JSON strings. In this article we’ll build further on that generator to add support for enums. We will also move away from the static JsonHandlebarsDotNet to an injectable version.