Как стать автором
Обновить
23
Карма
0
Рейтинг
Илья Рубинчик @citius

DevOps инженер

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

Программирование *Rust *Учебный процесс в IT

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

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

Так ли это?
Всего голосов 51: ↑42 и ↓9 +33
Просмотры 20K
Комментарии 122

Используем GitLab в качестве удобного Helm-репозитория

Блог компании Флант Системное администрирование *DevOps *Kubernetes *
Туториал
✏️ Технотекст 2022

GitLab – это мощный и в то же время простой инструмент для организации проектов. Как и любой крупный и самодостаточный продукт, GitLab постоянно развивается и дорабатывается. И сегодня хотелось бы обсудить новый функционал, который пока ещё находится в разработке, но уже доступен для использования. Речь идёт о поддержке размещения Helm-чартов в GitLab Package Registry. Для простоты далее я буду называть его GitLab Helm repo.

Зачастую основой для описания инфраструктуры, запускаемой в Kubernetes, являются  Helm-чарты. Поэтому при работе команды инженеров с большим количеством проектов невольно приходят мысли о стандартизации подходов работы с этими чартами. С появлением GitLab 14.1 появилась возможность настраивать хранение общих чартов для всех проектов, с которыми ведется работа.

Читать далее
Всего голосов 35: ↑35 и ↓0 +35
Просмотры 8.2K
Комментарии 0

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

Блог компании Nixys Системное администрирование *DevOps *

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

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

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 2.4K
Комментарии 0

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

Блог компании DataLine IT-инфраструктура *DevOps *Kubernetes *

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

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

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 7.5K
Комментарии 0

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

Блог компании JUG Ru Group Системное администрирование *DevOps *Kubernetes *
Перевод

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

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

Читать далее
Всего голосов 40: ↑40 и ↓0 +40
Просмотры 21K
Комментарии 5

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

DevOps *Распределённые системы *Микросервисы *Kubernetes *
Туториал


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


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

Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 47K
Комментарии 0

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

Блог компании Lesta Studio Разработка веб-сайтов *PHP *Python *Программирование *
Думали ли вы когда-нибудь о том, что однажды слишком быстро втянулись в веб-программирование на PHP? И вот уже прошло много лет, у вас хороший опыт, и вы не думаете ни о каких других способах „делать“ веб, кроме как на PHP. Может быть, у вас возникают сомнения в правильности выбора, однако непонятно, как найти способ быстро его проверить. А хочется примеров, хочется знать, как изменятся конкретные аспекты деятельности.

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

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


Python с точки зрения PHP-программиста...
Всего голосов 122: ↑116 и ↓6 +110
Просмотры 187K
Комментарии 212

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

Блог компании CompTek Сетевые технологии *Беспроводные технологии *


Привет!

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

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

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

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

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

Администрирование баз данных *Хранение данных *Хранилища данных *DevOps *


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

Читать дальше →
Всего голосов 51: ↑48 и ↓3 +45
Просмотры 16K
Комментарии 11

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

Настройка Linux *Системное администрирование **nix *Оболочки *

Я провожу в терминале много времени, поэтому хочется, чтобы все было красиво, быстро и удобно. Из этого рождается постоянное желание его настраивать, пробовать разные плагины. Шеллом я выбрал для себя 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 минуту:


Читать дальше →
Всего голосов 28: ↑26 и ↓2 +24
Просмотры 43K
Комментарии 20

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

Системное администрирование **nix *Виртуализация *Облачные вычисления *Хранение данных *
Туториал


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


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

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

Децентрализованные сети *Системное администрирование *Облачные вычисления *SAN *Хранение данных *
Recovery mode
Облачные файловые хранилища продолжают набирать популярность, и требования к ним продолжают расти. Современные системы уже не в состоянии полностью удовлетворить все эти требования без значительных затрат ресурсов на поддержку и масштабирование этих систем. Под системой я подразумеваю кластер с тем или иным уровнем доступа к данным. Для пользователя важна надежность хранения и высокая доступность, чтобы файлы можно было всегда легко и быстро получить, а риск потери данных стремился к нулю. В свою очередь для поставщиков и администраторов таких хранилищ важна простота поддержки, масштабируемость и низкая стоимость аппаратных и программных компонентов.

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


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



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

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

Блог компании КРОК Высокая производительность *


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

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

