Pull to refresh
10
0

Senior automation engineer

Send message

Лучшие практики для деплоя высокодоступных приложений в Kubernetes. Часть 1

Reading time13 min
Views28K

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

Функциональность, которая не доступна в Kubernetes «из коробки», здесь почти не будет затрагиваться. Также мы не будем привязываться к конкретным CD-решениям и опустим вопросы шаблонизации/генерации Kubernetes-манифестов. Рассмотрены только общие правила, касающиеся того, как Kubernetes-манифесты могут выглядеть в конечном итоге при деплое в кластер.

Читать далее
Total votes 57: ↑56 and ↓1+66
Comments19

7 привычек, которые превратят любого интроверта в мастера коммуникации

Reading time4 min
Views30K
Привет! Я Саша, Exness Global Learning & Development Manager.

Более 10 лет занимаюсь темой развития взрослых людей. В центре моего интереса вопросы роста начинающих руководителей.
В этой статье делюсь практическими наблюдениями о том, как интроверту быстро научиться управлять командой.

image
Читать дальше →
Total votes 19: ↑10 and ↓9+7
Comments16

Дзен Go

Reading time17 min
Views16K


Оценивая свою работу, я недавно много размышлял о том, как мне писать хороший код. Учитывая, что никто не интересуется тем, как писать плохой код, возникает вопрос: как узнать, что ты написал на Go хороший код? Если есть какая-то шкала между хорошо и плохо, то как понять, какие части шкалы относятся к хорошему? Каковы его свойства, атрибуты, отличительные признаки, паттерны и идиомы?
Total votes 32: ↑26 and ↓6+32
Comments13

Анатомия каналов в Go

Reading time34 min
Views175K

Привет, Хабр! Представляю вашему вниманию перевод статьи "Anatomy of Channels in Go" автора Uday Hiwarale.


Что такое каналы?


Канал — это объект связи, с помощью которого горутины обмениваются данными. Технически это конвейер (или труба), откуда можно считывать или помещать данные. То есть одна горутина может отправить данные в канал, а другая — считать помещенные в этот канал данные.


Создание канала


Go для создания канала предоставляет ключевое слово chan. Канал может передавать данные только одного типа, данные других типов через это канал передавать невозможно.

Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments7

Роботаракан Петя за десять баксов

Reading time10 min
Views30K

Знакомьтесь с Петей, шестиногом о трёх сервоприводах


Продолжаю публикацию статей из серии "ардуино головного мозга". Петя — это очень дешёвый (примерно десять баксов) гексапод. Он может быть прекрасным проектом на один ненастный выходной, который развлечёт как и взрослых, так и детей. Раз уж мы про развлечения, вот вам видеоролик с Петей, танцующим под фанк-музыку:


Читать дальше →
Total votes 104: ↑104 and ↓0+104
Comments48

Знакомство с wal-g системой бекапирования PostgreSQL

Reading time6 min
Views32K

WAL-G — простой и эффективный инструмент для резервного копирования PostgreSQL в облака. По своей основной функциональности он является наследником популярного инструмента WAL-E, но переписанным на Go. Но в WAL-G есть одна важная новая особенность — дельта-копии. Дельта-копии WAL-G хранят страницы файлов, изменившиеся с предыдущей версии резервной копии. В WAL-G реализовано довольно много технологий по распараллеливанию бэкапов. WAL-G работает гораздо быстрее чем, WAL-E.

Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments16

«Правила роста: от джуниора до CTO», конспект вебинара Фёдора Борщёва

Reading time6 min
Views13K

Фёдор Борщёв — CTO в маркетплейсе стройматериалов «ГдеМатериал», сооснователь rumetr.com и популяризатор чистоты кода. Пишет в блог, телеграм-канал @pmdaily и в советы о разработке в Бюро Гобрунова.


Я сейчас меняю работу — со средней позиции менеджера по логистике на позицию полного джуниора в аналитике данных. И, чтобы срезать пару углов на новом карьерном пути, посмотрел вебинар Фёдора и сделал его конспект. Мне кажется, что советы Фёдора будут интересны другим, поэтому публикую конспект.


