gRPC Long-lived Streaming

In this blog post I’ll explore a way to implement gRPC long-lived streaming. Using gRPC is perfect for cloud native applications mainly since it is modern, bandwidth and CPU efficient and low latency which is exactly what distributed systems require. If you’re reading this I assume you are already familiar with gRPC. But if you…

Kubernetes Pod Security Policy Deprecation

A couple of weeks ago I noticed that the Kubernetes Auth Special Interest Group (AKA sig-auth) announced its decision to deprecate the Pod Security Policy (PSP) in Kubernetes version 1.21 and to remove the API completely at version 1.25. Similar to the case where it was decided to remove the dynamic audit sink feature, it…

Kubernetes MITRE ATT&CK Framework Explained

If you’ve been around the cloud native world in the last few months, you probably couldn’t escape from hearing the term MITRE ATT&CK. In this blog post I’ll give a simple introduction and explanation as to what MITRE ATT&CK is and it’s applications to Kubernetes specifically. The MITRE Corporation The MITRE Corporation is an American…

Upgrade runc on Ubuntu

Lately I’ve been encountering some errors that, after some research, I discovered that the resolution was to upgrade my runc version. Since searching for upgrade runc did not yield any results I’ve decided to write this quick guide. First verify your current runc version: Mine was: How to upgrade? Generally you have two options: Use…

Is WebAssembly The Future?

I’ve been reading and writing about WebAssembly for a few months now and I have to say it got me very much intrigued. With several posts already published, it’s been quite a ride. Above all, one question remains open – what is the future of WebAssembly? or better yet – is WebAssembly the future? In…

Minimizing Go WebAssembly Binary Size

In both of the previous posts I’ve described different aspects of WebAssembly. The first of the two explained what WebAssembly is and how to run a simple Go WebAssembly application in the browser. The second post was a Go WebAssembly performance benchmark. If you are unfamiliar with Go WebAssembly, I’d recommend reading the first post…

Go WebAssembly Performance Benchmark

In my previous post I explained what WebAssembly is and how to run a simple Go web application with WebAssembly in the browser. A question I had in mind during the writing of that post is if Go WebAssembly really is faster than JavaScript? In this post I’ll conduct a research and a Go WebAssembly…

Run Go In The Browser Using WebAssembly

I’ve heard about WebAssembly a while back at one of the GopherCon conferences. It has been a source of interest to me and I’ve been meaning to play around with it for a while – and now, the time has come! WebAssembly WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm…

Configure And Implement A Kubernetes Audits Webhook

This post is going to be mostly technical. By the end of it you should know exactly how to implement your own Kubernetes audits webhook. First off, if you need some background on Kubernetes auditing, I recommend reading my Kubernetes audits introduction post first. The reason for which I’m writing this post is because of…

Ambassador Container Design Hands On

When developing a cloud native application, we want it to serve a single purpose and be as simple as possible. For example, you would want to have a clear separation between your application logic and communications to remote services. This is where the ambassador container pattern comes in place.