Pull to refresh
23
0
Илья Рубинчик @citius

DevOps инженер

Send message

Как создавать Kubernetes секреты из Vault, используя external-secrets-operator

Reading time6 min
Views8K

Бывают случаи, когда инженеры хранят секретные данные, ключи, токены в открытом виде или в переменных Gitlab. В Kubernetes для хранения данных, которые нежелательно показывать широкому кругу лиц, предусмотрены секреты.

В этой статье предлагаю рассмотреть безопасный способ передавать, синхронизировать, интегрировать секреты напрямую из Vault в Kubernetes – с помощью метода аутентификации AppRole, используя external-secrets-operator.

Читать далее
Total votes 18: ↑16 and ↓2+14
Comments13

Механические клавиатуры 2023. Продолжение

Reading time29 min
Views32K

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

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

Моя первая NFT-коллекция на Solidity + Hardhat — «Сизифов Труд»

Reading time6 min
Views27K

На момент написания статьи я работаю Frontend-разработчиком в VK (Delivery Club) на Vue и плавно перехожу на iOS-разработку. Уже около 4 лет считаю себя поверхностно приближенным к сфере крипты: участвовал в разработке P2P-платформы (BTC-обменника), изучал основы и идеологию, инвестировал, терял деньги на фьючерсах — все, как надо.

Однажды, по интернету стала расходиться новость о том, что 12-летний мальчик заработал ~$350,000 на коллекции программно-сгенерированных китов, состоящей из 3350 уникальных айтемов.

Так мне пришла мысль внести свою лепту. К тому же, как показывает практика, это потенциальный способ заработка в наше время :)

Читать далее
Total votes 36: ↑32 and ↓4+28
Comments50

Не так страшен Rust, как его излагают

Reading time5 min
Views26K

Последние годы часто хвалят язык программирования Rust. Однако, без изучения синтаксиса и особенностей языка в нём сложно разобраться. Честно говоря, при первом просмотре дальше простых примеров я продвинуться не смог. Вроде догадываешься, что тут указываем тип переменных, амперсанд – это вроде “я только посмотреть”, но всё равно код складывался в некую мешанину иероглифов с кучей скобок и, на первый взгляд, случайно проставленных точек с запятыми. То ли дело Python, минимализм синтаксиса которого так привлекателен для неокрепших душ. Однако, так ли сложен Rust на самом деле или это миф? 

Я предположил, что те базовые знания по программированию, которые предлагают распространенные курсы можно дать и с помощью Rust.

Так ли это?
Total votes 51: ↑42 and ↓9+33
Comments123

Terraform-модуль для инициализации Vault

Reading time6 min
Views4.1K

При настройке CI/CD для приложений мы в компании, как правило, используем Vault от HashiCorp. К тому же сами приложения зачастую используют Vault для хранения секретных данных. Но для того, чтобы начать использовать Vault, сначала необходимо произвести его настройку. Раньше нам приходилось вручную производить подобные манипуляции для каждого проекта, что отнимало немало времени. Найти готовый модуль, который подошел бы нам, не удалось. Поэтому мы написали свой terraform-модуль, который позволяет автоматизировать данный процесс.

На текущий момент созданный нами terraform-модуль покрывает все наши требования, но в дальнейшем он будет дорабатываться. Модуль позволяет создавать политики доступа и хранилища секретов, включать необходимые способы авторизации (certs, jwt, oidc, kubernetes и т.д.), создавать токены, jwt/oidc/token-роли и идентификационные группы. Также при помощи него можно генерировать TLS-сертификаты и jwt ключи в определенной директории.

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

Проверка состояния кластера kubernetes

Reading time4 min
Views12K

Итак, вы наконец-то стали счастливым обладателем k8s-кластера: получили его в наследство, в подарок на Новый год, заказали в DataLine) и т. п. У новых клиентов и даже у опытных пользователей часто возникает вопрос, как оценить кластер и проверить его работоспособность? 

В ответ мы написали этот мануал: при выполнении всех пунктов можно закрыть 95% вопросов о состоянии здоровья кластера. Поскольку проверка такой многокомпонентной системы может стать нетривиальной задачей, подойдем к процессу как можно проще.

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

Основные инструменты Kubernetes в 2021 году

Reading time21 min
Views25K

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