За три часа Фёдор прошёлся по темам:


  • управление проектами;
  • общение с людьми;
  • продукт и бизнес;
  • личные цели.

Читать дальше →
Total votes 19: ↑11 and ↓8+10
Comments18

Как я неделю был стажером SRE-инженера. Дежурство глазами инженера ПО

Reading time4 min
Views9.4K


SRE-инженер — стажер


Для начала позвольте представиться. Я — @tristan.read, фронтэнд-инженер в группе Monitor::Health GitLab'а. На прошлой неделе мне выпала честь побыть стажером у одного из наших дежурных SRE-инженеров. Целью было ежедневное наблюдение за тем, как дежурный реагирует на инциденты, и получение реального опыта работы. Нам бы хотелось, чтобы наши инженеры лучше понимали потребности пользователей функций Monitor::Health.


Мне предстояло неделю всюду следовать за SRE-инженером. То есть я присутствовал на передаче дежурства, наблюдал за теми же каналами оповещений и реагировал на инциденты, если и когда таковые имели место.

Читать дальше →
Total votes 17: ↑15 and ↓2+15
Comments3

Настройка окружения в CLI. WSL / Windows Terminal

Reading time17 min
Views84K
Есть люди, которые большинство рабочего времени проводят в консоли, есть те, кто пользуются терминалом при необходимости, запуская что-то по инструкциям. Но я думаю, что каждый айтишник, будь он разработчиком, сисадмином, сетевым инженером, или даже senior yaml developer`ом, пользуется command line interface. Далеко не все задумываются об улучшении рабочего окружения в CLI и повышении продуктивности работы в терминале. Мне хотелось бы поделиться своим опытом настройки окружения для работы с Linux из Windows.



Из статьи вы узнаете, какими средствами и каким терминалом актуально пользоваться в настоящее время для запуска Linux приложений в Windows 10. Речь пойдёт о WSL 2 и Windows Terminal, набирающим всё большую популярность у пользователей, которым для работы нужен Linux. Так как большинство use-case`ов у меня связаны с удалённым подключением через SSH, большая часть информации будет релевантно для случаев удалённых подключений, со всеми особенностями, связанными с этим (пробросом ssh ключей через ssh agent, пробросом X-сервера, управлением подключениями etс).

