• Как мы ломали Glusterfs



      История началась год назад, когда к нам пришёл наш друг, коллега и большой эксперт по энтерпрайз стораджам со словами: «Парни, у меня тут завалялась шикарная хранилка со всеми модными фичами. 90Tb». Особой необходимости мы в ней не видели, но, естественно, отказываться не стали. Настроили туда пару бекапов и на какое-то время благополучно забыли.

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

      Всё было хорошо, пока к нам опять не пришёл наш эксперт и не сказал, что свой подарок он хочет забрать. И вернуть его надо срочно.

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

      Из множества вариантов наш взгляд особенно зацепил Глустер, Гластер. Всё равно, как называть. Лишь бы результат был. Поэтому мы начали над ним измываться.
      Читать дальше →
    • Нейронные сети в картинках: от одного нейрона до глубоких архитектур

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

        В статье мы пойдём по другому пути. Начнём с самой простой конфигурации — одного нейрона с одним входом и одним выходом, без активации. Далее будем маленькими итерациями усложнять конфигурацию сети и попробуем выжать из каждой из них разумный максимум. Это позволит подёргать сети за ниточки и наработать практическую интуицию в построении архитектур нейросетей, которая на практике оказывается очень ценным активом.
        Читать дальше →
      • Кластер PostgreSQL высокой надежности на базе Patroni, Haproxy, Keepalived

        • Tutorial
        Привет, Хабр! Встала передо мной недавно задача: настроить максимально надежный кластер серверов PostgreSQL версии 9.6.

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

        Планируя кластер я проштудировал много статей, как из основной документации к PostgreSQL, так и различных howto, в том числе с Хабра, и пробовал настроить стандартный кластер с RepMgr, эксперементировал с pgpool.

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

        В итоге где-то (уже не вспомню точно где) нашел ссылку на прекрасный проект Zalando Patroni, и все заверте…
        Читать дальше →
      • Чем Fault Tolerant серверы отличаются от «бытового» ширпотреба на конкретном примере


          «Зеркальный» кластер с синхронными вычислительными процессами, вид спереди

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

          Эти решения особенно интересны для админов. Дело в том, что они защищены не физически — кожухами, отказоустойчивыми интерфейсами или чем-то ещё, а на уровне именно архитектуры вычислений.

          Нам в руки попал флагман ftServer 6800 от Stratus. Это корпус с двумя идентичными вычислительными узлами, объединёнными в один кластер, причем обе его половинки работают синхронно и делают одно и то же «зеркально». Это старая добрая «космическая» архитектура, когда вычислительный процесс проходит сразу два независимых аппаратных пути. Если где-то возникнет баг (не связанный с кривостью кода), то один из результатов точно достигнет цели. Это важно для критичных систем в самых разных областях от банкинга до медицины, и это очень важно там, где есть «тихая потеря данных». То есть там, где во весь рост встают баги процессоров, связанные с тем, что кристаллы всё же уникальные и двух одинаковых машин не бывает в природе. Обычно это не проявляется, но на ответственных задачах требуется защититься от случайного влияния помех и возможных более явных проблем. Поэтому вот так и сделано.
          Читать дальше →
        • Двойной дзен: два поиска в одном без слежки и смс

            Раз в месяц мне на почту падает отчёт о моей активности в Google-аккаунте — любопытнейшее чтение, потому что я и сам порой могу забыть, что я гуглил в тот или иной момент времени — а вот «Гугл» помнит всё. Это может быть одной из, хотя и не единственной причиной, попробовать в качестве основного поисковика использовать минималистичный анонимный поисковый агрегатор «Гугла» и «Яндекса» DzenPoisk.ru.

            image
            Дзен-лис представляет дзен-поиск

            Взболтать, но не смешивать — принцип не только фирменного бондовского коктейля, но и легального использования поисковых возможностей двух этих гигантов. Делайте что угодно, лишь бы результаты «Яндекса» ни под каким соусом не оказались на одной странице с гугловскими.
            Читать дальше →
          • SDK для внедрения поддержки электронных книг в формате FB2



              Вы знаете, что «нобелевку» по научной фантастике получил китайский автор Лю Цысинь (Liu Cixin, 劉慈欣) с произведением The Three-Body Problem ( 三體). На эту книгу обратили внимание Барак Обама (пруф) и Марк Цукерберг (пруф).

              image
              Ольга Браатхен по своей инициативе перевела книгу на русский (вот тут можно качнуть fb2), за что ей большое спасибо.

              Еще один кандидат на «нобелевку» в 2016 — это Нил Стивенсон (написавший «Лавину» и «Криптономикон») с произведением Seveneves (качнуть на английском можно тут, жаль, что на русский никто не взялся переводить).

              Разработчики компании EDISON создали программу Управления доступом к электронным документам, о чем я писал пару лет назад, а сегодня речь пойдет об SDK для внедрения поддержки электронных книг в формате FB2.

              Читать дальше →
            • Когда мы написали сотое API мы поняли…

                Мы в Perfect Solutions на прошлой неделе написали сотое по счету API. За все это время, ценой граблей, костылей, велосипедов и рефакторинга, мы поняли, что выработали отличную стратегию «как писать API и прекратить боль и страдание».

                Этот пост о версировании, поддержке, багфиксинге и полном цикле жизни API.

                Под катом нет фото с большим трафиком, нет серебрянных пуль, тут даже нет картинки для привлечения внимания — только полезная выжимка нашего опыта. Под катом методология, выработанная на реальном опыте разработки, набитых шишках и сломанных грабляхъ.
                Читать дальше →
              • Топ 20 бесплатных инструментов мониторинга дисков

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

                  1. TestDisk


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



                  Примечание: PhotoRec ето связанное с TestDisk приложением. С его помощью возможно восстановить данные в памяти цифровой камеры на жестких дисках и компакт-дисках. Кроме того можно восстановить основные форматы изображений, аудиофайлы, текстовые документы, HTML-файлы и различные архивы.

                  Читать дальше →
                • Преимущества концепции облака OpenStack и его отличие от традиционной архитектуры

                    Сегодня затраты на ИТ являются существенной частью бюджетов, и, как следствие — компании любых размеров заинтересованы в их сокращении. Ожидается, что ИТ будут приносить больше пользы при меньших затратах. При этом по мере развития все современные компании сталкиваются с вопросом увеличения потребностей в ИТ-ресурсах. В такой ситуации следует обратить внимание на облачные технологии, которые дают возможность модернизации подходов к управлению ИТ-инфраструктурой за счет использования новейших технологий, высокого уровня стандартизации, гибкости внедряемых решений и простоты масштабирования. OpenStack же является одним из самых распространенных решений для организации облачных сред типа Infrastructure as a Service (IaaS).

                    image
                    Читать дальше →
                    • +15
                    • 14.4k
                    • 7
                  • Как навести порядок в почтовом ящике с помощью нейронной сети. Часть 1

                      image

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

                      В современном мире люди получают множество писем, и в полный рост встает проблема с их классификацией и упорядочиванием почтового ящика. Инженер из США Андрей Куренков в своем блоге рассказал о том, как решил эту задачу с помощью нейронной сети. Мы решили осветить ход этого проекта и представляем вам первую часть рассказа.
                      Читать дальше →
                      • +16
                      • 18.9k
                      • 5
                    • Почему Citrix не стала «новой Red Hat» на рынке виртуализации? Часть 1

                      • Translation
                      Когда писал свой прошлый пост о том, как поменялось мое отношение к Xen, вспомнил, что еще в 2007 году (после покупки Citrix’ом компании XenSource), обсуждался вопрос о том, что Citrix может стать “новой Red Hat в виртуализации”. И действительно, для этого были все предпосылки — Citrix давний и хорошо известный игрок корпоративного рынка, а XenSource была молодой и амбициозной OpenSource-компанией, основанной участниками проекта Xen.

                      Но Citrix не стала «новой Red Hat в виртуализации». Почему? Ответить на этот вопрос поможет статья Питера Левайна (Peter Levine), который занимал пост CEO в XenSource как раз в 2007 году, во время продажи компании. Во второй части статьи я напишу, в чем, на мой взгляд, Питер Левайн прав, а в чем нет. Ну а у вас есть возможность высказаться об этом в комментариях, сразу же после прочтения статьи. ;-)
                      Читать дальше →
                    • Живая миграция контейнеров Docker между облаками

                        Мы продолжаем рассказывать о компаниях-разработчиках решений (ISV), использующих облако Microsoft Azure. В этом выпуске мы продолжим рассказ про платформу компании Jelastic темой живой миграции контейнеров Docker между облачными провайдерами. Предыдущие статьи цикла вы всегда можете найти на Хабре по ссылке #isvcloudstory. — Владимир Юнев
                        Последние исследования IDC в сфере облачных технологий показали, что 57% компаний уже внедрили различные формы облачных услуг, 44% планируют или уже используют частное облако и 64% компаний ориентированы на гибридное облако. Это порождает необходимость перемещать рабочие площадки из одного облака в другое, сохраняя при этом высокую производительность и целостность данных. Одним из способов плавного перемещения работающих приложений между разными физическими серверами или датацентрами является живая миграция контейнеров.


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

                        В нашей статье, мы покажем как можно решить главные проблемы DevOps команд с помощью живой миграции, а также рассмотрим пример практического применения этого решения.
                        Читать дальше →
                        • +10
                        • 6.5k
                        • 1
                      • Горячие клавиши в шелле

                          Посвящается B_dot, пост которого заставил заинтересоваться возможностями консоли плотнее.
                          cat /dev/cheat-sheet >> /dev/head

                          Краткое вступление


                          В этом посте будет рассказано о некоторых сочетания клавиш, которые могут упросить жизнь администраторам, работающим в консоли. Все они работают в bash'e. Сочетания клавиш я дополнительно проверял на циске (Cisco IOS Software, s72033_rp Software (s72033_rp-ADVIPSERVICESK9_WAN-M), Version 12.2(33)SXH4), csh и zsh. Рассмотренное в других записях повторять особо не буду. Сочетания сгруппированы по использованной функциональной клавише.
                          Особенно полезен этот текст будет людям, которые любят использовать клавиши Home, End и Delete (которые в цисковой консоли «не работают»).
                          Читать дальше →
                        • Анонс бесплатного онлайн-курса DevOps: What, Why, and How



                            Друзья, мы приглашаем всех желающих пройти обучение в рамках бесплатного онлайн-курса для разработчиков DevOps: What, Why and How.

                            Программа курса рассчитана на весьма широкую аудиторию: разработчиков ПО, тестировщиков, IT-специалистов, лиц, принимающих решение, а также студентов и всех, кого так или иначе интересует методология DevOps, её инструменты и процессы.

                            Обучение будет проводиться с помощью видеоуроков, выступлений преподавателей, текстовых материалов и практических занятий. Продолжительность курса — 5 недель. Начало занятий — 29 марта 2016.

                            • Первая неделя: Введение в DevOps.
                            • Вторая неделя: Введение в DevOps — методология.
                            • Третья неделя: Методики и инструменты — Agile-разработка и непрерывная интеграция.
                            • Четвёртая неделя: Методики и инструменты — непрерывная поставка и непрерывная разработка.
                            • Пятая неделя: Технологии развёртывания DevOps.

                            Читать дальше →
                            • +4
                            • 16.4k
                            • 4
                          • OSSIM — пользуемся комплексной Open Source системой управления безопасностью

                            Эта статья написана под впечатлением от статьи "OSSIM — разворачиваем комплексную open source систему управления безопасностью". Я не буду повторяться и описывать сам процесс установки системы. Я хочу только внести некоторые уточнения и пояснения связанные с практическим опытом применения OSSIM.
                            Читать дальше →
                            • +6
                            • 20.3k
                            • 4
                          • Как разработчику «влиться» в тему DevOps



                              Сегодня мы решили взглянуть на ситуацию с Java- и Python-разработчиком, который задумался о «погружении» в тему DevOps в тот момент, когда он начал все больше отдаляться от привычных инструментов в пользу работы с Oracle Weblogic и shell-скриптами. Он решил совместить свой опыт в области разработки с новым опытом в работе с процессами.

                              Мы посмотрели на основные советы экспертов в области DevOps на Quora и дополнили рассказ примерами из опыта команды 1cloud.
                              Читать дальше →
                            • Нейрореволюция в головах и сёлах

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



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

                                Я работаю в области связанной с анализом изображений. Это одна из областей которую новые идеи затронули сильнее всего. Одна из таких идей — свёрточные нейронные сети. Четыре года назад с их помощью впервые начали выигрывать конкурсы по обработке изображений. Победы не остались незамеченными. Нейронными сетями, до тех пор стоящими на вторых ролях, стали заниматься и пользоваться десятки тысяч последователей. В результате, полтора-два года назад начался бум, породивший множество идей, алгоритмов, статей.

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

                                Кто лишится в ближайшие лет десять работы, а у кого будут новые перспективные вакансии.
                                Читать дальше →
                              • «Деревянный» ЦОД группы Inoventica

                                ЦОД Inoventica размещается в Судогодском районе Владимирской области и является первым облачным ЦОД Группы компаний Inoventica. Сдан в коммерческую эксплуатацию в феврале 2012 года.


                                ЦОД обладает следующими преимуществами:

                                • Современное высококачественное оборудование от компании HP;
                                • Пропускная способность до 40 Тбит/c;
                                • Ширина каналов 10 Гбит и 1 Гбит;
                                • Круглосуточная техническая поддержка.

                                Читать дальше →
                              • VPLS. Распределение меток с помощью BGP

                                  Любой инженер, сталкивавшийся с MPLS, знает что метки могут распределяться двумя способами: DU (Downstream Unsolicited) и DD (Downstream On-Demand). В первом случае маршрутизатор начинает генерировать и передавать всем своим LDP соседям метки до префиксов, к которым он является next-hop. Во втором случае LSR будет генерировать метку до префикса и передавать ее только по запросу вышестоящего маршрутизатора. Пример первого случая — протокол LDP, второй случай — RSVP-TE. А как распределяются метки в VPLS? Давайте разберемся.
                                  Читать дальше →
                                  • +9
                                  • 22.4k
                                  • 1
                                • DevTips: Советы веб-разработчику (33-48)

                                  • Translation
                                  • Tutorial
                                  И вновь в эфире цикл переводов полезных советов для веб-разработчика. На этот раз автор расширил спектр исследуемых инструментов, добавив туда редактор Sublime Text и фреймворк Node.js. Предыдущие части: 1-16, 17-32.

                                  Поехали!

                                  Содержание:
                                     33.  Разворачивание упрощенной записи CSS-свойств
                                     34.  Определение совпадения селекторов по цвету
                                     35.  Использование визуальной навигации и просмотр снятых скриншотов процесса загрузки страницы
                                     36.  Sublime Text: нечеткий поиск при помощи функциональности GOTO
                                     37.  Быстрое изменение значения CSS-свойств при помощи клавиатуры и колеса мыши
                                     38.  Прокрутка элемента в области видимости
                                     39.  Node.js: Использование Babel для запуска ES6
                                     40.  Переход к просмотру и редактированию CSS или Javascript-файлов из панели «Elements»
                                     41.  Отображение значений Javascript-переменных рядом с кодом в процессе отладки
                                     42.  Использование цветовой группировки в панели «Network» для упрощения идентификации типа ресурса
                                     43.  Активация псевдо классов DOM-элемента
                                     44.  Инспектирование самих инструментов разработчика
                                     45.  Запуск выбранного блока кода из панели «Sources»
                                     46.  Установка условных точек останова
                                     47.  Переход к следующему вхождению выбранной строки при помощи горячих клавиш
                                     48.  Редактирование CSS-файла в панели «Sources» и упрощенное изменение значений CSS-свойств
                                  Читать дальше →