Pull to refresh
57
-0.5
Игорь Овсянников @kamish721

Инфраструктурный разработчик

Send message

Observability. Часть 1, про логи

Level of difficultyEasy
Reading time15 min
Views5.8K

"Пираты журнального моря"

Автор — Игорь Овсянников, декабрь 2023 г. DevOps инженер в GFN.AM, преподаватель курса DevOps в OTUS.

Каждый раз, решая инцидент или аварию в инфраструктуре, я задумывался: а можно ли было это предусмотреть? Можно ли было быстрее узнать о проблеме, самостоятельно, а не от недовольных клиентов? Сейчас я считаю, что можно, с хорошо настроенным мониторингом и observability pipelines.

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

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

Добавляем в Go-проект конфигурацию на языке Terraform

Reading time10 min
Views4.8K

Конфигурирование приложений — это интересная тема. Мало того, что форматов конфигурации в сообществе инженеров много, ситуация осложняется тем, что выбор того или иного языка определяет, как вашим приложением будут пользоваться люди. Инженеры, которые будут выкладывать ваш бэкенд в абстрактную dev- или prod-среду, будут смотреть на ваше приложение как на чёрный ящик с одной лишь ручкой: механизмом настроек.

Я, как инженер, встречал удобные и не очень текстовые конфигурации: conf в Nginx, ini в systemd, JSON в VSCode… А также YAML. Он не стал новым словом в языках, но показал, какой красивой может быть конфигурация. Впрочем, сам по себе язык тупой как пробка: если вы попробуете писать на YAML что-то сложное, с переменными или циклами, то получится химера вроде Ansible. Или вроде манифестов Kubernetes, у которого диалект настолько переусложнён, что его приходится шаблонизировать с помощью Helm.

Да, как понятно из заголовка, я хочу поговорить про язык Terraform, но сначала…

Читать далее
Total votes 23: ↑22 and ↓1+21
Comments3

На пути к тестируемому инфраструктурному коду

Reading time6 min
Views4.3K

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

Сейчас я пишу больше инфраструктурного кода: утилиты бэкапов, скрипты мониторинга, Kubernetes-манифесты, Ansible-плейбуки, Terraform-модули, и, чуть не забыл, CI/CD. Иногда он бывает простым, иногда странным, но чаще — нетестируемым. Инфраструктурный код — это код в мешке: пока не запустишь — не узнаешь, что случится. В среднем я делаю 10—20 запусков пайплайна в Jenkins, чтобы довести код CI до рабочего состояния.

Ах да, не протестированный инфраструктурный код может быть просто опасным. В лучшем случае он может запуститься во всех окружениях и упасть во время сборки в production, в среднем — стереть бэкап или выдавать ложные показания в графане, в худшем — выдавать неконсистентный бэкап на протяжении полугода, пока вам не понадобится его восстановить.

Сейчас расскажу, как можно все эти беды свести к минимуму.

Давай! Ура, давай!
Total votes 23: ↑23 and ↓0+23
Comments2

Снижение тепловыделения ноутбука в 2022 году

Reading time10 min
Views51K

Однажды я купил ноутбук Dell, да не простой, а XPS, о котором мечтал давным-давно, и хотя это была не компактная 13”-14” модель, а 15”, это не помешало ему стать моей верной рабочей лошадкой. Спустя некоторое время ноутбук начал греться и шуметь вентиляторами, в том числе во время простоя. В какой-то момент он просто начал жарить мои штаны.

Как сделать так, чтобы ноутбук не грелся? В этой статье я расскажу про очевидные и подробно рассмотрю нестандартные способы решения.

Штаны Well Done
Total votes 36: ↑32 and ↓4+28
Comments74

Драма об одарённых детях, или Откуда растут ноги у выгорания молодых кадров

Reading time8 min
Views23K

Много ли среди ваших знакомых выдающихся в юности личностей? Я помню, как моя подруга детства В. получала четвёрки и пятёрки по большинству дисциплин, делая «домашку» на переменах, ходила на олимпиады, а в классе была душой компании. Однажды она перешагнула через класс. Поступила в хороший ветеринарный институт. Все её называли «чудом». Спустя полтора года после выпуска она попала в психиатрический стационар с депрессией и расцарапанными руками. Сегодня она учится жить заново уже без звания «чуда».

Другая история: мой близкий человек Л. пошла в школу в 5 лет, училась отменно, без проблем запоминала стихи, обладала фотографической памятью, едва не перешагнула через класс. Все только и говорили, «какой колоссальный у неё потенциал». Спустя год после выпуска Л. вылетела из одного колледжа, потом из второго. На частных курсах и мастер-классах она постоянно выгорает, сейчас обучение даётся ей с непосильным трудом.

Ещё я помню, как Игорь учился на «отлично» почти по всем предметам (кроме, пожалуй, физкультуры), как школа отправляла его на олимпиады по информатике, а вне уроков он преуспевал на различных кружках. Конечно, он не всегда интересовался тем или иным занятием, но если что-то захватывало его, то он захватывал это в ответ. При этом его хвалили учителя, а родители называли «талантливым». Спустя несколько лет после выпускного Игоря, возможно, ещё можно назвать талантливым специалистом, но в нём нет прежней энергии. Он не интересуется новыми науками, разочаровывается во всём, за что берётся, с трудом сосредотачивается, и вообще вымотан.

Читать далее
Total votes 69: ↑61 and ↓8+53
Comments79

Автоматизируем деплой в vCloud с помощью Terraform и cloud-init

Reading time8 min
Views16K

Предыстория: выбирали сертифицированное облако для всякой там сертифицированной жизни. Остановились на кое-каком B2B-колоссе, руководство заключило договор, и отделу SRE пришлось работать с облаком на основе VMware vCloud Director. И, как подобает секте свидетелей Infrastructure as Code, хотелось поменьше сидеть в веб-морде облака и больше -- в конфигурациях какого-нибудь Ansible и Terraform.
Эта статья - плод нескольких вечеров девопсера и бог знает скольких дней и ночей CTO. По горячим следам, поэтому, возможно, она несколько скомканная. Тем не менее, если вы столкнулись с облаком на основе vCloud - будет интересно.

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments8

Психиатрия и ментальное здоровье для обречённых

Reading time7 min
Views6.8K

Я не буду писать про менталки и выгорание.
Я не буду писать про менталки и выгорание.
Я не буду писать про менталки и выгорание.

Привет. Так получилось, что я хорошо знаком с темой психиатрии: знаю разных обладателей mental health issues, посещаю тематические мероприятия, встречался одно время с носителей ментального заболевания, и так далее.

Вообще, я могу часами рассказывать психических расстройствах, (и, возможно, однажды стащу минут сорок или даже час на какой-нибудь конференции про soft skills), однако в данном материале буду рассказывать про лечение и только про лечение.

Переживали ли вы выгорание или депрессивный эпизод? Страдаете ли от "менталки"? Считаете, что пнд -- не только сокращение от "понедельник"? Если "да", то я не уверен, что вам будет интересно -- вы и так всё знаете. Так или иначе, я постарался сделать этот материал максимально информативным.

Читать далее
Total votes 15: ↑11 and ↓4+7
Comments19

Как IT-комьюнити игроков развивало экосистему MMO-игры

Reading time8 min
Views8K

Существует немало игр, которые сообщество регулярно поддерживает модификациями. Для нежно любимой мной Fallout: New Vegas, модификации выходят и спустя шесть лет после окончания поддержки. Для каких-то других игр (привет, EVE!), люди ведут “гугловые” таблички, а для еще одних — просто пишут подробные гайды или рисуют небольшие схемы.

Я же расскажу вам про игру, ради которой в сообществе делают всё вышеперечисленное и даже больше, об Elite: Dangerous.

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments4

Тестирование Kotlin/JS: фреймворки, корутины и все-все-все

Reading time6 min
Views3.8K

Kotlin - блестящий проект. Изначально задуманный как просто JVM-язык, впоследствии он получил поддержку компиляции под все мейнстримные платформы, среди которых -- JavaScript.

Вводная. У меня есть пет-проект -- сайт и API-платформа для комьюнити по игре Elite: Dangerous. Бэкенд - на Kotlin/JVM (Ktor+Hibernate), фронтенд - на Kotlin/JS (KVision+Fomantic UI). О пет-проекте я расскажу как-нибудь потом, а о фронте поподобрнее.

KVision - веб-фреймворк для Kotlin, объединяющий в себе идеи из различных десктопных фреймворков (от Swing и JavaFX до WinForms и Flutter) и синтаксические возможности Kotlin, например, DSL-билдеры.

Fomantic-UI - форк Semantic-UI, компонентного веб-фреймворка для HTML/JS, который можно сравнить с Bootstrap, только Fomantic будет поинтереснее.

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

И, как подобается open source проекту, я планировал покрыть библиотеку тестами. Вот об этом приключении и будет эта статья.

Читать далее
Total votes 6: ↑5 and ↓1+4
Comments2

systemd десять лет спустя. Историческая и техническая ретроспектива

Reading time18 min
Views49K
Десять лет назад был анонсирован systemd, который устроил революцию в управлении системой дистрибутивов Linux, тем самым разделив пользователей Linux на несколько лагерей. Качество и природа дебатов не сильно улучшилась со времён пламенных войн 2012-2014 годов, и systemd всё ещё остаётся не до конца понятым и изученным инструментом и с технической, и с общественной стороны, несмотря на пристальное внимание к нему сообщества.

Это пост не совсем о том, как пользоваться systemd. Тут, скорее, будет говориться об истории его возникновения, о его компонентах в целом, и о том, как понять систему, которая начиналось как просто PID 1 и стала тем, что я бы назвал middleware современного дистрибутива Linux.

А может, это просто набор крайне вольных переводов различных материалов с блогов, каналов и статей на Arch wiki. Вам решать.

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

Но прежде чем начать речь о systemd, хочу рассказать об init.
Читать дальше →
Total votes 97: ↑95 and ↓2+93
Comments438

Сравнение малопопулярных и не очень CLI-библиотек: cliff, plac, plumbum и другие (часть 2)

Reading time12 min
Views4K
В экосистеме Python существует множество пакетов для CLI-приложений, как популярных, вроде Click, так и не очень. Наиболее распространённые были рассмотрены в предыдущей статье, здесь же будут показаны малоизвестные, но не менее интересные.


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

Сравнение популярных CLI-библиотек для Python: click, cement, fire и другие

Reading time13 min
Views28K


Python — отличный язык для консольных приложений, и это подчёркивает большое количество библиотек для этих задач. Но какие вообще библиотеки существуют? А какую лучше взять? В этом материале сравниваются популярные и не очень инструменты для консольного мира и дана попытка ответить на второй вопрос.

Для удобства чтения обзор разделён на два поста: в первом сравнивается шесть самых популярных библиотек, во втором — менее популярные и более специфичные, но всё же заслуживающие внимания.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments7

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity