Benchmarking DPDK

My reference: https://software.intel.com/en-us/articles/set-up-open-vswitch-with-dpdk-on-ubuntu-server So I got to play with the Data Plane Development Kit (DPDK) from Intel recently. I planned on replicating the PVP benchmark for my use-case. I set up the following environment: Ubuntu 18.04 (bionic) host with: KVM QEMU Debian 10 guest images downloaded from: https://cdimage.debian.org/cdimage/openstack/current/ A useful tool is numactl (use apt to install it). On my non-server system, I don’t have multiple socks and multiple cores per sock etc. ...

July 8, 2019 · 4 min · 674 words

Kata annotations

Annotations are a great feature in Kubernetes and a means for communicating to kata some options. They are being documented as of the time of this writing Using annotations, you can: Customize the Kernel that is used (see KernelPath example below) Change the guest image (ImagePath) Hypervisor (HypervisorPath) Firmware (FirmwarePath) etc. etc. (All of the annotations are listed in annotations.go) Using a Custom Kernel Here is the yaml file I used to apply a custom kernel: ...

June 11, 2019 · 1 min · 114 words

Kata and Kubernetes

Setting up Kata using Docker This is documented here: https://github.com/kata-containers/packaging/blob/master/kata-deploy/README.md#docker-quick-start Using Minikube and Kata This PR is adding the documentation to get started with minikube: https://github.com/kata-containers/documentation/pull/445# Using kubeadm First, set up a Kubernetes cluster using kubeadm: https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/ then, https://github.com/kata-containers/packaging/blob/master/kata-deploy/README.md#kubernetes-quick-start Conclusion Using the new kata-deploy method, it is very easy to set up a Kubernetes cluster that uses Kata Containers.

May 19, 2019 · 1 min · 59 words

Taking Kata Steps

So I thought that it might be a great idea to run an RT kernel inside Kata containers. This is a usecase because I soon hope to see Kata containers running on real-time capable hypervisors and also being used in scenarios where real-time is a thing. Soon! For now, let’s look at how I went about doing what I did.. You need to go get github.com/kata-containers/packaging repository. (or, git clone if you so prefer.) Be sure to have your $GOPATH properly set!! cd into packaging/kernel directory. I chose the 4.19.31 version of the kernel. Primarily because it was a newer kernel (not too different from the kernel version that comes with the current kata release.) and because it had the RT patches available I changed the kernel_version="" line to kernel_version="4.19.31" That’s it. We are ready to (1) apply the necessary patches from Kata maintainers to our Kernel of choosing and (2) apply the RT patches: ...

April 28, 2019 · 2 min · 330 words

First Steps With OpenStack

I recently tried to set up OpenStack on a single-node development environment using devstack. This blog is not meant as a tutorial or getting started guide. However, I hope that Google will send someone crying tears of sorrow this way so he can benefit from my experience. Conclusion What I concluded from the documentations is that we don’t get something ready-to-go from the official docs. And you should consider yourself lucky if everything worked for you out-of-the-box. ...

April 26, 2019 · 1 min · 212 words

Functional Programming

So I was just reading about Functinal programming and this is a summary of what I understand about it as of today.. (might change in the future; to err after all, is human.) Benefits The “environment” you’re programming against are the function arguments Reuse is imminent. Composition is what everyone calls it. Functions’ results can be cached (memoization) There must be many more benefits.. These three are the ones I can think of and the ones that get the most marks from my side. ...

January 23, 2019 · 2 min · 321 words

SWPC Trip Report

My company has frequent internal “Software Professionals Conferences (SWPC)”. I was honored to be a part of the conference yesterday in Munich where I presented a lightning talk and did a demo. Lightning Talk I did a lightning talk around Event Driven Microservices. Event driven architectures are becoming fairly common these days and IoT is a natural and easily understandable use-case. I presented the architecture we developed but without going into too much detail. ...

November 30, 2018 · 2 min · 319 words

Error Handling

I started learning Rust almost about two months ago. Even though initially, it’s really frustrating, getting code to compile usually means that you’ve agreed explicitly with the compiler on what errors would look like. This is actually awesome. My usual error checking function while writing Golang looks something like: func check(err error) { if err != nil { panic(err) } } (read this rant for an idea of Go’s error management) This is what I have cluttered around my code and until now, I have been a big fan of Golang’s error propagation. Rust just does it better with it’s ? propagation operator! ...

October 3, 2018 · 1 min · 174 words

Build, Test and Deploy are Developer Concerns

All too often our repos here do not (actually, none) contain the definition of what code compilation and build look like. They exist in separate scripts hosted somewhere on the “Integration Team”’s servers and are very inflexible! Travis CI and services like it, have shown us that the steps to build/test/deploy code should also exist in the code repo. I’m gonna try to find some time to explore the possibility of having a Travis CI style service for in-house repositories. I want to mandate the existance of a Dockerfile in every repository so we can at least tell Jenkins to go do a docker build . in every repo in the list. But this is only temporary. The long-term goal is to definitely be able to hook into Jenkins CI from the Github web interface (like Travis CI in the open source world.)

October 1, 2018 · 1 min · 143 words

Right after I joined this new job..

Do I scrum-master (is that a verb?) automagically agile? Many people talk about cross-functional teams, developers getting hit by buses (poor us!) and CI/CD. I am not one to disagree here but I think these other tools are important as well as using the tools available to best effect. Git I am having to use Gerrit with a Gitweb frontend all maintained by a local team on servers somewhere upstairs. You want a new repo? Please write an email to this guy.. Private repository? No. ...

October 1, 2018 · 3 min · 521 words