• Приточная вентиляция совмещенная с канальным кондиционером (часть 1 — электрическая)

      схема_малая


      Хочу поделиться опытом проектирования, монтажа и эксплуатации своей системы приточной вентиляции совмещенной с канальным кондиционером. Система
      собиралась в 2012-2013 годах и с тех пор находится в постоянной эксплуатации.


      Статью разделил на две части:


      • в первой части описана классическая схема приточная вентиляции с использованием электрического канального подогревателя
      • во второй части рассказано про неоднозначный опыт переработки системы под водяной калорифер с питанием от общедомовой системы отопления
      Читать дальше →
    • Как мы построили надёжный кластер PostgreSQL на Patroni



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

        Мы расскажем, какие решения мы рассматривали для обеспечения надёжности баз данных в своих сервисах и к чему пришли. Плюс демо с далеко идущими выводами.
        Читать дальше →
      • Kubernetes tips & tricks: доступ к dev-площадкам

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


          На этот раз будут рассмотрены две темы, условно связанные одной темой: доступом пользователей к dev-окружению.
          Читать дальше →
          • +27
          • 7,7k
          • 8
        • Мониторинг и Kubernetes (обзор и видео доклада)

            28 мая на проходившей в рамках фестиваля РИТ++ 2018 конференции RootConf 2018, в секции «Логирование и мониторинг», прозвучал доклад «Мониторинг и Kubernetes». В нём рассказывается об опыте настройки мониторинга с Prometheus, который был получен компанией «Флант» в результате эксплуатации десятков проектов на Kubernetes в production.



            По традиции рады представить видео с докладом (около часа, гораздо информативнее статьи) и основную выжимку в текстовом виде. Поехали!
            Читать дальше →
          • 6 занимательных системных багов при эксплуатации Kubernetes [и их решение]



              За годы эксплуатации Kubernetes в production у нас накопилось немало занимательных историй, как баги в различных системных компонентах приводили к неприятным и/или непонятным последствиям, влияющим на работу контейнеров и pod'ов. В этой статье мы сделали подборку некоторых наиболее частых или интересных из них. Даже если вам никогда не повезёт столкнуться с такими ситуациями, читать о подобных кратких детективах — тем более, «из первых рук» — всегда занятно, разве не так?..
              Читать дальше →
              • +57
              • 12,7k
              • 7
            • Прикручиваем LDAP-авторизацию к Kubernetes

              • Tutorial


              Небольшая инструкция о том, как используя Keycloak можно связать Kubernetes с вашим LDAP-сервером и настроить импорт пользователей и групп. Это позволит настраивать RBAC для ваших пользователей и использовать auth-proxy чтобы защитить Kubernetes Dashboard и другие приложения, которые не умеют производить авторизацию самостоятельно.

              Читать дальше →
              • +5
              • 14,6k
              • 6
            • Prometheus + Grafana + Node Exporter + Docker в Azure c уведомлениями в Telegram

              Для начала подготовим виртуальную машину, для этого напишем небольшой скрипт, который разворачивает и автоматизирует некоторые рутинные операции, скрипт использует Azure Cli:


              project.sh
              #!/bin/bash
              echo "AZURE VM Create"
              echo "Azure Account:"
              echo "Azure name:"
              read AZ_NAME
              read -sp "Azure password: " AZ_PASS && echo && az login -u $AZ_NAME -p $AZ_PASS
              echo "Name Group  VM"
              read GROUP_NAME
              az group create --name $GROUP_NAME --location eastus
              echo "VM name"
              read VM
              echo "Admin user name"
              read ADMIN
              az vm create --resource-group $GROUP_NAME --name $VM --image UbuntuLTS --admin-username $ADMIN --generate-ssh-keys --custom-data cloud-init.txt
              az vm open-port --resource-group $GROUP_NAME --name $VM --port 8080 --priority 1001
              az vm open-port --resource-group $GROUP_NAME --name $VM --port 8081 --priority 1002
              az vm open-port --resource-group $GROUP_NAME --name $VM --port 9090 --priority 1003
              az vm open-port --resource-group $GROUP_NAME --name $VM --port 9093 --priority 1004
              az vm open-port --resource-group $GROUP_NAME --name $VM --port 9100 --priority 1005
              az vm open-port --resource-group $GROUP_NAME --name $VM --port 3000 --priority 1006
              RESULT=$(az vm show --resource-group $GROUP_NAME --name $VM -d --query [publicIps] --o tsv)
              echo $RESULT
              echo "Whait 5 min"
              sleep 300
              ssh $ADMIN@$RESULT -y << EOF
              sudo usermod -aG docker $ADMIN
              EOF
              sleep 10
              echo "Connect to Azure..."

              В скрипте мы используем файл cloud-init.txt который автоматически установит Docker и Docker-Compose на виртуальную машину.


              cloud-init.txt
              #cloud-config
              package_upgrade: true
              write_files:
                - path: /etc/systemd/system/docker.service.d/docker.conf
                  content: |
                    [Service]
                      ExecStart=
                      ExecStart=/usr/bin/dockerd
                - path: /etc/docker/daemon.json
                  content: |
                    {
                      "hosts": ["fd://","tcp://127.0.0.1:2375"]
                    }
              runcmd:
              - apt-get update && apt-get install mc -y
              - curl -sSL https://get.docker.com/ | sh
              - curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
              - chmod +x /usr/local/bin/docker-compose
              Читать дальше →
            • История блужданий по документации Haproxy, или на что стоит обратить внимание при его конфигурации

                И снова здравствуйте!

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


                Читать дальше →
                • +24
                • 8,7k
                • 3
              • Настройка НА-кластера Kubernetes на «голом железе» с kubeadm. Часть 1/3

                • Перевод

                Часть 2/3 тут
                Часть 3/3 тут


                Всем привет! В этой статье я хочу упорядочить информацию и поделиться опытом создания и использования внутреннего кластера Kubernetes.


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


                0. Вступление


                Kubernetes — это масштабируемая технология оркестровки, которая может начинаться с установки на одной ноде и достигать размеров огромных НА-кластеров на основе нескольких сотен нод внутри. Большинство популярных облачных провайдеров представляют разные виды реализации Kubernetes — бери и пользуйся. Но ситуации бывают разные, и есть компании, которые облака не используют, а получить все преимущества современных технологий оркестровки хотят. И тут на сцену выходит инсталляция Kubernetes на «голое железо».


                Читать дальше →
                • +24
                • 23,3k
                • 5
              • Трезвый взгляд на Helm 2: «Вот такой, какой есть...»

                  Как и любое другое решение, Helm — пакетный менеджер для Kubernetes — имеет плюсы, минусы и область применения, поэтому при его использовании стоит правильно оценивать свои ожидания…


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

                  Основной мотив написания статьи — предоставить пользователю объективную оценку основных проблем Helm 2 без категорических заключений, а также желание поделиться опытом и нашими решениями.
                  Читать дальше →
                  • +34
                  • 6,4k
                  • 8
                • Чек-лист: что нужно было делать до того, как запускать микросервисы в prod

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


                    К сожалению, некоторые невысокие программисты всерьёз полагают, что Dockerfile с какой-нибудь вообще любой командой внутри — это уже сам по себе микросервис и его можно деплоить хоть сейчас. Докеры крутятся, лавешка мутится. Такой подход оборачивается проблемами начиная с падения производительности, невозможностью отладки и отказами обслуживания и заканчивая кошмарным сном под названием Data Inconsistency.


                    Если вы ощущаете, что пришло время запустить ещё одну аппку в Kubernetes/ECS/whatever, то мне есть чем вам возразить.


                    English version is also available.

                    Читать дальше →
                  • GitLab CI для непрерывной интеграции и доставки в production. Часть 1: наш пайплайн



                      Итак, GitLab CI: что можно ещё рассказать о нём? На хабре уже есть статьи про установку, про настройку раннеров, про командное использование, про GitLab Flow. Пожалуй, не хватает описаний того, как используется GitLab CI в реальном проекте, где задействовано несколько команд. А в современном мире разработки ПО это действительно так: ведь есть (как минимум) разработчики, тестировщики, DevOps- и релиз-инженеры. С подобным разделением на команды мы работаем уже несколько лет. В этой статье я расскажу о том, как мы, используя и улучшая возможности GitLab CI, реализовали и применяем в production для коллектива из нескольких команд процессы непрерывной интеграции (CI) и отчасти доставки приложений (CD).
                      Читать дальше →
                    • Советы по созданию нестандартных рабочих процессов в GitLab CI

                      • Перевод
                      Прим. перев.: Оригинальную статью написал Miłosz Smółka — один из основателей небольшой польской компании Three Dots Labs, специализирующейся на «продвинутых backend-решениях». Автор опирается на свой опыт активной эксплуатации GitLab CI и делится накопленными советами для других пользователей этого Open Source-продукта. Прочитав их, мы поняли, насколько нам близки описанные им проблемы, поэтому решили поделиться предлагаемыми решениями с более широкой аудиторией.



                      На этот раз я затрону более продвинутые темы в GitLab CI. Частой задачей здесь является реализация в пайплайне нестандартных возможностей. Большинство советов специфичны для GitLab, хотя некоторые из них можно применить и к другим системам CI.
                      Читать дальше →
                      • +30
                      • 10,4k
                      • 2
                    • Kubernetes tips & tricks: ускоряем bootstrap больших баз данных

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

                        Я начну с «трюка» по подготовке больших дампов баз данных вроде MySQL и PostgreSQL для их быстрого развёртывания для различных нужд — в первую очередь, на площадках для разработчиков. Контекст описанных ниже операций — наше типовое окружение, включающее в себя работающий кластер Kubernetes и применение GitLab (и dapp) для CI/CD. Поехали!

                        Читать дальше →
                        • +21
                        • 7,9k
                        • 5
                      • Кластеры Kubernetes в сервисе VPC



                          Мы добавили возможность удобного запуска Kubernetes в сервисе Виртуальное приватное облако в режиме раннего beta-тестирования.


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


                          Так как сервис Виртуальное приватное облако построен на базе OpenStack, мы используем один из его компонентов — OpenStack Magnum. Он позволяет быстро создавать приватные кластеры Kubernetes с нужным количеством нод.


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


                          В этой статье мы расскажем про основные объекты кластера Kubernetes и на примерах рассмотрим процесс создания кластера при помощи OpenStack Magnum.

                          Читать дальше →
                        • Настраиваем Mozilla Thunderbird в корпоративной среде Windows

                            Будем следовать принципу: Чем меньше надо настраивать пользователю, тем меньше вероятность того что он что то поломает. Думаю пользователь с вводом своего пароля справится.


                            Необходимо настроить:


                            1. Файл конфигурации для подключения к серверу.
                            2. Справочник контактов из LDAP.
                            3. Подпись сотрудника в письме в соответствии с корпоративными стандартами.

                            Имеем на данный момент:


                            1. Установленный почтовый клиент Thunderbird на рабочих станциях средствами групповой политики.
                            2. Почта на biz.mail.ru (может быть и другой)
                            3. Пользователи в AD с логином вида i.ivanov@domain.cn
                            Читать дальше →
                            • +12
                            • 18,7k
                            • 7
                          • Mikrotik RoS, полезные мелочи

                            • Tutorial
                            Распространенность оборудования Mikrotik растет с каждым днем, все больше устройств, а значит и RoS, появляется не только в корпоративном секторе, но и у обычных, домашних пользователей.
                            К сожалению, не смотря на вполне нормальные настройки по умолчанию, которые можно сделать через Quick Set, в интернете можно встретить множество советов очистить конфигурацию, и сделать как-то по «особому», с «нуля». В этой статье я хочу поделится своим опытом и дать рекомендации, как изменить конфигурацию из Quick Set под свои нужды, при этом сохранив достаточный уровень защищенности.
                            Читать дальше →
                          • Mikrotik: Балансировка в КПСС и соблюдение скоростного режима

                            • Tutorial
                            В этой статье я хочу поделится своим решением балансировки с применением Классификатора по Сетевым Соединениям (Per Connection Classificator) и маркировкой трафика для QoS.

                            Предисловие


                            На просторах Хабра и интернета я встречал множество реализаций балансировки, включая и PPC, однако, в ряде этих реализаций, не во всех конечно, были моменты, совершенно дурацкого вида:
                            Читать дальше →
                            • +13
                            • 13,9k
                            • 2
                          • Wireshark для просмотра трафика в реальном времени

                            • Tutorial
                            Иногда мне необходимо было залезть на linux-сервера и иметь возможность просматривать текущий трафик в реальном времени. Как я делал до этого? На целевом сервере устанавливался tcpdump, выхлоп которого писался в файлик. Далее файл через scp тянулся на локальный компьютер под Windows и открывался в Wireshark.

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