Pull to refresh
54
0
Амет Умеров @Amet13

DevOps инженер

Send message

На Sysdev Engineer спрашивают такое (последний этап):

  • System Design (пример, как бы ты проектировал сервис конвертации текста в голос)

  • Linux Internal

  • Coding (распарсить какой-нибудь CSV на любом удобном языке; перемножить значения в массиве, все кроме текущего)

  • Behavioral Interview (почти на каждом собеседовании)

На первом этапе кодинг на 2 часа, задачки из разряда:

  • Надо в текст разбить на предложения и найти в каком предложении больше всего слов и вернуть это число

  • Есть выхлоп по факту ls -l, нужно для файлов с атрибутом исполняемости, размером меньше N и созданные юзером admin, вернуть самую старую дату из файлов которые подходят под эти критерии

Была тут сколько то лет назад статья про всё это дело.

Эта? https://habr.com/en/post/424805/

https://docs.docker.com/config/daemon/#read-the-logs

$ docker image prune -a -f
Deleted Images:
untagged: ubuntu:latest
untagged: ubuntu@sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
deleted: sha256:ba6acccedd2923aee4c2acc6a23780b14ed4b8a5fa4e14e252a23b846df9b6c1
deleted: sha256:9f54eef412758095c8079ac465d494a2872e02e90bf1fb5f12a1641c0d1bb78b

Total reclaimed space: 72.78MB
$ tail -f ~/Library/Containers/com.docker.docker/Data/log/vm/dockerd.log
...
2021-11-10T07:31:07Z dockerd time="2021-11-10T07:31:07.096859208Z" level=debug msg="Calling POST /v1.41/images/prune?filters=%7B%22dangling%22%3A%7B%22false%22%3Atrue%7D%7D"
2021-11-10T07:31:07Z dockerd time="2021-11-10T07:31:07.123390300Z" level=debug msg="Calling GET /system/df"
2021-11-10T07:31:07Z dockerd time="2021-11-10T07:31:07.130408253Z" level=debug msg=VolumeStore.Find ByType=service.andCombinator ByValue="[[local] 0x562c84898fe0]"
2021-11-10T07:31:07Z dockerd time="2021-11-10T07:31:07.230352182Z" level=warning msg="failed to prune image docker.io/library/ubuntu@sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322: No such image: ubuntu@sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322"
2021-11-10T07:31:07Z dockerd time="2021-11-10T07:31:07.235962761Z" level=debug msg="Calling GET /images/sha256:ba6acccedd2923aee4c2acc6a23780b14ed4b8a5fa4e14e252a23b846df9b6c1/json"
2021-11-10T07:31:07Z dockerd time="2021-11-10T07:31:07.546928532Z" level=debug msg="Calling GET /system/df"
2021-11-10T07:31:07Z dockerd time="2021-11-10T07:31:07.547181748Z" level=debug msg=VolumeStore.Find ByType=service.andCombinator ByValue="[[local] 0x562c84898fe0]"

А sync mode не пробовали использовать в skaffold (режим при котором вместо сборки докер образа просто синкаются файлы напрямую), раз у вас интерпретируемый код, то по идее такая штука тоже должна для вас работать? Года три назад оно в альфе было и толком не работало, интересно как оно сейчас в бете.

То что это дорого, безусловно. Как и многие другие сервисы AWS.

Можно вообще не париться и поставить pritunl на виртуалке и его менеджить, из моего опыта там оно работает себе и кушать не просит (правда никогда не пробовал, умеет ли оно в ingress authorization, если да, то вообще круто).

Описанный вариант с AWS VPN для небольшой команды, не очень частого использования VPN, но так чтобы один раз настроить и забыть.

Могу сказать по Украине, что за последний год компаний из Израиля стало появляться все больше и больше. Если раньше они работали в основном через аутсорс, то сейчас открывают свои R&D центры в Украине.

А что именно интересует?

Удобно использовать эту тулу, вместо того, чтобы все время хранить json для curl: https://github.com/davecheney/httpstat

В свое время использовал очень часто когда работал в хостинге

Всегда запоминал эту команду как нетстат тюльпан(netstat -tulpan)

Пользовался privatebin, тоже хорошая штука, можно self-hosted, вдобавок к аналогичным сервисам: github.com/PrivateBin/PrivateBin
Хороший поинт.
Я постараюсь дополнить статью, для тех кто не знаком с решаемой проблемой.
Спасибо.
Хм, вроде в этом предложении кратко написал что такое Terraformer:
Terraformer — консольный инструмент для генерации кода и стейта в форматах HCL и json для уже существующей инфраструктуры.

Конкретно для себя я нашел несколько юзкейсов:
1. Проверить, какие ресурсы у нас еще не под терраформом
2. Если есть какой-то аккаунт-песочница, например для разработчиков, которые хотят поиграться с чем-то и нужно периодически проверять текущее состояние ресурсов на аккаунте и по необходимости например вычищать

При использовании Терраформа для построения инфраструктуры с нуля пишутся модули со сложной логикой и иерархией, под потребности конкретного проекта.

Если пишется не с нуля, то в качестве отправной точки лично для меня Terraformer смотрится очень хорошо, а сложную логику, иерархию и модули можно строить уже на основе существующего кода.

Мне кажется, что можно еще прикинуть некоторые юзкейсы.

Лично для меня было проще сначала импортировать ресурсы, потом их заворачивать в модули.
$ uname -v
#1 SMP Debian 4.9.189-3+deb9u2 (2019-11-11)
$ conntrack --version
conntrack v1.4.4 (conntrack-tools)
Конкретно для нас польза такая.
1. Инцидент зафиксирован и донесен до всех членов команды, в будущем такого повториться не должно
2. Если даже вдруг он в будущем повторится, у нас зафиксированно все в документации
3. Плюс это расширение экспертизы (опыт) для других членов команды, которые работают со смежной технологией например
Все посмтортемы у нас хранятся в Confluence, ну и как написано в статье, обсуждаются на еженедельных митингах.
Используем схему с одним кластером на каждое окружение. Это удобно на наших скейлах.

Менеджатся они копсом и все конфигурации на кластерах совпадают (вплоть до задеплоеных хельм чартов). Сетевая изоляция достигается впервую очередь за счет того, что они находятся в разных VPC. За счет такой схемы, обновления продакшн кластера происходят без единого разрыва. Сначала деплоим sandbox кластер, вручную обновляем его, ловим все потенциальные ошибки, после этого стейдж (как правило) обновляется как по маслу, равно как и продакшн.

Что касается минусов такого подхода.
Отсутствие изоляции между приложениями

У нас не сотни приложений в кластере, поэтому грамотное использование скейлинга нод, подов, affinity/antiaffinity правил, taints/tolerations, limits/requests и instance groups, практически закрывает этот минус. Возможно на больших скейлах все немного сложнее, не могу сказать.

Невозможность локализовать зависимости приложений

Похоже с таким кейсом мы не сталкивались.

Information

Rating
Does not participate
Registered
Activity