«Яндекс» перевел свой почтовый сервис «Яндекс.Почта» с СУБД Oracle на открытое решение PostgreSQL. Процесс занял более трех лет. В компании отметили, что отказаться от решений американского поставщика они решили из-за его сложности и нерасторопности поддержки производителя.
«Яндекс.Почта» на новой СУБД
Компания «Яндекс» осуществила переход с СУБД Oracle на PostgreSQL — свободное программное обеспечение с открытым исходным кодом.
В 2000 г. «Яндекс» запустил «Яндекс.Почту». Изначально все данные хранились и обрабатывались в СУБД Oracle. В настоящее время сервисом пользуются более 10 млн человек ежедневно, ежедневно серверы компании принимают свыше 150 млн писем, общий объем хранимых данных — более 20 ПБ.
Решение отказаться от Oracle
В 2012 г. «Яндекс» принял решение отказаться от СУБД Oracle и сделать это в течение ближайших трех лет. В 2013 г. разработчики начали экспериментировать с различными альтернативами: PostgreSQL, NoSQL, самописным решением на базе платформы, используемой в поиске «Яндекса».
Этапы перехода
К концу 2014 г. был создан прототип системы для «Яндекс.Почты» на базе PostgreSQL. После чего началась основная фаза разработки, она продлилась год — до января 2016 г. После этого началась миграция аккаунтов на новую систему, она длилась до апреля текущего года. Полностью перевод «Яндекс.Почты» на PostgreSQL был завершен в июле. В общей сложности работа заняла 10 человеко-лет (эквивалентно работе 10 людей в течение 1 года). Она была выполнена исключительно собственными силами компании, уточнил CNews представитель «Яндекса» Владимир Исаев.
Один из крупнейших российских вендоров PostgreSQL — компания Postgres Professional — отказался прокомментировать свое возможное участие в проекте, сославшись на «соглашение о конфиденциальности», которое «не позволяет комментировать проекты с “Яндексом”».
Мотивы отказа от Oracle
По словам представителей «Яндекса», к переводу сервиса на новую СУБД их побудили: неотзывчивая служба технической поддержки Oracle, большой объем ручных операций, закрытость кода, неудобное развертывание и большие затраты на содержание.
«PostgreSQL – открытая система, поэтому мы можем сами оперативно решать возникающие проблемы. Это важно для сервиса, работающего в режиме 24/7. Кроме того, в PostgreSQL кэш библиотек не блокируется, а значит развёртывание изменений (в том числе и на этапе тестирования) становится проще», — добавил Исаев.
На сегодняшний день в «Яндексе» переведена на открытую СУБД PostgreSQL только «Яндекс.Почта». В компании не стали отвечать на вопрос, планируется ли перевод на эту СУБД других ее сервисов.