alekfed

a

DevOps

Experience: 2 years

My DevOps experience is centered around the needs of a company that developed a platform for marketplace integration (Ozon, Wilberries, Tmall, Yandex.Market и Goods).

Kubernetes

Initially, the company’s infrastructure was based on Docker Compose / Swarm , but, at some point, switching to Kubernetes became a reasonable option. For K8s deployments I used Kubespray and K3s .

I faced a number of problems when switched to a cluster-based development, in particular, with local deployments. I tried to organize it using local miniclusters ( kind , minikube ) with tools like Tilt and Skaffold , but, in the end, for a number of reasons, returned to Compose.

Nevertheless, packaging applications in Helm charts somewhat simplified their management in the cloud. To address the issue of a cluster configuration reproducibility at the application level, I tried Helmfile and Helm Terraform provider , and settled on the latter.

CI/CD

In CI/CD my experience is limited to GitLab and Drone . For each project that was supposed to be used in production, a pipeline was set up, which included running the code through linters and running all tests, building a new Docker image and deploying this image on the staging and, later, on the production servers. A built-in GitLab registry was used for Docker images. Dockerfiles have been optimized for building a production image.

I became interested in Drone when I discovered that GitLab workers can easily consume 10GB of RAM per one worker. But, at some point, it became possible to cheaply move GitLab to a separate server with a bunch of RAM, so the option with Drone has lost its relevance.

FaaS

The ability to have a FaaS service in your own cluster opens up interesting architectural possibilities. OpenFaaS turned out to be a great option, which is quite easy to write functions for. There were problems with local deployment (without a cluster), but an internal development server resolved the issue.

Nix

Another interesting idea that I have been working on lately is declaratively configurable Linux distributions. They can be used as base systems that are not (so) scary to update. Today, NixOS is the only serious contender in this field (not Guix , unfortunately). I maintain my system configuration in the git repo , but it would be interesting to try this system for larger tasks.

(see also system administration card )


Illustration



email icon telegram icon github icon