Восемь лет назад, когда контроль над СУБД MySQL перешел к специалистам корпорации Oracle, новым лидером на рынке баз данных с открытым исходным кодом была объявлена система MariaDB. Как же получилось, что пальма первенства по-прежнему остается у MySQL? Специалисты по разработке и поддержке продукта дают на этот вопрос неожиданный ответ.
В 2010 году, когда компания Oracle приобрела корпорацию Sun Microsystems и вместе с ней портфель продуктов с открытым исходным кодом, включающий базу данных MySQL, для сообщества пользователей продуктов с открытым исходным кодом небо упало на землю. В то время компания Oracle внушала сторонникам решений с открытым исходным кодом такой трепет, что на всей планете уступала по этому показателю разве что корпорации Microsoft. Такую репутацию Oracle заработала несколькими годами ранее, когда прибрала к рукам систему Red Hat Enterprise Linux и объявила о введении такой схемы поддержки этого продукта, которая всеми воспринималась как наглая попытка переманить платных подписчиков Red Hat.
Поскольку корпорация Oracle специализируется на поставке баз данных, главное опасение состояло в том, что она «перекроет кислород» базе данных, выступавшей в качестве несущей конструкции множества коммерческих организаций и веб-сайтов и необходимого компонента многих пакетов с открытым исходным кодом.
Монти Видениус, входивший в команду специалистов, которые начинали работу над MySQL в середине 90-х годов, тут же взялся за проект по преобразованию пакета MariaDB в продукт для экстренной замены MySQL. Среди работников отрасли крепло убеждение, что дело дойдет до решающего противоборства MySQL и MariaDB.
«Когда они заполучили MySQL, многие задавались вопросом: зачем компании Oracle еще одна база данных? — рассказал в интервью ItPro Today Дейв Стоукс, менеджер сообщества MySQL. — Оказывается, администраторы Oracle знали толк в управлении компаниями — поставщиками баз данных. Они трезво оценили наш продукт и предложили пригласить талантливых инженеров и довести все до ума».
Стоукс знает, о чем говорит: он работал в MySQL в то время, когда заключались обе сделки — та, где в роли покупателя выступала компания Oracle, и другая, в ходе которой Видениус со своими партнерами в 2008 году продал корпорации Sun шведскую фирму MySQL AB, в свое время начинавшую работу над базой данных.
Когда корпорация Sun покидала этот мир, сторонникам программного обеспечения с открытым исходным кодом было трудно в чем-то ее упрекнуть. Компания успела передать для распространения по лицензиям на продукты с открытым исходным кодом два драгоценных камня из своей короны: язык программирования Java и подобную UNIX операционную систему Solaris, а также пакет Star Office (позднее известный как OpenOffice.org), свою альтернативу офисному пакету приложений Microsoft Office. Но как бы то ни было, Стоукс помнит, что переход под управление Oracle прошел для его компании более гладко, чем переход в Sun.
«В процессе первой сделки шок был сильнее, ведь мы уходили из MySQL AB, чудесной маленькой скандинавской компании, где служащие имели 27-дневный отпуск плюс национальные праздники, — вспоминает он. — У Sun были свои особенности, и, по-моему, наши новые руководители не очень-то понимали, что с этим делать».
Однако общественность воспринимала ситуацию совершенно по-другому. Когда Sun приобрела MySQL, на это мало кто обратил внимание. Когда же в роли покупателя выступила корпорация Oracle, сторонники программного обеспечения с открытым исходным кодом провозгласили базу данных MariaDB новой королевой. Но ожидавшаяся война баз данных так и не разразилась, что по сей день не дает покоя многим сторонникам открытого исходного кода.
Почему же пыль улеглась так быстро? Есть один секрет, который противники Oracle никак не хотят замечать, и состоит он в том, что Oracle на удивление эффективно разобралась со свойствами открытого исходного кода, унаследованного от корпорации Sun.
Правда, на этом пути новые хозяева сделали несколько неверных шагов, например потеряли контроль над OpenOffice, после того как в результате бунта разработчиков проект был «уведен на сторону» и выпущен под названием LibreOffice. А в 2013 году Министерство внутренней безопасности США рекомендовало пользователям отключить средства для работы с языком Java из-за множества нерешенных проблем с безопасностью.
И хотя пакет OpenOffice со временем оказался под контролем организации Apache Foundation (с точки зрения руководителей Oracle, это, по-видимому, не имело особого значения, ибо проект нельзя было так просто монетизировать), компания в итоге преодолела трудности, связанные с языком Java, и сегодня эта программа является ценной частью ее портфеля решений с открытым исходным кодом.
В работе с MySQL компания Oracle избежала таких ошибок, и, если оставить за скобками тот факт, что Red Hat и несколько дистрибутивов Linux были переработаны под MariaDB, масштабных попыток заменить MySQL другим продуктом не предпринималось, за исключением короткого периода, последовавшего непосредственно за приобретением Sun Microsystems.
По словам Стоукса, это отчасти объясняется не недостатком недоверия со стороны Oracle, а тем, что в MySQL были реализованы средства, не включенные в MariaDB.
Но дело было не только в функциональных возможностях. Со временем стало ясно, что систему MySQL не задвинут и что Oracle не будет преобразовывать бесплатную версию базы данных с открытым исходным кодом в продукт с преднамеренно урезанным функционалом для активизации продаж полноценной версии.
«Любителей побрюзжать всегда хватает, — комментирует Стоукс. — Но когда я хожу на выставки, то часто слышу, как сотрудники Bookings.com или Tencent.com говорят, что Oracle отлично управляется с MySQL. Главный специалист по продвижению ИТ-решений компании Percona Колин Чарльз, который раньше работал в MariaDB, в MySQL, считает, что Oracle оказался потрясающе эффективным администратором базы кода MySQL. Глядя на реализованные в продукте новые возможности, включая даже некоторые дополнительные средства, такие как MySQL Document Store и Group Replication, все отмечают, что это замечательные новации и работают они прекрасно».
Можно назвать и еще одну причину успешного развития проекта MySQL в структуре нового владельца. Дело в том, что, хотя это и удивительно для компании, которую воспринимали как применяющую жесткие методы в отношениях как с клиентами, так и с разработчиками, Oracle не предприняла попытки слишком тесно интегрировать данный проект в свою корпоративную структуру. Хотя Ларри Эллисон и высказывал опасения в связи с тем, что руководил проектом Эдвард Скривен, главный корпоративный архитектор компании.
«Oracle очень редко прибегает к диктаторским методам руководства, — отмечает он. — От нас однозначно потребовали организовать хранение резервных копий на больших резервных накопителях Oracle, обеспечить функционирование средств шифрования в Audit Vault, использовать хранилище ключей шифрования и т. д. Во всех прочих вопросах они полностью полагаются на наши решения. Марк Херд, Сафра Катц, Ларри Эллисон не донимают разработчиков MySQL мелочными проверками на предмет того, ведем ли мы себя как надо. Начальство доверяет нам, а мы делаем свое дело. И кстати, за восемь лет, прошедших с момента нашего перехода в Oracle, продукт стал только лучше благодаря строгому соблюдению технических требований.
Мы как бы действуем в отдельном маленьком бункере. Рич Мейсон, наш руководитель, подчиняющийся Эдварду Скривену, старается поддерживать у нас атмосферу стартапа. Наше подразделение представляется ему полной энергии молодой компанией. Вопросы, относящиеся к нашей компетенции, решаются довольно быстро. Восемьдесят пять процентов наших сотрудников работают из дома, и у нас постоянно идет интенсивное общение — по каналам Slack, по электронной почте, в ходе очных встреч, когда мы имеем возможность собираться вместе. Как ни странно, обстановка у нас больше напоминает MySQL AB, чем атмосфера в самой MySQL AB, когда она была в составе корпорации Sun».
Один из критериев успеха проекта на базе открытого исходного кода, когда он реализуется под контролем частной компании, — это объем поддержки, получаемой проектом от сторонних разработчиков. В качестве менеджера сообщества Стоукс работает с участниками проекта из сообщества MySQL, не связанными с Oracle. Он утверждает, что многие функции MySQL были предложены сторонними разработчиками. По словам Стоукса, функция генерации столбцов, а также последняя версия функции Instant ADD COLUMN были спроектированы в сообществе.
«К сожалению, часть обвинений, выдвигаемых против MySQL, часть стратегии непрямой дискредитации, сводится к стенанию: ‘Ах, они не принимают код от внешних разработчиков!’, — поясняет он. — Второй упрек: всех, кто хочет предложить свой код Oracle, компания обязывает подписать специальное соглашение (Oracle Contributor Agreement). Да вы прочтите его, там всего пять-шесть абзацев, суть соглашения проста. Вы предлагаете действительно свой код, не чей-то чужой, а свой; вы сохраняете за собой такие-то права, мы сохраняем за собой такие, и вот как мы собираемся использовать код».
Стоукс рассказал, что в прошлом году он выступил на конференции разработчиков Linux с презентацией, собравшей множество юристов. Присутствующим было представлено соглашение Oracle с внешним разработчиком, и они убедились, что все в нем понятно и очевидно.
Стоукс отметил, что наряду с этим разработчики MySQL обращают внимание на сообщения об обнаруженных ошибках и на запросы на новые функции, поступающие от сообщества пользователей.
«На фестивале SouthEast Linux Fest был один участник, который в ноябре прошлого года присылал мне сообщения об ошибках на MySQL Workbench, — рассказывает Стоукс. — Он поинтересовался, сколько времени нам понадобится для исправления всего этого. У меня не было на сей счет ни малейшего представления. Я не был знаком с графиком работ по инженерно-технической разработке, а мы в то время как раз в авральном порядке работали над созданием MySQL 8. Так вот, на прошлой неделе этого пользователя оповестили, что его сообщение об ошибках рассматривается и меры по устранению принимаются. На все требуется время, но мы ничего не оставляем без внимания».