суббота, 13 октября 2018 г.

Видео докладов с конференции OSDN 2018

В сети появились записи докладов с конференции на youtube. Конференция проводится уже не первый раз в Киеве, в этом году она была в сентябре.

Рекомендую к просмотру доклады:
— Леннарта Поттеринга — Locking Down Your Systemd Services (Леннарта слушать интересно)

— Максима Богука — Использование статистики в PostgreSQL для оптимизации производительности (узнал для себя много нового про Postgres)

Также мне было интересно послушать доклад Николай Маржана — Amazon RDS Monitoring, так как я использую PostgreSQL в амазоновском RDS.

воскресенье, 7 октября 2018 г.

Долой cat и less, да здравствует bat!

https://github.com/sharkdp/bat

Что умеет:
- подсветка номеров строк и синтаксиса (довольно много различных языков и разметок)
- если содержимое файла влезает в экран, работает как cat, если нет — как less
- поддержка git diff
- поддержка конкатенации файлов, равно как и cat
- при этом все эти штуки можно включать и отключать как удобно

Как привыкаем:
echo alias cat='bat' >> ~/.bash_profile
echo alias less='bat' >> ~/.bash_profile
source ~/.bash_profile
cat README.md


суббота, 29 сентября 2018 г.

Бекапим все свои репозитории локально с GitHub

Идем в настройки и генерируем токен с правами repo: https://github.com/settings/tokens

Запускаем бекап на локальную машину всех своих репозиториев:
export GITHUB_AT=yourtokenfromgithub
export USERNAME=Amet13
curl -s https://$GITHUB_AT:@api.github.com/users/$USERNAME/repos?per_page=200 | \

jq .[].ssh_url | \
xargs -n 1 git clone

На случай пожара, так сказать.

суббота, 8 сентября 2018 г.

Автоскейлинг нод в Kubernetes

В этой заметке мы устанавливали кластер Kubernetes в AWS с помощью kops.
А в данной заметке я опишу настройки автоскейлинга нод в Kubernetes.

Для того чтобы автоскейлинг работал, необходимо его установить в кластер в неймспейс kube-system.

Перед непосредственной установкой, убедитесь что на всех нодах, которые вы хотите скейлить есть соответствующие лейблы:
kops get ig
kops edit ig nodes
...
spec:
  cloudLabels:
    k8s.io/cluster-autoscaler/enabled: ""
    kubernetes.io/cluster/k8s-dev.domain.org: ""

Эта команда будет создавать ноды с соответствующими лейблами, поэтому важно повесить лейблы также и на существующие ноды.

Подготовим файл конфигурации для автоскейлера:
cat << EOF > values.yml
autoDiscovery:
  clusterName: k8s-dev.domain.org
awsRegion: eu-west-1
cloudProvider: aws
extraArgs:
  balance-similar-node-groups: true
  expander: random
  skip-nodes-with-system-pods=false: false
rbac:
  create: true
  pspEnabled: true
scale-down-delay: 5m
v: 2
EOF

Установка автоскейлера:
helm install stable/cluster-autoscaler --name autoscaler -f values.yml

На этом в принципе все, можно позапускать в кластере каких-нибудь нагрузочных тестов, чтобы убедиться в работоспособности скейлинга.

суббота, 1 сентября 2018 г.

Установка Kubernetes с помощью kops в AWS

В этой заметке я опишу, как быстро с нуля поднять рабочий кластер k8s в облаке амазона.
Если у вас много денег, можете использовать EKS (который еще недоступен во многих регионах), в качестве альтернативы я использую именно связку AWS+kops.

Ставим необходимые пакеты для работы с кубером (моя локальная ОС Mac OS X)
brew update
brew install awscli kubectl kops kubernetes-helm

пятница, 3 августа 2018 г.

Upgrading PostgreSQL on AWS RDS with minimum or zero downtime

С гордостью представляю публикацию в корпоративном блоге компанию статью по использованию мультимастер репликации в AWS RDS для PostgreSQL.
Ссылка: https://medium.com/preply-engineering/postgres-multimaster-34f2446d5e14
Статья на английском, с картинками, есть немного теории, много практики, а также выводы, когда можно использовать такую репликацию, а когда нет. Рекомендую к прочтению.

суббота, 21 июля 2018 г.

Mac OS X Mojave beta и чекбоксы в Google Chrome

Google Chrome пока еще не поддерживает Mac OS Mojave и некорректно отображает чекбоксы (и не только, например некоторые кнопки также не отображаются).

Чтобы обойти это, существует плагин для хрома, который устанавливаем размер каждой страницы 1.000001, что является костылем, до тех пор, пока Chrome не начнет поддерживать Mojave.

До плагина:
После:

Если еще кому-то интересно, то я заметил еще несколько багов, которые пока не поправили:
Dropbox, как-то странно отображается окно:

TextEdit, не всегда закрывается с первого раза.
Был также баг в Finder, при котором нельзя было из бокового меню извлечь внешний носитель, но это поправили.
VirtualBox не работает на Mojave.

понедельник, 16 июля 2018 г.

Как скопировать права роли в PostgreSQL

Все очень просто, у нас есть роль olduser и мы хотим чтобы у нового пользователя newuser были такие же права на таблицы как и у olduser:
CREATE ROLE newuser WITH LOGIN PASSWORD 'password' CREATEDB CREATEROLE;
GRANT olduser TO newuser;

пятница, 13 июля 2018 г.

Обновление версии PostgreSQL в Amazon RDS без даунтайма

Цель: обновить инстанс PostgreSQL, который работает на версии 9.4 до 9.5.

RDS не позволяет обновлять PostgreSQL на несколько мажорных версий, поэтому если нужно обновиться например с 9.4 до 10, то итерацию придется повторять несколько раз.

Также важно то, чтобы были доступы для rds_superuser, без этого не получится настроить репликацию.

Пример как это все работает на тестовом стенде я описал ниже.