Это было чертовски долго, но всё прошло спокойно.
Читать дальше →
Всего голосов 29: ↑26 и ↓3 +23
Просмотры 21K
Комментарии 51

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

Блог компании HPC HUB Высокая производительность *Open source *Big Data *Параллельное программирование *
Большинство ПО кластерных систем предполагает наличие файловой системы доступной со всех узлов кластера. Эта файловая система используется для хранения ПО, данных, для организации работы некоторых кластерных подсистем и т.д. Требования на производительность такой FS могут сильно отличаться для разных задач, однако, чем она выше, тем считается, что кластер более устойчив и универсален. NFS сервер на мастер-узле является минимальным вариантом такой FS. Для больших кластеров NFS дополняется развертыванием LustreFS — высокопроизводительной специализированной распределенной файловой системы, использующей несколько серверов в качестве хранилища файлов и несколько метаинформационных серверов. Однако такая конфигурация обладает рядом свойств, которые сильно затрудняют работу с ней в случае, когда клиенты используют независимые виртуализированные кластера. В системе HPC HUB vSC для создания разделяемой FS используется широко известное решение CEPH и файловая система GFS2.
main
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 13K
Комментарии 9

Скрипт удаления старых драйверов

Системное администрирование *PowerShell *
Сценарий к статье Павла Чубарова автоматизирующий удаление устаревших драйверов из папки C:\windows\system32\DriverStore\FileRepository.

При установке драйверов старые версии сохраняются в системе, данный скрипт удаляет все дубликаты кроме драйвера имеющего самую последнюю дату

Может кому пригодится.
Читать дальше →
Всего голосов 33: ↑31 и ↓2 +29
Просмотры 29K
Комментарии 74

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

Блог компании Конференции Олега Бунина (Онтико) Системное администрирование *Nginx *
Игорь Сысоев

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


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

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

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

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

Блог компании VK Совершенный код *IT-стандарты *Отладка *
Перевод


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


Читать дальше →
Всего голосов 143: ↑141 и ↓2 +139
Просмотры 86K
Комментарии 63

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

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

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

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

Компьютерное железо Старое железо Ноутбуки Лайфхаки для гиков


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

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

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

Под катом я постараюсь описать особенности покупки такого железа, на что смотреть, как и чем тестировать, на что обращать внимание, а чем можно смело пренебречь.
перейти под кат...
Всего голосов 34: ↑23 и ↓11 +12
Просмотры 49K
Комментарии 61

Мега-Учебник Flask, Часть 1: «Привет, Мир!»

Разработка веб-сайтов *Python *Flask *
Туториал
Перевод
Это первая статья в серии, где я буду документировать мой опыт написания веб-приложения на Python, используя микрофреймворк Flask.

Здесь список всех статей в серии:
Часть 1: Привет, Мир!
Часть 2: Шаблоны
Часть 3: Формы
Часть 4: База данных
Часть 5: Вход пользователей
Часть 6: Страница профиля и аватары
Часть 7: Unit-тестирование
Часть 8: Подписчики, контакты и друзья
Часть 9: Пагинация
Часть 10: Полнотекстовый поиск
Часть 11: Поддержка e-mail
Часть 12: Реконструкция
Часть 13: Дата и время
Часть 14: I18n and L10n
Часть 15: Ajax
Часть 16: Отладка, тестирование и профилирование
Часть 17: Развертывание на Linux (даже на Raspberry Pi!)
Часть 18: Развертывание на Heroku Cloud

Моя предыстория


Я разработчик ПО с двузначным числом лет опыта разработки комплексных приложений на нескольких языках. Впервые я познакомился с Python для создания привязок к C++ библиотеке на работе. Вдобавок к Python, я писал веб-приложения на PHP, Ruby, Smalltalk и, верите вы или нет, еще на С++. Из всего этого, я нахожу комбинацию Python/Flask самой гибкой.
Я хочу начать это долгое и удивительное путешествие
Всего голосов 63: ↑60 и ↓3 +57
Просмотры 508K
Комментарии 31

Информация

В рейтинге
4 782-й
Откуда
Израиль
Дата рождения
Зарегистрирован
Активность

Специализация

Специалист
Git
Golang
Linux
PostgreSQL
Docker
Kubernetes
CI/CD
Bash
High-loaded systems