В основе этого списка — мой личный опыт, и чтобы избежать предвзятости, я расскажу и об альтернативных инструментах, чтобы вы могли всё сравнить и принять решение, исходя из своих потребностей. Постараюсь дать информацию сжато и привести источники, чтобы при желании вы могли изучить всё самостоятельно. Описывая инструменты для различных задач разработки ПО, я хотел ответить на вопрос: «Как я могу сделать X в Kubernetes?»

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

Учимся разворачивать микросервисы. Часть 3. Helm

Reading time21 min
Views68K


Привет, Хабр!


Это третья часть в серии статей "Учимся разворачивать микросервисы", и сегодня речь пойдет о Helm 3. В прошлой части мы создали Kubernetes конфигурацию для учебного проекта из 2 микросервисов (бекенда и шлюза) и задеплоили все это в Google Kubernetes Engine. В этой статье мы напишем Helm-чарт для нашей системы, создадим для него репозиторий на основе GitHub Pages и задеплоим проект в GKE с помощью Helm.

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

Если вы решили перейти с PHP на Python, то к чему следует подготовиться

Reading time14 min
Views190K
Думали ли вы когда-нибудь о том, что однажды слишком быстро втянулись в веб-программирование на PHP? И вот уже прошло много лет, у вас хороший опыт, и вы не думаете ни о каких других способах „делать“ веб, кроме как на PHP. Может быть, у вас возникают сомнения в правильности выбора, однако непонятно, как найти способ быстро его проверить. А хочется примеров, хочется знать, как изменятся конкретные аспекты деятельности.

Сегодня я попробую ответить на вопрос: «А что если вместо PHP писать на Python?».

Сам я долгое время задавался этим вопросом. Я писал на PHP 11 лет и даже являюсь сертифицированным специалистом. Я научился его «готовить» так, чтобы он работал в точности, как мне надо. И когда я в очередной раз читал на Хабре перевод статьи о том, как всё в PHP плохо, я просто недоумевал. Однако подвернулся случай пересесть на Ruby, а потом и на Python. На последнем я и остановился, и теперь попробую рассказать вам PHP-шникам, как нам питонистам живётся.


Python с точки зрения PHP-программиста...
Total votes 122: ↑116 and ↓6+110
Comments205

Почему Wi-Fi не будет работать, как планировалось, и зачем знать, каким телефоном пользуется сотрудник

Reading time15 min
Views161K


Привет!

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

Для разминки — небольшая задачка. Представьте себе беспроводную сеть Wi-Fi, состоящую из точки доступа (AP) и двух одинаковых клиентских устройств (STA1 и STA2).

Читаем надписи на коробках:
AP: 1733,3 Мбит/c
STA1, STA2: 866,7 Мбит/c

Внимание, вопрос. Оба клиента одновременно начинают загружать с сервера большой файл. На какую пропускную способность может рассчитывать каждое из устройств?
Читать дальше →
Total votes 61: ↑61 and ↓0+61
Comments69

Работа с PostgreSQL: настройка и масштабирование. 5-е издание

Reading time1 min
Views16K


Добрый день, хаброжители. Прошло много времени с выпуска 4 версии книги по PostgreSQL — успела выйти версия 9.5 и 9.6 этой замечательной базы данных. Материалов по практическому использованию этой БД также накопилось немало, поэтому я решил выпустить обновление по книге. Итак, встречайте:«Работа с PostgreSQL: настройка и масштабирование», 5-е издание.

Читать дальше →
Total votes 51: ↑48 and ↓3+45
Comments11

Ansible: настраиваем zsh терминал с antigen, autosuggestions, fzf и красивым prompt одной командой

Reading time6 min
Views46K

Я провожу в терминале много времени, поэтому хочется, чтобы все было красиво, быстро и удобно. Из этого рождается постоянное желание его настраивать, пробовать разные плагины. Шеллом я выбрал для себя zsh лет 5 назад, пару лет назад нашел oh-my-zsh для его удобной настройки.


Со временем к этому конфигу добавились некоторые сбоку торчащие части в виде powerline и percol.


Недавно я решил пересобрать все так, чтобы избавиться от ненужных плагинов, добавить нужные, сделать легкую установку и обновление. В итоге появилась роль ansible-role-zsh, которая полностью настраивает терминалы на локалке и на моих серверах.


Особенности:


  • устанавливается одной командой (кроме шрифта и темы вашего терминального клиента)
  • быстро загружается, быстро работает
  • полностью настраивается через ansible, ~/.zshrc
  • полностью локальная (в систему ничего не ставится, все хранится в ~/.oh-my-zsh)
  • оставляет возможность юзеру вносить свои настройки через ~/.zshrc.local
  • одинаково работает на macOS, старом Debian, Ubuntu, CentOS
  • нормально выглядит на разных цветовых схемах (но лучше всего на Solarized Dark)
  • встроенная подсветка синтаксиса (помогает реже ошибаться и лучше читать длинные команды)
  • автодополнение по истории команд (помогает реже нажимать Ctrl+R)
  • отображение времени для долго выполняемых команд (помогает реже использовать time)

Демонстрация фич за 1 минуту:


Читать дальше →
Total votes 28: ↑26 and ↓2+24
Comments20

Строим свое собственное отказоустойчивое облако на базе OpenNebula с Ceph, MariaDB Galera Cluster и OpenvSwitch

Reading time20 min
Views108K


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


Темы сами по себе очень интересные, так что даже если вас не интересует конечная цель, но интересует настройка какого-нибудь отдельного компонента. Милости прошу под кат.
Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments20

Знакомство с хранилищем Ceph в картинках

Reading time11 min
Views280K
Облачные файловые хранилища продолжают набирать популярность, и требования к ним продолжают расти. Современные системы уже не в состоянии полностью удовлетворить все эти требования без значительных затрат ресурсов на поддержку и масштабирование этих систем. Под системой я подразумеваю кластер с тем или иным уровнем доступа к данным. Для пользователя важна надежность хранения и высокая доступность, чтобы файлы можно было всегда легко и быстро получить, а риск потери данных стремился к нулю. В свою очередь для поставщиков и администраторов таких хранилищ важна простота поддержки, масштабируемость и низкая стоимость аппаратных и программных компонентов.

Знакомьтесь: Ceph


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



При выходе любого диска, узла или группы узлов из строя Ceph не только обеспечит сохранность данных, но и сам восстановит утраченные копии на других узлах до тех пор, пока вышедшие из строя узлы или диски не заменят на рабочие. При этом ребилд происходит без секунды простоя и прозрачно для клиентов.
Читать дальше →
Total votes 44: ↑42 and ↓2+40
Comments67

CEPH-кластер: хронология работ по апгрейду нашего файлового хранилища на новую архитектуру (56Gb/s IB)

Reading time10 min
Views22K


Запустив наше облако, мы стали предоставлять сервис хранения, аналогичный S3 Амазона (с совместимым API, чтобы российские заказчики могли использовать стандартные клиенты для работы с S3, изменив только endpoint для подключения). Основная задача сервиса — хранение снапшотов виртуальных машин и различных файлов клиентов. Амазон был взят за образец, куда надо развиваться, и в начале 2014 года стало понятно, что имеющееся файловое хранилище устарело, заказчики требовали современных фичей, недоступных у нас и так нравящихся им у AWS. Но доработка существующего решения светила огромными трудозатратами, поэтому было принято решение построить новое S3-совместимое хранилище с нуля.

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

Это было чертовски долго, но всё прошло спокойно.
Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments44

Создание разделяемого хранилища на базе CEPH RBD и GFS2

Reading time8 min
Views15K
Большинство ПО кластерных систем предполагает наличие файловой системы доступной со всех узлов кластера. Эта файловая система используется для хранения ПО, данных, для организации работы некоторых кластерных подсистем и т.д. Требования на производительность такой FS могут сильно отличаться для разных задач, однако, чем она выше, тем считается, что кластер более устойчив и универсален. NFS сервер на мастер-узле является минимальным вариантом такой FS. Для больших кластеров NFS дополняется развертыванием LustreFS — высокопроизводительной специализированной распределенной файловой системы, использующей несколько серверов в качестве хранилища файлов и несколько метаинформационных серверов. Однако такая конфигурация обладает рядом свойств, которые сильно затрудняют работу с ней в случае, когда клиенты используют независимые виртуализированные кластера. В системе HPC HUB vSC для создания разделяемой FS используется широко известное решение CEPH и файловая система GFS2.
main
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments9

Масштабируемая конфигурация nginx

Reading time12 min
Views34K
Игорь Сысоев

Игорь Сысоев ( isysoev )


Меня зовут Игорь Сысоев, я автор nginx и сооснователь одноименной компании.

Мы продолжаем разработку open source. С момента основания компании темпы разработки существенно увеличились, поскольку над продуктом работает множество людей. В рамках open source мы оказываем платную поддержку.

