User
Настройка домашней среды для разработки (docker + gitlab + DNS)
Intro
Не смог придумать подходящее название для поста, поэтому кратко опишу, о чем будет идти речь.
У большинства из нас есть какие-нибудь мелкие личные поделки, которые не выходят за рамки наших домов. Кто-то хостит их на рабочем компьютере, кто-то — на Heroku, кто-то — на VPS, а у кого-то есть домашний сервер. На реддите даже есть сообщество r/homelab, в котором люди обсуждают разные железки и софт для т.н. домашней лаборатории.
Я не настолько увлечен этим вопросом, но у меня дома стоит Intel NUC, который проигрывает музыку с NAS с помощью MPD. Помимо MPD на нем крутятся мои мелкие поделки, которые помогают мне с ним работать: ныне мертвый бот для телеграма, HTTP API на синатре и корявенький фронтенд для него.
В посте я без особых подробностей (многих из которых сам не понимаю) опишу процесс установки DNS-сервера для работы с доменными именами для сервисов, схему одновременной работы нескольких сервисов с помощью Docker и установку Gitlab с CI. Ничего нового вы не узнаете, но вдруг кому-нибудь пригодится этот "гайд". К тому же я бы хотел услышать предложения по поводу того, как можно было бы сделать это проще/элегантнее/правильнее.
Как нашего заказчика не хотел отпускать провайдер
![](https://habrastorage.org/webt/bn/pi/dm/bnpidmhskhwx4ny1zrc4y-jozuc.jpeg)
История довольно короткая, но смешная. С ней реально столкнулся наш заказчик. Началось всё в тот момент, когда один из провайдеров ИТ-инфраструктуры решил перевезти свой дата-центр. И предупредил примерно за полгода всех своих клиентов о трёхдневном даунтайме, но так тянул время и организовывал бюрократическую волокиту, что некоторые заказчики к миграции попросту не успели подготовиться.
Представьте: вы CIO. Бюджета на аварийную дублирующую площадку у вас нет. Старого оборудования тоже нет. Бизнес связан с предоставлением медицинских услуг, здесь каждый лишний час промедления стоит дорого: один день простоя грозит финансовыми и имиджевыми потерями, равными годовой прибыли, два часа — начнут страдать клиенты.
А теперь добивающий аккорд: переезд вам по факту осложняют, ставя в рамки и согласовывая каждый чих по месяцу. Потому что вы же много платите провайдеру, зачем вас отпускать?
Создание, настройка и использование собственного Git-сервера
![image](https://habrastorage.org/getpro/habr/post_images/a9a/37b/ba0/a9a37bba06cf7429b39b215e9cebe563.png)
Кластер pacemaker/corosync без валидола
![](https://habrastorage.org/webt/i_/z9/7q/i_z97qr6zimdry1k9hbruykmgkw.jpeg)
А ведь могло быть по-другому. Вам приходит смс от системы мониторинга, что произошел сбой на одном из серверов. Но СУБД продолжает работать, поскольку отказоустойчивый кластер PostgreSQL отработал потерю одного узла и продолжает функционировать. Нет надобности срочно ехать на работу и восстанавливать сервер БД. Выяснение причин сбоя и работы по восстановлению спокойно переносятся на рабочий понедельник.
Как бы то ни было, стоит подумать о технологиях отказоустойчивы кластеров с СУБД PostgreSQL. Мы расскажем о построении отказоустойчивого кластера СУБД PostgreSQL с помощью программного обеспечения Pacemaker&Corosync.
Эксперименты с kube-proxy и недоступностью узла в Kubernetes
Код приложений, развёрнутых в Kubernetes, запускается на одном или более рабочих узлов. Узел может располагаться как на физической или виртуальной машине, так и в AWS EC2 или Google Compute Engine, а наличие множества таких площадок означает возможность эффективного запуска и масштабирования приложения. Например, если кластер состоит из трёх узлов и вы решаете отмасштабировать приложение на четыре реплики, Kubernetes равномерно распределит их среди узлов следующим образом:
![](https://habrastorage.org/webt/pk/wt/b7/pkwtb7xs5bktrwq1brnp_1ruygs.png)
Как мы ломали Glusterfs
![](https://habrastorage.org/webt/2z/_z/ym/2z_zym7l5zuwpxy0kc8arplu28y.jpeg)
История началась год назад, когда к нам пришёл наш друг, коллега и большой эксперт по энтерпрайз стораджам со словами: «Парни, у меня тут завалялась шикарная хранилка со всеми модными фичами. 90Tb». Особой необходимости мы в ней не видели, но, естественно, отказываться не стали. Настроили туда пару бекапов и на какое-то время благополучно забыли.
Периодически возникали задачи типа переброса больших файлов между хостами, сборка WAL для реплик Postgre и т. д. Постепенно мы начали перекладывать в этот холодильник всё разбросанное добро, так или иначе связанное с нашим проектом. Настроили ротейт, оповещения об успешных и не очень попытках выполнения бекапа. За год эта хранилка стала одним из важных элементов нашей инфраструктуры в группе эксплуатации.
Всё было хорошо, пока к нам опять не пришёл наш эксперт и не сказал, что свой подарок он хочет забрать. И вернуть его надо срочно.
Выбор был небольшой — распихивать всё опять куда попало либо собирать свой собственный холодильник из блэкджека и палок. К этому моменту мы уже были наученные, насмотрелись на множество не совсем отказоустойчивых систем, и отказоустойчивость стала нашим вторым я.
Из множества вариантов наш взгляд особенно зацепил Глустер, Гластер. Всё равно, как называть. Лишь бы результат был. Поэтому мы начали над ним измываться.
Kubernetes-HA. Разворачиваем отказоустойчивый кластер Kubernetes c 5 мастерами
В данный момент инсталяция по данному мануалу работать не будет. Из за больших изменений API Kubemaster, в данный момент я готовлю новый цикл статей где будут рабочие версии мануалов
Первая из статей habr.com/ru/post/462473
Здравствуйте!
В данной публикации я хотел бы рассказать о кластере Kubernetes с высокой доступностью (HA).
![image](https://habrastorage.org/getpro/habr/post_images/119/e98/869/119e988691435f6a2706feee1a8f0c0d.png)
Оглавление:
- Вступление
- Список используемого софта
- Список и назначение хостов
- Принцип работы и развертывания
- Подготовка ОС к развертыванию. Установка docker, kubeadm, kubelet и kubectl
- Подготовка конфигурационного скрипта
- Создание etcd кластера
- Инициализация мастера с помощью kubeadm
- Настройка CIDR
- Инициализация остальных мастернод
- Настройка keepalived и виртуального IP
- Добавление рабочих нод в кластер
- Установка ingress-nginx
- Дополнительно
Ричард Хэмминг: Глава 6. Искусственный интеллект — 1
«Цель этого курса — подготовить вас к вашему техническому будущему.»
![image](https://habrastorage.org/getpro/habr/post_images/d10/8d7/f7a/d108d7f7adc1fb48d3b61a1753ac4238.jpg)
Так вот у Хэмминга (да, да, самоконтролирующиеся и самокорректирующиеся коды Хэмминга) есть целая книга, написанная по мотивам его лекций. Мы ее переводим, ведь мужик дело говорит.
Это книга не просто про ИТ, это книга про стиль мышления невероятно крутых людей. «Это не просто заряд положительного мышления; в ней описаны условия, которые увеличивают шансы сделать великую работу.»
Мы уже перевели 19 (из 30) глав. И ведем работу над изданием «в бумаге».
Глава 6. Искусственный интеллект — 1
(За перевод спасибо Иванникову Алексею, который откликнулся на мой призыв в «предыдущей главе».) Кто хочет помочь с переводом, версткой и изданием книги — пишите в личку или на почту magisterludi2016@yandex.ru
Рассматривая историю компьютерных приложений, мы обращаем внимание на возможности пределов машин не столько в плане вычислительной сложности, сколько в плане классов задач, которые компьютер сможет или возможно не сможет решать в будущем. Перед дальнейшим рассуждениями необходимо напомнить, что компьютеры оперируют символами, а не информацией; мы не можем просто сказать, не говоря о том, чтобы написать, программу в терминах “информации”. Все мы считаем, что знаем значения слов, но хорошие размышления с вашей стороны убедят в том, что, в лучшем случае, информация — это нечёткая концепция и ей нельзя дать определение, которое можно сконвертировать программе.
Операционные системы с нуля; Уровень 0
Добрый день/вечер/ночь/утро! Есть один экспериментальный курс по операционным системам. Есть он в Стэнфордском университете. Но часть материалов доступно всем желающим. Помимо слайдов доступны полные описания практических занятий.
Чем этот курс отличается от прочих других? Большая часть кода пишется самостоятельно и выполняется на вполне реальном современном железе. В качестве целевой платформы выбран Raspberry Pi 3 model B. Т.е. достаточно актуальная архитектура AArch64. ARMv8 Cortex-A53, четыре ядра, 64-бита и вот это всё. В качестве основного языка программирования выбран Rust. Который безопасный, быстрый, без GC и так далее. Его, Rust, предполагается изучать во время курса.
Тут есть про диски, файловые системы, операции ввода-вывода, потоки /процессы, планирование, виртуальную память, защиту и безопасность, прерывания, параллелизм и синхронизацию. Как и в любом другом, уважающем себя курсе. Разница в актуальности материала и в количестве практики. Коддить придётся много.
Программирование для сетевых инженеров: первый кейс
Устойчивый канал на базе программно-определяемых сетей SD-WAN: решаем проблемы выбора маршрутов
![](https://habrastorage.org/web/77d/4fd/ab0/77d4fdab05554002acc8fb9d329f5c86.jpeg)
Тесты «в полях»
Есть коммерческая задача: необходимо быстро подключать сайты к обычной WAN-сети, но делать это там, где в наличии только сотовое покрытие и нет возможности провести кабель или организовать радиорелейный переход до волокна или меди.
Решение — модемные кластеры. Очевидная проблема решения в том, что каждый из модемов — это отдельный физический канал. Нужно с помощью зубила и какой-то матери объединить их в одно инкапсулированное устройство, которое просто будет отдавать канал. Кроме того, необходимо, чтобы при появлении кабеля не требовалось менять коробку и что-то перенастраивать.
Файловый сервер SAMBA на базе Linux CentOS 7
![](https://habrastorage.org/web/ace/1e1/936/ace1e1936dfa46fc872cd5b2cdb6a9aa.png)
Привет Хабр!
После активности шифровальщика Petya 27.06.2017, я отключил SMB1 он же CIFS, и получил производственное оборудование и сетевые МФУ которые не умеют работать на «новых» версиях SMB протокола.
Как тогда получать данные с «старых» устройств? Как показала практика, отдельная «машина» с Windows не выход, во время атаки кроме доменных «машин» пострадали также не включенные в домен, по этому, а также по лицензионным соображениям я решил использовать Linux.
Под катом находится пошаговая инструкция по установке и настройке файлового сервера SAMBA на базе CentOS 7:
— Анонимный доступ
— Аутентификация и авторизация
— Интеграция с Active Directory
Разворачиваем связку Nginx+Php-Fpm+MySQL с magento2 на борту и раскладываем по контейнерам в Docker
Все чаще стучась в различные компании разработчиков в качестве DevOps инженера, я получаю приблизительно одни и те же тестовые задания. Они отличаются друг от друга версиями PHP или проектами которые надо запустить.
Но в целом они упираются в одну связку это Nginx\Appache, SQL (тут вариаций много, все зависит от предпочтений заказчика), PHP и желательно чтобы это было разложено по контейнерам.
Поэтому я решил рассказать на примере, как все это поднять без особых усилий.
Возможно кому-то это поможет понять, на простом примере, что к чему. Описывать что такое Docker я не буду, т.к. статей на эту тему вагон и маленькая тележка.
В данной статье, мы подготовим небольшую структуру:
- В качестве вэб сервера будет использоваться Nginx с минимальной настройкой для запуска проекта.
- В качестве SQL будет использовать MySQL.
- PHP7.0-fpm версия c небольшими надстройками для запуска нашего проекта.
- В качестве проекта который мы будем разворачивать — берем magento2.
Splunk Scripted Input. Или как использовать скрипты для получения данных о работе систем и анализировать их в Splunk
В таком случае на помощь приходят скрипты!
![](https://habrastorage.org/webt/zd/zh/on/zdzhonxyhgmeh1zsaz5s6_vqrwa.png)
Когда, какие и как можно использовать скрипты в Splunk для получения данных — вы можете узнать под катом.
Туториал по Unreal Engine 4: фильтр Paint
![image](https://habrastorage.org/getpro/habr/post_images/25b/b5d/a1d/25bb5da1d9956ec4a2d08208b7ecd4b1.gif)
С течением времени внешний вид игр становится всё лучше и лучше. В эпоху потрясающей графики сложно сделать так, чтобы собственная игра выделялась на фоне остальных. Один из способов сделать игру графически более уникальной — использование нефотореалистичного рендеринга.
Нефотореалистичный рендеринг включает в себя множество техник рендеринга. В них входят cel shading, toon-контуры и штриховка. Можно даже сделать так, что игра будет похожа на картину! Одним из способов получения такого эффекта является размытие фильтром Кавахары.
Для реализации фильтрации Кавахары мы научимся следующему:
- Вычислять среднее и дисперсию для нескольких ядер
- Выводить среднее значение для ядра с наименьшей дисперсией
- Использовать оператор Собеля для нахождения локальной ориентации пикселя
- Поворачивать ядра сэмплирования на основании локальной ориентации пикселя
Information
- Rating
- Does not participate
- Location
- Россия
- Date of birth
- Registered
- Activity