Как мы внедряем Open source в госкомпаниях и крупной коммерции России
КРОК — одна из самых больших в России компаний по построению IT-инфраструктур. У нас в год 2000+ проектов, из которых 200 штук — с бюджетом больше миллиона. Долларов. Внутри этой огромной компании есть мой небольшой отдел, который занимается тем, что ставит open source для крупных заказчиков.
Нередко приходится сталкиваться с мнением, что open source — это кривые поделки гаражных программистов. Мы работаем только с нормальным рабочим ПО; помогаем подобрать оптимальные варианты решений для инфраструктуры и обеспечиваем поддержку там, где производитель по очевидным причинам сделать этого не может. Это — не самая простая работа, в основном, связанная с мифами и легендами про открытое ПО.
Но к чёрту детали, давайте покажу, что и как можно поставить на рабочие места, сервера, в облако, для СУБД, VDI, BPM и серверов приложений. И про галстук.
Ниже в списках — то, что я проверял на практике, в том числе и в больших компаниях и могу рекомендовать, основываясь на своём опыте или опыте коллег из своего отдела. Если вы добавите в комментариях проверенные решения для своих задач, это также очень поможет.
Серверные ОС— CentOS— Open SUSE и SUSE Linux Enterprise Server— Alt Linux— Red Hat Enterprise Linux Server.
Серверные ОС идут как с коммерческой поддержкой, так и полностью бесплатные. SLES и RH официально поддерживаются подавляющим большинством производителей оборудования. Сама тема ОС в опенсорсе одна из самых проработанных, их функционал по многим направлениям превосходит Windows. ОС Redhat, SLES и ALT Linux имеют сертификацию ФСТЕК.
Мы используем Red Hat в своём публичном облаке (больше 70 крупных заказчиков), вообще, в нашем облаке многое сделано на базе open source -решений нашими разработчиками. Плюс мы ставили ОС с открытым исходным кодом в московские суды, а также в ДИТ Москвы для организации Единой медицинской информационно-аналитической системы (ЕМИАС).
Операционные системы для рабочих станций— Alt Linux— Red Hat Enterprise Linux Desktop— SUSE Linux Enterprise Desktop— Ubuntu Linux.
Пользовательские ОС на базе Lunux обычно идут с кучей серверных примочек и по этому параметру могут с ними сравниться. Получается так что пользователь может просто заблудиться в куче разных программок и модулей если не обладает хотя бы базовыми знаниями. Поэтому практически ни одна масштабная установка не обходится без аккуратной обработки лобзиком. Но тем не менее, надо все таки сказать что большинство базовых функций для пользователей идут из коробки и ими можно пользоваться пользователям немного обучив их. Обучение тут, кстати, будет одним из важнейших факторов при миграции.
Например, в ЕМИАС используется более 20 тысяч рабочих мест с ALT Linux и 1500 с SLED. Они конечно переработаны под нужны заказчика, но в большей мере только для того что бы убрать из них лишнее, хотя и был ряд специфических требований которые пришлось доделывать вместе самими разработчиками этих ОС. Тем не менее это тоже было сделано. Потому я уверен, да и опыт наш об этом говорит, все возможности по использованию этих ОС на предприятиях есть.
Резервное копирование— Bacula— Amanda— Bareos— Comodo.
В сфере резервного копирования есть несколько продуктов о которых хотелось бы сказать пару слов. Думаю все слышали названия Bacula и Amanda на базе которых сделано некоторое количество коммерческих форков с поддержкой.
Понятно, что эти решения не сравнить с нормальными промышленными средствами бекапа, требующими огромного количества коннекторов, совместимых с различным ПО enterprise-уровня. Тем не менее, перечисленные выше решения вполне подходят для малого и среднего бизнеса. У них есть все базовые функции, хотя и бекапом сложных приложений тут и не пахнет. Но поскольку это опенсорс, мы ведь можем их дорабатывать и сами, ведь так? Или если все таки нужны функции посложнее платные форки предлагаю и агентов для приложений и такие продвинутые функции как дедупликация например. Но это уже за деньги сравнимые с коммерческими решениями.
Поэтому тут нет однозначного ответа? стоит ли экономить на бекапе, или проще взять как нибудь российский Акронис и спать спокойно.
ВиртуализацияВиртуализация на самом деле сейчас достигла такого распространения и стала настолько обычным делом, что оказалось так, что опенсорс тут сравним с коммерческими продуктами. И в сфере просто серверной виртуализации, и в сфере облачной инфраструктуры. Надо сказать, что в облаках даже является одним из драйверов развития сейчас.
Облачная инфраструктура — это конечно же Openstack. Можно построить частное облако компании (Software Defined Datacenter), используя почти любое оборудование, доступное для среднего и крупного бизнеса. Сегодня это решение наиболее интересно крупным производственным предприятиям, банкам и ритейлерам. Решение настолько развитое коммьюнити, что множество компаний на западе заменяют на него свои коммерческие инсталляции. Кстати, почти у всех крупных вендоров есть свои сборки Openstack.
А собственно фишка его в том что, есть все что нужно для базовой виртуализации и есть все что нужно для «продвинутой». А именно, объектное хранение данных, виртуализация СХД и сетей и движок автоматизации.
А, собственно, почему я это рассказываю. Многие компании сейчас хотят подобного рода технологии для повышения гибкости инфраструктуры, управления стоимостью, ускорения операций и тому подобные вещи. Но не могут себе позволить просто потому, что это крайне дорого, если брать коммерческие продукты.
Например, мы сейчас предлагаем нашим заказчикам системы по автоматизации среды тестирования, которые ускоряют разработку процентов на 20–30% просто за счет нивелирования множества ручных операций.Кстати, немного о самих этих продвинутых функциях.
Блочное и объектное хранение данных— Ceph (Red Hat/intank)— GlusterFS.
Тот же Ceph может стать отличной альтернативой для небольших офисов и может работать прямо на самих гипервизорах если поставить в них побольше дисков. Таким образом можно соединить гипервихзор с СХД и существенно сэкономить на оборудовании. Но конечно же это все требует достаточно тонкой первоначальной настройки и сайзинга. В большой инсталляции может стать основой хранения данных, причем по скорости сравнимой с mid-range, hi-end массивами при правильной настройке. Не даром ведь их используют многие крупные провайдеры облачных услуг.
Open source серверная виртуализация — это прежде всего гипервизор KVM и управление на базе Virt-Mananger или O-Virt; Red Hat Enterprise Virtualization (RHEV). Есть все необходимые базовые функции типа HA, и vmotion, поддержка Linux- и Windows-окружений и т.д. Решения на базе этих продуктов мы готовы создавать и тиражировать для распределенных компаний, в которых много небольших филиалов с десятком виртуалок. Если у вас как раз так — просто учтите, что нулевые вложения в ПО позволяют существенно сэкономить если таких площадок от 20 штук и более. Мы же можем оказывать техническую поддержку таких инсталляций.
Кстати, если уметь, как я сказал выше, можно соединить блочное хранение с гипервизором и получить на выходе компактную систему из двух трех серверов которая обеспечит работу инфраструктурного ПО для небольшого офиса на 200–300 человек. А, возможно, туда и поместятся некоторые бизнес-системы. Плюс в том что не нужна будет сразу ни СХД с FC-коммутаторами, ни 10GE сеть.
Про виртуальные рабочие станции (VDI) — тут пока сказать мало что можно. Есть Red Hat Enterprise Virtualization (RHEV), с очень базовыми функциями и пока масштабных случаев внедрения не могу назвать. Однако же если замахиваться на большую систему с должным финансированием, на базе все тех же Openstack и RHEV можно собрать рабочее промышленное решение.
Мониторинг инфраструктуры— Zabbix— Zenoss— Nagios.
Эти решения я был пометил как «must have» для любого предприятия. Бесплатные продукты для создания системы мониторинга инфраструктуры. Коробочные решения поддерживают отслеживание состояния операционных систем, также поддерживается мониторинг приложений. Для специализированных приложений реализуется доработка пакетов, действий по определению корректной работы. У нас уже пару за пару лет накопился очень неплохой опыт реализации таких систем, например, в том же ДИТ Москвы и у других государственных заказчиков, для которых важна экономия средств. Эти системы вполне конкуренты с проприетарными решениями при нулевых вложениях в софт. Кроме того, мы часто советуем использовать такой класс систем совместно с BI-системами для реализации отчетности и анализа данных. На выходе полноценная аналитика по состоянию всей инфраструктуры.
Управление базами данныхPostgresql — хорошая альтернатива проприетарным решениям по SQL-СУБД. Зрелая полнофункциональная система управления реляционными базами данных без значительных финансовых вложений. На текущий момент более 50% проектов по разработке новых решений в КРОКе базируются на использовании этой СУБД. Кстати, мы сертифицировали её для использования в гос.организациях.
Для NoSQL— Apache Cassandra— MongoDB— Apache Hive.Все это также достаточно известные системы.
Обработка неструктурированных данных— Apache Hadoop. В случае необходимости обработки очень больших объемов данных логично использование какой-либо реализации Hadoop как большой ETL-машины, а для обработки и поддержки логики «классического» ETL существует большое количество бесплатных движков ETL с развитыми средствами визуализации. В общем, если вы постоянно курите вопросы BI, DWH, BigData и других модных слов — вы и так всё знаете.Сразу вдогонку — смотрите на— ETL Talend DI— Cloudera Hadoop— Pentaho DI— CloverET.
Массивно-параллельные СУБД— PostgreSQL XL— Cloudera Impala— Infobright; InfiniDB.Эти СУБД позволяют строить крупные аналитические системы на базе комплексов из множества недорогих серверов. Запросы в них выполняются параллельно, практически на всех серверах сразу.
Все эти технологии управления БД мы успешно используем в наших проектах. Например, в BI. А BI — это: — Pentaho BA— SpagoBI— JasperSoft BI.
Pentaho имеет развитые инструменты для наглядной визуализации. SpagoBI — инструмент для создания AdHoc-панелей «на лету» и для высоконагруженных систем, JasperSoft наибольшим образом подходит для построения фиксированной отчетности. Интересны любой компании, которой необходимы инструменты анализа данных. Мы реализовывали подобные системы в крупных банках и промышленных предприятиях. Надо отметить, что по ряду показателей, важных для тех же НПО, такие опенсорс-решения часто превосходят куда более дорогие проприетарные именно по функциям.
Веб-серверы— Apache HTTP Server— nginx.
Вы их точно знаете. Благодаря истории nginx, кстати, стало куда проще объяснять заказчикам, что опенсорс — это не какие-то наркоманы под мостами. Наши разработчики используют эти веб-серверы во многих проектах.
Серверы приложений— Apache Tomcat— WildFly— GlassFish.
Вы, скорее всего, их тоже знаете. Тоже рассказывать особо нечего, все три решения хорошо известны.
Ну и наконец, о службах каталога и управлению рабочими станциями и серверами. Такие решения тоже есть. И у Red hat, и у SUSE, и у просто опенсорс. Например, каталоги 389 server и OpenLDAP. Все, что нужно для аутентификации и ведения реестра учетных записей в них есть. Но есть один минус — нет групповых политик, логон-скриптов и всего того, к чему многие уже привыкли.
Но эти вопросы решаются в гетерогенной или линукс среде просто иначе. А именно — продуктами по управлению, такими как Puppet, Chef, Foreman. И тут бонус в том, что их функциональность гораздо больше, чем просто GP или логон-скрипты. Тут и установка ПО и скрипты, инвентаризация, разливка образов и контроль состояний, да и куча еще всяких штук, на которые хватит фантазии и конкретных задач. И опять, можно их использовать бесплатно, а можно с поддержкой и расширенными функциями (за них правда придется все-таки заплатить).
Мифы и легенды опенсорса— Опенсорс — это Linux + бесплатный офисНет, как вы видите выше, это и фундамент ИТ-инфраструктуры, и СУБД, и конкретный «бытовой» приклад. Есть множество вариантов open source-аналогов для самых разных областей ПО, и есть даже сферы, где именно опенсорс в силу своей гибкости выигрывает. Обычно сначала экономят на офисе, а потом внезапно останавливаются. Тем не менее, есть возможность куда больше сэкономить на ПО инфраструктурного уровня.— О, офис. А правда, что ODF — сертифицированный формат? Да, он сертифицирован ГОСТ Р ИСО/МЭК 26300 — формат по умолчанию для всех типов документов. И переход на его использование позволит провести миграцию менее болезненно и не зависеть от поставщика программного обеспечения в будущем. Госкомпании это понимают, например, благо обратная совместимость с теми же DOCX остаётся.
— В опенсорсе нет системных решенийЭтот миф связан с тем, что, как правило, Linux way — это не монструозные среды, решающие все задачи среднего пользователя сразу, а небольшие утилиты под конкретные задачи, написанные спецами для их решения (а не продажи ПО). То есть к системному подходу открытое ПО действительно перешло относительно недавно, но уже сейчас решений такого класса довольно много. Почему — в ответе на следующий миф.
— Открытое ПО никто не поддерживаетЭто — самая больная точка для большого бизнеса. И это же — самый распространённый миф. Дело в том, что да, какие-то конкретные открытые решения могут заморозиться ещё в 2010 году, и с тех пор даже не обновляться. Но большие серьёзные проекты вроде описанных выше, либо активно поддерживаются коммьюнити, либо обзаводятся компанией, которая за вполне вменяемые деньги на коммерческой основе делает поддержку 24×7 для крупного бизнеса. Или за земные же деньги ведёт доработки продукта. Так что если нужна будет новая функция, есть большая вероятность что её реализуют оперативно. Иногда — даже очень оперативно.
— Вот проприетарный софт хорош тем, что когда у меня проблема — ей займутсяДа, имидж требует, чтобы любой проблемой кто-то занялся со стороны вендора. Это хорошо, что подобное поведение закреплено в договоре-лицензии. В опенсорсе же проблемой обычно занимается внедренец, если нет организации, специализирующейся на поддержке конкретной системы. Например, мы поддерживаем весь софт, внедрённый у заказчиков либо напрямую, либо через спецов «второй линии» от таких компаний.
— Опенсорс-продукты — это более дешевая замена дорогим решениямРаньше это было так. Сейчас многие продукты сравнились по функционалу с проприетарными аналогами. Надо отметить, что сами крупные компании (MS, IBM, HP, Одноклассники) часто коммитят в опенсорс, и многие крупные системы строятся на опенсорсе. Это взаимовыгодный обмен — как правило, корпорация коммитит свой код в опенсорс с условием, что можно включать готовый результат в свои системы, и получает детальное тестирование плюс много хорошего кода поверх.
— Всё равно нужна бумажная лицензияМогу сказать сразу — за время внедрений ни одного инцидента с требованием бумажных лицензий на open source не было. С другой стороны, если бы проверяющие приходили с целью не проверки, а «завалить», уверен, проблем было бы много и с проприетарным софтом.
— Там есть проблемы с обновлениями…По ОС могу точно сказать — вопросы давно и хорошо решаются штатными средствами. По прикладу — да, не всегда получается без промежуточного агента грамотно дистрибутировать обновления на 200–300 рабочих станций, но тоже решается, и, в целом, не особо сложно.
Плюсы Итак, повторюсь, в голове у заказчика опенсорс обычно неразрывно связан с небритым мужиком в свитере с оленями где-то в гараже. Всерьёз поначалу такие варианты никто не воспринимает, но чуть позже экономика заставляет разобраться в вопросе. Может оказаться что и внедрение дешевле, и затрат на сопровождение какого то сервиса гораздо меньше. А еще потом оказывается, что если вдруг у вас возникает какая-то проблема — можно не полгода ждать апдейта или патча (который, кстати, может и не выйти), а сбросить описание в коммьюнити или докопаться самому. Оказывается, что ваш разработчик может точно отследить, что, где и как точно происходит и сам поставить патч, даже если никто в мире больше с таким не сталкивается. Могут подсказать куда конкретно и как копать.Конечно, если сложность с тем, что ваши доработки могут не войти в следующий релиз, и с тем, что может появиться форк — но, в целом, всё это решается силами коммьюнити часто намного проще, чем кажется. На больших продуктах, конечно — к ним не относятся все «детские» болезни опенсорса.
Опенсорс-сообщество меньше посылает мелких пользователей, потому что многие — перфекционисты, и баги выслеживаются не в порядке важности клиента. Оргструктура такая, что можно смело послать одного контрагента с поддержи и взять другого. Сообщество само по себе очень дружелюбное в профессиональных вопросах.
Резюме Первый опыт работы с открытым ПО у меня был ещё в НИИ, 8 лет назад. Я крутил почту и ряд сетевых сервисов типа DNS, DHCP, postfix на *nix. Тогда ещё существовал ASP. На рабочей станции использовал Убунту и не знал никаких проблем. В КРОКе мы начали работать с открытым ПО примерно 3 года назад, когда стали появляться решения, всерьёз конкурирующие с enterprise-системами. Поэтому могу точно сказать, что open source-решения — не только для SMB, есть и те, что прекрасно работают в крупных компаниях. А «благодаря» экономической ситуации и вообще отношениям с западными компаниями, тема открытого ПО сейчас очень хорошо развивается.Ну и, кстати, срок окупаемости у таких решений обычно составляет от 1 года до 3 лет, само внедрение при этом — около полугода в среднем. Обычно требуется аудит инфраструктуры; разработка новой экосистемы и обучение сотрудников для внутренней техподдержки хотя бы первой линии. Конкретные расчёты для вашей ситуации могу показать по почте albelyaev@croc.ru. Или приходите к нам на семинар по опенсорсу и вендорозамещению. Мы с коллегами подробно расскажем про разные решения и примеры их внедрений, и даже постараемся показать кое-что интересное в демо-зоне. Регистрация уже открыта.
Очень занимательно ловить грабли на том, как ведёт себя Linux на нескольких тысячах машин: в таком масштабе появляется много интересного. И очень приятно, что какие-то люди из сообщества, которые нам ничего не должны, вместе с нами ночами ищут баги… Кажется, из спортивного интереса. Или потому, что это был их код. Или просто потому, что могут. И это волшебно.
И к слову про бородатых мужиков в свитерах с оленями. Самый частый вопрос ко мне после перехода в КРОК — правда ли, что нужно носить галстук каждый день? Так вот, да, я его носил. Весь испытательный срок.