Я буду говорить о масштабируемой конфигурации nginx, но это не о том, как обслужить с помощью nginx сотни тысяч одновременных соединений, потому что nginx для этого настраивать не надо. Нужно выставить адекватное число рабочих процессов или поставить его в режим «авто», поставить worker_connections в 100 000 соединений, после этого заниматься настройкой ядра — это гораздо более глобальная задача, чем просто настройка nginx. Поэтому я буду рассказывать о другой масштабируемости — о масштабируемости конфигурации nginx, т.е. о том, как обеспечить рост конфигурации от сотни строчек до нескольких тысяч и при этом тратить минимальное (желательно константное) время на сопровождение этой конфигурации.
Total votes 59: ↑57 and ↓2+55
Comments31

Подводные камни Bash

Reading time32 min
Views94K


В этой статье мы поговорим об ошибках, совершаемых программистами на Bash. Во всех приведённых примерах есть какие-то изъяны. Вам удастся избежать многих из нижеописанных ошибок, если вы всегда будете использовать кавычки и никогда не будете использовать разбиение на слова (wordsplitting)! Разбиение на слова — это ущербная легаси-практика, унаследованная из оболочки Bourne. Она применяется по умолчанию, если вы не заключаете подстановки (expansions) в кавычки. В общем, подавляющее большинство подводных камней так или иначе связаны с подстановкой без кавычек, что приводит к разбиению на слова и глоббингу (globbing) получившегося результата.


Читать дальше →
Total votes 143: ↑141 and ↓2+139
Comments63

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

Reading time6 min
Views28K
История эта приключилась с одним крупным брендом, работающий на внутреннем рынке не самой маленькой южной страны бывшего СССР, назовём его просто — БРЕНД.

— Сеть построена на Cisco с небольшими вкраплениями из свичей и серверов от HP. VPNы до штаб-квартиры и удалённых офисов;
— Интернет по собственному оптоволокну от одного из ведущих провайдеров столицы;
— ISDN-телефония от другой тоже весьма известной международной компании. На эти номера привязана реклама, так что отказаться от них нельзя!
— Собственный штат IT-специалистов у БРЕНДа небольшой и постоянно задействован в решении текущих задач, поэтому активно пользуется услугами IT-аутсорсинга;
— Ежемесячные траты БРЕНДа только на услуги связи составляют около 3000$, что является у нас весьма неплохим показателем и выводит в VIP, и вроде бы всё было хорошо, но вдруг приходит счёт сначала на 20K$, а потом еще на 40К$.
Читать дальше →
Total votes 47: ↑47 and ↓0+47
Comments57

Sandy/Ivy Bridge — антикризисный ноутбук на примере Lenovo ThinkPad T420

Reading time24 min
Views50K


В связи с продолжающимся ростом цен на иностранную валюту возникла проблема с покупкой ноутбука, те что раньше стоили 20-25, теперь стоят порядка 40 и более тысяч… При этом зарплаты у многих не только не выросли, но и поубавились даже, да и даже если и выросли у кого, то питание, проезд и прочие расходы довольно сильно выросли и продолжают расти…

Но потребность в мобильном компьютере никто не отменял. Причин может быть много — это и образ жизни и изменение взглядов на жизнь или же увлечений. Многим хочется достаточно быструю машину, чтобы и в ворде попечатать и по сайтам посёрфить без тормозов и чтобы аська со скайпом подмигивали своими сообщениями да и музычка приятная в фоне слух услаждала. Ну ничего ведь сверхъестественного, но как раз под такой минимальный набор потребностей отвечает ноутбук с ценником от 35 000-40 000 рублей…

И тут на сцену выходят они — старые железки 4-5 летней давности. Производительность которых в ряде сценариев даже превосходит новые ноутбуки. Да, у такого железа очень много недостатков и покупать такое это своего рода рулетка, может не повезти и все деньги выкинешь на ветер. Но если повезёт, то можно вполне реально сэкономить десятки тысяч! Ведь цена их начинается на момент написания статьи с отметки в 13 тысяч рублей.

Под катом я постараюсь описать особенности покупки такого железа, на что смотреть, как и чем тестировать, на что обращать внимание, а чем можно смело пренебречь.
перейти под кат...
Total votes 34: ↑23 and ↓11+12
Comments61

Information

Rating
4,274-th
Location
Израиль
Date of birth
Registered
Activity

Specialization

Specialist
Git
Golang
Linux
PostgreSQL
Docker
Kubernetes
CI/CD
Bash
High-loaded systems