Внимание! Под катом много картинок и ужатого, но местами объёмного, gif`а, рекомендуется открывать статью при наличии соответствующего доступа к интернету. Заходите под кат, если вам актуален запуск Linux утилит под Windows, оптимизация работы в окружении CLI, или вы просто любите технические тексты и цветные терминалы. Текст я постарался скрасить скринкастами и скриншотами терминала, чтобы было не скучно.
Читать дальше →
Total votes 15: ↑14 and ↓1+18
Comments33

В поисках LD_PRELOAD

Reading time12 min
Views25K
Эта заметка была написана в 2014-м году, но я как раз попал под репрессии на хабре и она не увидела свет. За время бана я про неё забыл, а сейчас нашёл в черновиках. Думал было удалить, но авось кому пригодится.



В общем, небольшое пятничное админское чтиво на тему поиска «включенного» LD_PRELOAD.
Читать дальше →
Total votes 67: ↑67 and ↓0+67
Comments9

Ретропоезд с паровозом

Reading time7 min
Views51K


Пока вы тут сидите, РЖД отлично продаёт билеты на ретропоезда. Это которые, натурально, с паровозом. Да, паровозы переживут многое, включая ядерную войну. Да, на нашем стратегическом резерве можно проехаться.



Итак, у нас ретропоезд «Рускеальский экспресс», который ходит по Карелии от города Сортавалы до горного парка Рускеала. Это 5 часов от Петербурга на важную туристическую точку.

А ещё кроме ретропоезда с нами поехали ретропассажиры. Точнее, студенты театрального колледжа, которые ставили иммерсивную постановку про коммунистов, перевозящих золото партии. Чем вынесли мозг немалому количеству пенсионеров.
Читать дальше →
Total votes 206: ↑198 and ↓8+190
Comments70

Книга «Minecraft. Программируй свой мир на Python. 2-е международное издание»

Reading time6 min
Views40K
У нас вышло переиздание книги, адресованной мальчикам и девочкам, которые любят играть в Minecraft в возрасте 11–15 лет.

image

Любишь играть в Minecraft? Тебе нравится узнавать новое и придумывать то, чего раньше не существовало? Хочешь построить собственный виртуальный мир, которому будут завидовать все друзья? Можно ли объединить Minecraft и программирование? Нужно! Теперь ты будешь не только играть и жить в удивительном мире Minecraft, но и научишься программировать на Python. Простые инструкции и советы помогут воплотить свои идеи в жизнь, построить дом и 3D-копировальную машину, найти сокровища и даже завести в своем «огороде» гигантские работающие часы. Прочитай эту книгу и превратись в настоящего демиурга, который способен создать свой мир и защитить его от инопланетян. Теперь на Python 3!
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments13

BudgetTracker — ещё один open-source инструмент для личного учета финансов

Reading time5 min
Views13K

Почему?


Несколько лет назад я заинтересовался получением пассивного дохода и решил попробовать инвестировать с помощью p2b-площадок. Через некоторое время стало заметно, что денежные средства оказались очень сильно фрагментированы по площадкам, банкам, долгам, и это затрудняло понимание ситуации. Я не мог ответить на два самых главных вопроса:
Сколько у меня денег?


Какой тренд? Я богатею, или беднею?


КДПВ

image

Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments15

Обход блокировок РКН с помощью DNSTap и BGP

Reading time10 min
Views59K


Тема довольно изъезжена, знаю. К примеру, есть отличная статья, но там рассматривается только IP-часть блоклиста. Мы же добавим еще и домены.


В связи с тем, что суды и РКН блокируют всё направо и налево, а провайдеры усиленно пытаются не попасть под штрафы, выписанные "Ревизорро" — сопутствующие потери от блокировок довольно велики. Да и среди "правомерно" заблокированных сайтов много полезных (привет, rutracker)


Я живу вне юрисдикции РКН, но на родине остались родители, родственники и друзья. Так что было решено придумать легкий для далеких от ИТ личностей способ обхода блокировок, желательно вовсе без их участия.


В этой заметке я не буду расписывать базовые сетевые вещи по шагам, а опишу общие принципы как можно реализовать эту схему. Так что знания как работает сеть вообще и в Linux в частности — must have.

Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments42

Чем проще задача, тем чаще я ошибаюсь

Reading time7 min
Views46K
image

Эта тривиальная задача возникла в один из пятничных дней и должна была занять 2-3 минуты времени. В общем, как всегда.

Коллега попросил поправить скрипт у него на сервере. Сделал, сдал ему и обронил ненароком: «Время спешит на 5 минут». Сервер его, пусть сам и разбирается с синхронизацией. Полчаса, час прошел, а он всё пыхтит и тихо матерится.

«Бестолочь! — подумал я, переключаясь в консоль сервера — ну ладно оторвусь ещё на пару минут.»

Смотрим, ntp, rdate, sdwdate не установлены, timesyncd отключен и не запущен.

# timedatectl
      Local time: Sun 2019-08-25 20:44:39 +03
  Universal time: Sun 2019-08-25 17:44:39 UTC
        RTC time: Sun 2019-08-25 17:39:52
       Time zone: Europe/Minsk (+03, +0300)
     NTP enabled: no
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

Здесь сразу отмечу, что аппаратное время верное: по нему будет легче ориентироваться дальше.

Отсюда и началась череда ошибок.
Читать дальше →
Total votes 93: ↑92 and ↓1+91
Comments37

Мозг + VPS за 30 рублей =?

Reading time10 min
Views39K
Как приятно, когда все необходимые мелочи под рукой: хорошо пишущая ручка и блокнот, заточенный карандаш, удобная мышка, пара лишних проводов и т.д. Эти незаметные штуки не обращают на себя внимания, но добавляют жизни комфорта. Такая же история с различными мобильными и десктопными приложениями: для длинных скриншотов, для уменьшения размера картинки, для подсчёта личных финансов, словари, переводчики, конверторы и т.д. А есть ли у вас такой VPS — который стоит недорого, всегда под рукой и приносит много пользы? Нет, не тот который у вас в компании, а свой, «карманный». Мы подумали, что без небольшого VPS в 2019 году как-то грустно, прямо как без привычной авторучки на лекции. А чего грустить? Лето же. Ну как лето. Лето айтишника: сидеть дома, пилить любимые проекты безо всякого сожаления. В общем, подумали и сделали.


Коммунизм наступил, товарищи
Читать дальше →
Total votes 74: ↑71 and ↓3+68
Comments174

Первые десять дней на пути от совы к жаворонку: сон, рацион, режим питания и нагрузка

Reading time10 min
Views25K
Режим дня, режим питания, рацион и физическая нагрузка — это четыре ключевых параметра здоровой жизни. С каждым из них я экспериментировал на протяжении последних трёх лет, учась на своём опыте и изучая чужой — наблюдения, исследования, научные данные и личный опыт других людей. Десять дней назад я решил активировать все четыре, в одночасье поменяв в своей жизни как я сплю, как я питаюсь и какую себе даю нагрузку.

  • 28 июля: вес — 80,5 кг, из них жировой ткани 14,9% и мышц 44,8%. Режим сна как таковой отсутствует.
  • 7 августа, 10 дней спустя: вес — 75,3 кг, из них жировой ткани 13% и мышц 45,8%. Каждый день ложусь спать в течение часа после заката.


Читать дальше →
Total votes 82: ↑39 and ↓43-4
Comments74

Разбираемся с пакетом Context в Golang

Reading time11 min
Views131K

image


Пакет context в Go полезен при взаимодействиях с API и медленными процессами, особенно в production-grade системах, которые занимаются веб-запросами. С его помощью можно уведомить горутины о необходимости завершить свою работу.


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


(Прим. пер.: Контекст используется во многих пакетах, например, в работе с Docker).

Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments5

Откуда этот конфиг? [Debian/Ubuntu]

Reading time3 min
Views27K

Цель этого поста: показать технику отладки в debian/ubuntu, связанную с "поиском первоисточника" в системном конфигурационном файле.


Тестовый пример: после долгих издевательств над tar.gz копией установленной ОС и после её восстановления и установки апдейтов мы получаем сообщение:


update-initramfs: Generating /boot/initrd.img-4.15.0-54-generic
W: initramfs-tools configuration sets RESUME=/dev/mapper/U1563304817I0-swap
W: but no matching swap device is available.
I: The initramfs will attempt to resume from /dev/dm-1
I: (/dev/mapper/foobar-swap)
I: Set the RESUME variable to override this.

Цель: понять, откуда это значение (U1563304817I0) пришло и как его правильно поменять. Это первый попавшийся пример, не особо интересный сам по себе, но удобный, чтобы показать практические методы работы с Linux.


Шаг номер 1: Откуда пришёл RESUME?

Читать дальше →
Total votes 58: ↑57 and ↓1+56
Comments24

Несколько малоизвестных возможностей docker-compose

Reading time5 min
Views29K

Во многих инструкциях с просторов интернета описывают некий минимум действий, и как следствие минимум команд и возможностей.


Я решил сделать некую подборку мало освещенных возможностей, особенностей. Статья не претендует на уникальность, это и мне, как памятка, и возможно некоторым падаванам поможет, начинающим свой путь с docker-compose.

Читать дальше →
Total votes 51: ↑49 and ↓2+47
Comments22
1

Information

Rating
Does not participate
Registered
Activity