Compare commits
13 Commits
0cdeaa3e4e
...
db9e85216c
Author | SHA1 | Date |
---|---|---|
Nikolai Rodionov | db9e85216c | |
Nikolai Rodionov | ba7f7e5310 | |
Nikolai Rodionov | d8e7071943 | |
Nikolai Rodionov | b3bd01c16d | |
Nikolai Rodionov | ecfb624fff | |
Nikolai Rodionov | ed03f1c0e4 | |
Nikolai Rodionov | 8cbfb22b25 | |
Nikolai Rodionov | f4bbc1e5fa | |
Nikolai Rodionov | 7decf2b0cf | |
Nikolai Rodionov | 2da1469b17 | |
Nikolai Rodionov | 1fe981edae | |
Nikolai Rodionov | 4cb433f938 | |
Nikolai Rodionov | f6474effdb |
|
@ -37,6 +37,10 @@ mysql
|
|||
percona
|
||||
redis
|
||||
ceph
|
||||
CRDs
|
||||
RabbitMQ
|
||||
postgres
|
||||
- index.md
|
||||
Rodionov
|
||||
db-operator
|
||||
Tekton
|
||||
|
|
|
@ -1,12 +1,17 @@
|
|||
---
|
||||
when:
|
||||
event: push
|
||||
|
||||
steps:
|
||||
build:
|
||||
name: Build the CV
|
||||
image: node
|
||||
environment:
|
||||
OUTPUT: /tmp/out
|
||||
backend_options:
|
||||
kubernetes:
|
||||
securityContext:
|
||||
privileged: true
|
||||
commands:
|
||||
- apt-get update
|
||||
- |-
|
||||
|
@ -20,11 +25,9 @@ steps:
|
|||
- npm install
|
||||
- npm run build
|
||||
- mkdir $CI_WORKSPACE/cv
|
||||
- mv index.pdf $CI_WORKSPACE/cv/n.rodionov.pdf
|
||||
- mv index.pdf $CI_WORKSPACE/cv/n.rodionov.$CI_COMMIT_SHA.pdf
|
||||
|
||||
upload:
|
||||
when:
|
||||
branch: main
|
||||
name: Upload the CV
|
||||
image: rclone/rclone:latest
|
||||
secrets:
|
||||
|
@ -33,4 +36,21 @@ steps:
|
|||
RCLONE_CONFIG: /tmp/rclone.conf
|
||||
commands:
|
||||
- echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG
|
||||
- rclone copy -P $CI_WORKSPACE/cv badhouseplants-minio:/public-download
|
||||
- |-
|
||||
rclone copy -P $CI_WORKSPACE/cv badhouseplants-minio:/public-download/n.rodionov
|
||||
|
||||
release:
|
||||
when:
|
||||
branch: main
|
||||
name: Upload the official version
|
||||
image: rclone/rclone:latest
|
||||
secrets:
|
||||
- rclone_config_content
|
||||
environment:
|
||||
RCLONE_CONFIG: /tmp/rclone.conf
|
||||
commands:
|
||||
- echo "$RCLONE_CONFIG_CONTENT" > $RCLONE_CONFIG
|
||||
- |-
|
||||
rclone copyto \
|
||||
badhouseplants-minio:/public-download/n.rodionov/n.rodionov.$CI_COMMIT_SHA.pdf \
|
||||
badhouseplants-minio:/public-download/n.rodionov.pdf
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
build:
|
||||
npm run build
|
||||
|
||||
test:
|
||||
npm run test
|
||||
|
||||
fix:
|
||||
npm run fix
|
38
index.md
38
index.md
|
@ -1,4 +1,8 @@
|
|||
---
|
||||
pdf_options:
|
||||
format: a4
|
||||
margin: 20mm 10mm
|
||||
printBackground: true
|
||||
stylesheet:
|
||||
- https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.5.1/github-markdown.css
|
||||
body_class: markdown-body
|
||||
|
@ -13,23 +17,30 @@ css: |-
|
|||
|
||||
```
|
||||
> Location: Hamburg, Germany
|
||||
> Email: allanger@zohomail.com (preffered)
|
||||
> Email: allanger@zohomail.com
|
||||
> Github: https://github.com/allanger
|
||||
```
|
||||
*This CV is built in a CI pipeline, and uploaded to Minio Bucket, so you should be able to download the latest version here: <https://s3.badhouseplants.net/public-download/n.rodionov.pdf>*
|
||||
*This CV is built in a CI pipeline, and uploaded to a Minio Bucket, so you should be able to download the latest version here: <https://s3.badhouseplants.net/public-download/n.rodionov.pdf>*
|
||||
|
||||
### About me
|
||||
|
||||
I'm a DevOps engineer with 5++ years of hands-on experience with a decent amount of tools. One of the most important tools that I love and want to continue working with, is Kubernetes. At least, until I see a better alternative. I think that containers themselves are one of greatest inventions in development, and I'm trying to use them as long as it's possible. Also, I believe that every routine must be automated, because routing is a boring job that lets people lose focus and make mistakes.
|
||||
I'm a DevOps engineer with 5++ years of hands-on experience with a decent amount of tools. My main focus is Kubernetes and CI/CD, but it absolutely doesn't mean that I would like to avoid tasks on other areas.
|
||||
|
||||
I think that there are several things that a DevOps engineer must be able to do:
|
||||
- To build reliable and stable infrastructure
|
||||
- Keep this infrastructure up-to-date
|
||||
- Keep all the source and instructions of this infrastructure clean and simple
|
||||
- Avoid a human factor as long as possible
|
||||
- And when it's not possible to avoid it, not to be afraid to take responsibility
|
||||
As an engineer, I've got some beliefs and I hope that they should be capable of describing me, because that what I'm trying to bring with me:
|
||||
- One should tend not to repeat oneself
|
||||
- One should never edit what's constantly generated
|
||||
- Unless something is in CI, it doesn't exist
|
||||
- Any routine must be automated, because otherwise it's error-prone
|
||||
|
||||
Also, I think it's important that before implementing anything, an engineer has understood all the requirements and checked tools that can fulfil them. I often see, how people try to use a tool for its name but not for its functionality, and hence they have to do a lot of additional work and deal with compromises. And if nothing really can fulfil those requirements, you need not be afraid of writing something new *and open-source it*.
|
||||
A couple of bigger tasks I've been working on:
|
||||
|
||||
- A migration of several MySQL Percona clusters to Kubernetes using the Percona Operator
|
||||
- An implementation of a downtime-free blue-green deployment for RabbitMQ
|
||||
- A dynamic "preview" environments deployment using ArgoCD
|
||||
- A data streaming automation from ~800 Postgres databases with structural changes via Kafka deployed to Kubernetes
|
||||
- An introduction of versioned Gitlab-CI templates for replacing per-repo pipelines
|
||||
|
||||
Also, I'm a maintainer of a kubernetes operator that should help users manage databases via CRDs: <https://github.com/db-operator/db-operator>
|
||||
|
||||
### Experience
|
||||
|
||||
|
@ -47,10 +58,11 @@ Also, I think it's important that before implementing anything, an engineer has
|
|||
- **Kubernetes**: Helm - Kustomize - Kubebuilder - Helmfile
|
||||
- **Scripting/Coding**: Bash - Go - Rust - Perl
|
||||
- **Continuous Integration**: Gitlab-CI - Github Actions - Circle-CI - Woodpecker-CI - Drone-CI
|
||||
- **Continuous Delivery**: ArgoCD - Flux
|
||||
- **Infrastructure as Code**: Ansible - Terraform
|
||||
- **Continuous Delivery**: ArgoCD - Flux - Tekton
|
||||
- **Infrastructure as Code**: Ansible - Terraform - Cluster API
|
||||
- **Cloud Providers**: Microsoft Azure - Google Cloud - AWS - Yandex Cloud - Hetzner - Self-Hosted
|
||||
- **Observability**: Prometheus - Grafana - Loki - Elasticsearch - Kibana - FluentBit - Promtail - Fluentd
|
||||
- **Secrets/Encryption**: Sops - Age - Helm Secrets
|
||||
- **Databases**: PostgreSQL - MySQL - Percona MySQL - Redis
|
||||
- **Storages**: Minio - Ceph
|
||||
- **Storages**: Minio - Ceph - Longhorn
|
||||
- **Others**: Kafka - RabbitMQ - Selenium
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue