Pull to refresh
2
0
Евгений Игнатов @Merifri

DevOps/SysAdm

Send message

Сарказм, ежи и неформалы: какими были первые российские веб-комиксы? Часть 1

Level of difficultyEasy
Reading time10 min
Views9.6K

Мы уже рассказывали, что интернет-комиксы зародились в середине 1980-х годов. В Рунете они появились позже: первые эксперименты начались в середине нулевых, а сколько-то массовым и заметным явлением они стали только к концу 2000-х. Ныне русскоязычных веб-комиксов бесчисленное множество на любой вкус и цвет, но на заре появления их можно было пересчитать по пальцам. Зато их активно репостили и бурно обсуждали в ЖЖ и зарождавшихся соцсетях, и без них нашу сеть тех лет было трудно представить. С тех пор прошло уже немало лет, но многие из них остались в сердцах олдов. Освежим же воспоминания — или узнаем, чем развлекали себя бронтозавры-миллениалы в золотой век Рунета!
Читать дальше →
Total votes 57: ↑54 and ↓3+51
Comments9

Лучшие вопросы средней сложности по SQL на собеседовании аналитика данных

Reading time14 min
Views86K
Первые 70% курса по SQL кажутся довольно простыми. Сложности начинаются на остальных 30%.

С 2015 по 2019 годы я прошёл четыре цикла собеседований на должность аналитика данных и специалиста по анализу данных в более чем десятке компаний. После очередного неудачного интервью в 2017 году — когда я запутался в сложных вопросах по SQL — я начал составлять задачник с вопросами по SQL средней и высокой сложности, чтобы лучше готовиться к собеседованиям. Этот справочник очень пригодился в последнем цикле собеседований 2019 года. За последний год я поделился этим руководством с парой друзей, а благодаря дополнительному свободному времени из-за пандемии отшлифовал его — и составил этот документ.

Есть множество отличных руководств по SQL для начинающих. Мои любимые — это интерактивные курсы Codecademy по SQL и Select Star SQL от Цзы Чон Као. Но в реальности первые 70% из курса SQL довольно просты, а настоящие сложности начинаются в остальных 30%, которые не освещаются в руководствах для начинающих. Так вот, на собеседованиях для аналитиков данных и специалистов по анализу данных в технологических компаниях часто задают вопросы именно по этим 30%.

Удивительно, но я не нашёл исчерпывающего источника по таким вопросам среднего уровня сложности, поэтому составил данное руководство.
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments17

Knative — платформа как услуга на основе k8s с поддержкой serverless

Reading time6 min
Views12K


Доминирующей платформой для развертывания контейнеров, несомненно, стал Kubernetes. Он предоставляет возможность управлять практически всем, используя свои API и пользовательские контроллеры, расширяющие его API посредством пользовательских ресурсов.


Тем не менее пользователь все еще должен принимать подробные решения о том, как именно разворачивать, настраивать, управлять и масштабировать приложения. На усмотрение пользователя остаются вопросы масштабирования приложения, защиты, прохождения трафика. Этим Kubernetes отличается от обычных "платформ как услуга" (PaaS), к примеру Cloud Foundry и Heroku.


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

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

Шпионим за вашими программами с помощью Strace

Reading time1 min
Views9.3K
Не смогли пройти мимо и перевели ко Дню программиста комикс Джулии Эванс об утилите Strace. Полезный инструмент, который помогает отслеживать системные вызовы и доставку сигналов между процессами и ядром Linux. Читайте и вдохновляйтесь. С наступающим, друзья!



Читать дальше →
Total votes 34: ↑28 and ↓6+22
Comments4

Buildbot в примерах

Reading time19 min
Views4.2K

Потребовалось мне настроить процесс сборки и доставки на сайт пакетов программ из Git-репозитария. И увидев, ни так давно, тут на Хабре статью по buildbot (ссылка в конце) решил для этого попробовать его и применить.


Так как buildbot — это распределённая система, то будет логичным под каждую архитектуру и операционку сделать отдельный сборочный хост. В нашем случае это будут LXC-контейнеры (в случае linux) и qemu (в случае windows):


  • vm-srv-build1 — centos 7, тут будет buildbot мастер (master) и один из рабочих (worker)
  • vm-srv-build2 — debian 10, для сборки DEB пакетов
  • vm-srv-build3 — windows 10, для сборки, сами понимаете, под что

Собирать будем Rac GUI — графическая морда к 1С rac для управления кластером серверов. Под линукс будут использоваться штатные средства под каждую ОС, для сборки exe-файла под windows из tcl-скрипта используется freewrap.

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

Как работать с Postgres в Go: практики, особенности, нюансы

Reading time10 min
Views132K


Неожиданное поведение приложения в отношении работы с базой приводит к войне между DBA и разработчиками: DBA кричат: «Ваше приложение роняет базу», разработчики — «Но ведь до этого всё работало!». Хуже всего, что DBA и разработчики не могут помочь друг другу: одни не знают про нюансы работы приложения и драйвера, другие не знают про особенности, связанные с инфраструктурой. Было бы неплохо такой ситуации избежать.


Надо понимать, часто недостаточно полистать go-database-sql.org. Лучше вооружиться чужим опытом. Еще лучше, если это будет опыт, полученный кровью и потерянными деньгами.

Total votes 76: ↑73 and ↓3+70
Comments29

Автомасштабирование и управление ресурсами в Kubernetes (обзор и видео доклада)

Reading time8 min
Views18K
27 апреля на конференции Стачка-2019, в рамках секции «DevOps», прозвучал доклад «Автомасштабирование и управление ресурсами в Kubernetes». В нём рассказывается о том, как с помощью K8s обеспечить высокую доступность приложений и гарантировать их максимальную производительность.



По традиции рады представить видео с докладом (44 минуты, гораздо информативнее статьи) и основную выжимку в текстовом виде. Поехали!
Читать дальше →
Total votes 46: ↑44 and ↓2+42
Comments21

Сeph — от «на коленке» до «production» часть 2

Reading time8 min
Views9.7K

(первая часть тут: https://habr.com/ru/post/456446/)


CEPH


Введение


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

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

Построение и эксплуатация отказоустойчивой anycast-сети

Reading time18 min
Views11K
Привет, Хабр! Ниже следует транскрипция доклада Евгения error2407 Богомазова (сетевой R&D инженер) и Дмитрия h8r Шемонаева (глава NOC) с прошедшего UPTIMEDAY. Видео в конце поста.


Сегодня мы бы хотели рассказать о том, какие проблемы возникают при построении сети anycast. Зачем мы полезли в это и чем там занимаемся.
Total votes 38: ↑37 and ↓1+36
Comments1

Знакомство с виртуальными интерфейсами Linux: туннели

Reading time8 min
Views45K
Linux поддерживает множество видов туннелей. Это запутывает новичков, которым бывает сложно разобраться в различиях технологий, и понять то, каким туннелем лучше воспользоваться в конкретной ситуации. В материале, перевод которого мы сегодня публикуем, будет дан краткий обзор часто используемых туннельных интерфейсов ядра Linux. Сильно углубляться в эту тему мы не будем, рассмотрев лишь общие особенности туннелей и варианты их использования в Linux.



Автор этого материала полагает, что то, о чём пойдёт здесь речь, может быть интересно всем, кто имеет какое-то отношение к управлению компьютерными сетями. Список туннельных интерфейсов, а также справочные сведения о конкретной конфигурации можно получить с помощью iproute2-команды ip link help.

Здесь будут рассмотрены следующие часто используемые интерфейсы: IPIP, SIT, ip6tnl, VTI и VTI6, GRE и GRETAP, GRE6 и GRE6TAP, FOU, GUE, GENEVE, ERSPAN и IP6ERSPAN.

Прочитав эту статью, вы узнаете об особенностях этих интерфейсов и выясните различия между ними. Вы научитесь их создавать и узнаете о ситуациях, в которых их лучше всего использовать.
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments0

Мелкая питонячая радость #9: консольные приложения с человеческим лицом

Reading time3 min
Views15K

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


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


Сегодня мы поговорим о том, как сделать лучше программы, на которые большинству плевать — одноразовые консольные утилитки и скрипты.


image

Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments7

Kubernetes tips and tricks: как повысить продуктивность

Reading time2 min
Views6.2K


Kubectl — это эффективный инструмент командной строки Kubernetes и для Kubernetes, пользуемся мы им ежедневно. У него много функций, и с ним можно развертывать систему Kubernetes или его базовые фичи.


Вот вам полезные советы, как быстрее кодить и деплоить в Kubernetes.

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

Как начать использовать User Mode в Linux

Reading time17 min
Views20K
Вступление от переводчика: На фоне массового входа в нашу жизнь различного рода контейнеров может быть довольно интересно и полезно узнать, с каких технологий это всё начиналось когда-то. Некоторые из них можно с пользой применять и по сей день, но не все о таких способах помнят (или знают, если не застали во время их бурного развития). Одной из таких технологий является User Mode Linux. Автор оригинала изрядно покопалась, разбираясь, что из старых наработок ещё работает, а что уже не очень, и собрала нечто вроде пошаговой инструкции о том, как самому себе завести доморощенный UML в 2к19. И да, мы пригласили на Хабр автора оригинального поста Cadey, так что если есть вопросы — задавайте на английском в комментариях.

image

User Mode в Linux — это, фактически, порт ядра Linux на само себя. Этот режим позволяет запустить полноценное ядро Linux в качестве пользовательского процесса и обычно используется разработчиками для тестирования драйверов. Но также этот режим полезен и в качестве инструмента общей изоляции, принцип которой схож с работой виртуальных машин. Данный режим обеспечивают большую изоляцию, чем Docker, но меньшую, чем полноценная виртуальная машина вроде KVM или Virtual Box.
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments14

Создаю глобальную базу знаний по элементам питания

Reading time2 min
Views27K
Тестирую элементы питания на профессиональном оборудовании. Цель охватить большую часть рынка элементов питания Европы и России.

На данный момент протестированы более 230 аккумуляторов и батареек. Сделано более 1000 тестов. Израсходовано 4 ящика батареек и несколько месяцев жизни.

Результатом проделанной работы стала база знаний по аккумуляторам и батарейкам. Под катом рассказываю почему я решил создать базу знаний и как это было сделано.


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

Настройка параметров ядра Linux для оптимизации PostgreSQL

Reading time9 min
Views42K
Оптимальная производительность PostgreSQL зависит от правильно определенных параметров операционной системы. Плохо настроенные параметры ядра ОС могут привести к снижению производительности сервера базы данных. Поэтому обязательно, чтобы эти параметры были настроены в соответствии с сервером базы данных и его рабочей нагрузкой. В этом посте мы обсудим некоторые важные параметры ядра Linux, которые могут повлиять на производительность сервера базы данных и способы их настройки.

SHMMAX / SHMALL


SHMMAX — это параметр ядра, используемый для определения максимального размера одного сегмента разделяемой памяти (shared memory), который может выделить процесс Linux. До версии 9.2 PostgreSQL использовал System V (SysV), для которой требуется настройка SHMMAX. После 9.2 PostgreSQL переключился на разделяемую память POSIX. Так что теперь требуется меньше байтов разделяемой памяти System V.

До версии 9.3 SHMMAX был наиболее важным параметром ядра. Значение SHMMAX задается в байтах.
Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments26

Знакомство с Python для камрадов, переросших «язык A vs. язык B» и другие предрассудки

Reading time17 min
Views42K

Для всех хабравчан, у которых возникло ощущение дежавю: Написать этот пост меня побудили статья "Введение в Python" и комментарии к ней. К сожалению, качество этого "введения" кхм… не будем о грустном. Но ещё грустнее было наблюдать склоки в комментариях, из разряда "C++ быстрее Python", "Rust ещё быстрее C++", "Python не нужен" и т.д. Удивительно, что не вспомнили Ruby!


Как сказал Бьярн Страуструп,


«Есть всего два типа языков программирования: те, на которые люди всё время ругаются, и те, которые никто не использует».

Добро пожаловать под кат всем, кто хотел бы познакомиться с Python, не опускаясь при этом до грязных ругательств!

Читать дальше →
Total votes 88: ↑83 and ↓5+78
Comments146

Be a security ninja: secret level

Reading time2 min
Views15K


Информационная безопасность — одна из дисциплин, набирающих бешеную популярность в последние годы. Мы решили помочь всем желающим и организовали цикл бесплатных вебинаров по ИБ. Сегодня мы публикуем видеозаписи заключительного цикла вебинаров, посвященных практической информационной безопасности.
Total votes 35: ↑32 and ↓3+29
Comments0

Использование Ansible, Terraform, Docker, Consul, Nomad в облаках (Алексей Вахов, Учи.ру)

Reading time10 min
Views14K

Эта статья расшифровка видеодоклада Алексея Вахова из Учи.ру «Облака в облаках»


Учи.ру — онлайн-платформа для школьного образования, более 2 миллионов школьников, регулярно решают у нас интерактивные занятия. Все наши проекты хостятся полностью в публичных облаках, 100% приложений работают в контейнерах, начиная от самых маленьких, для внутреннего пользования, и заканчивая крупными продакшенами на 1k+ запросов в секунду. Так получилось, что у нас 15 изолированных докер-кластеров (не Kubernetes, sic!) в пяти облачных провайдерах. Полторы сотни пользовательских приложений, количество которых постоянно растет.


Я буду рассказывать очень конкретные вещи: как мы переходили на контейнеры, как управляемся с инфраструктурой, проблемы с которыми столкнулись, что заработало, а что нет.


В процессе доклада мы обсудим:


  • Мотивацию выбора технологий и особенности бизнеса
  • Инструменты: Ansible, Terraform, Docker, Github Flow, Consul, Nomad, Prometheus, Shaman — web-интерфейс для Nomad.
  • Использовании федерации кластеров для управления распределенной инфраструктурой
  • NoOps выкатки, тестовые окружения, схемы приложения (практически все изменения девелоперы делают самостоятельно)
  • Занимательные истории из практики


Кому интересно, прошу под кат.

Total votes 18: ↑17 and ↓1+16
Comments3

Network tools, или с чего начать пентестеру?

Reading time9 min
Views42K
Toolkit начинающего пентестера: представляем краткий дайджест главных инструментов, которые пригодятся при пентесте внутренней сети. Эти инструменты уже активно используются широким кругом специалистов, поэтому знать об их возможностях и владеть в совершенстве будет полезно каждому.


Читать дальше →
Total votes 40: ↑37 and ↓3+34
Comments6

Топ ошибок со стороны разработки при работе с PostgreSQL

Reading time21 min
Views48K
HighLoad++ существует давно, и про работу с PostgreSQL мы говорим регулярно. Но у разработчиков все равно из месяца в месяц, из года в год возникают одни и те же проблемы. Когда в маленьких компаниях без DBA в штате случаются ошибки в работе с базами данных, в этом нет ничего удивительного. В крупных компаниях тоже нужны БД, и даже при отлаженных процессах все равно случаются ошибки, и базы падают. Неважно, какого размера компания — ошибки все равно бывают, БД периодически обваливаются, рушатся.



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


О спикере: Алексей Лесовский (lesovsky) начинал системным администратором Linux. От задач виртуализации и систем мониторинга постепенно пришел к PostgreSQL. Сейчас PostgreSQL DBA в Data Egret — консалтинговой компании, которая работает с большим количеством разных проектов и видит много примеров повторяющихся проблем. Это ссылка на презентацию доклада на HighLoad++ 2018.
Читать дальше →
Total votes 79: ↑77 and ↓2+75
Comments8
1
23 ...

Information

Rating
Does not participate
Location
Ростов-на-Дону, Ростовская обл., Россия
Date of birth
Registered
Activity

Specialization

System Administration, DevOps
Lead
From 500,000 ₽
Git
Python
Linux
Docker
Nginx
Database
Bash
High-loaded systems
Kubernetes
CI/CD