Привет, Хабр! На связи Т1 Цифровая Академия из Холдинга Т1. Сегодня хотим рассказать, как мы добились того, что 233 специалиста перешли с Oracle на PostgreSQL всего за 10 месяцев. В начале 2022 года внешние условия резко поменяли картину мира и ИТ-отрасль. Во-первых, иностранные поставщики решений — Microsoft, IBM, Cisco, Adobe и не только — ушли с российского рынка, и ИТ-специалисты остались один на один с отечественными разработками и альтернативными ИТ-решениями, которые приходилось изучать по ходу работы. Во-вторых, в среднем отрасли не хватает около 1 млн ИТ-специалистов, особенно уровня middle и senior. На поиск кандидатов с опытом от 6 лет может уходить до полугода. Такое положение дел заставляет бизнес искать альтернативы найму новых сотрудников с нужными знаниями. Как представители одного из лидеров ИТ-отрасли мы понимаем, что сейчас постоянный апгрейд знаний в ИТ — основа основ. Компаниям выгодней взрастить текущие кадры, раскрыть их сильные стороны и улучшить навыки, чем потратить от 3-х месяцев на поиск идеального кандидата в условиях нехватки кадров. Одна российская компания обратилась к нам за помощью — ей требовалось импортозаместить Oracle на PostgreSQL за 1 год. По оценкам команд это заняло бы минимум 1,5 года из-за отсутствия специалистов по PostgreSQL, затяжной миграции и низкой мотивации специалистов.  Такой длительный переход мог существенно затормозить бизнес-процессы: если в процессе перехода лицензия закончится, то купить новую уже не получится; при отсутствии технической поддержки со стороны Oracle нельзя будет устранить технические ошибки, из-за которых можно остаться без функционирующих БД как у всей компании, так и у заказчиков. Сбои в работе ПО, которые работают на основе БД, могли бы повлечь и более серьезные проблемы. А потеря данных была бы вовсе критической. Так что компании-заказчику был необходим такой инструмент, который бы ускорил миграцию баз данных и не повлек за собой экономические риски. Oracle — это реляционная система управления базами данных (СУБД) с  широким набором инструментов и функций для хранения, управления и обработки данных. Она разработана компанией Oracle Corporation и является коммерческим продуктом. Еще в 2019 году, по данным опроса TAdviser, 81% российских компаний использовали СУБД Oracle и только 51% — PostgreSQL.  Так как Oracle — одна из самых популярных в мире, легче найти ИТ-специалиста, который умеет с ней работать. Высокотехнологичность и управляемость системы делает ее гибкой для настройки и изучения. Среди основных преимуществ Oracle: Масштабируемость: Oracle способен обрабатывать большие объемы данных и поддерживать высокую производительность даже при большом количестве одновременных пользователей. Надежность: Oracle обеспечивает высокую степень отказоустойчивости и защиты данных. Богатый набор функций: Oracle предлагает множество расширенных функций, таких как поддержка транзакций, резервное копирование и восстановление данных, шифрование и другие. Качественная техническая поддержка, к которой можно обратиться при возникновении проблем. Что насчет PostgreSQL? Это тоже реляционная система управления базами данных, но с открытым исходным кодом. Она разрабатывается международным сообществом разработчиков PostgreSQL Global Development Group. Характеристики PostgreSQL включают: Масштабируемость: PostgreSQL умеет работать с большими объемами данных, поддерживать сложные запросы, объединять десятки таблиц. Подключаться к БД можно одновременно с многих устройств благодаря MVCC. Поддержка JSON: PostgreSQL имеет встроенную поддержку для работы с данными в формате JSON, что делает его удобным для работы с современными веб-приложениями. Надежность: PostgreSQL поддерживает ACID и предоставляет различные методы репликации данных, что позволяет создавать отказоустойчивые и масштабируемые системы. Расширяемость — важная особенность PostgreSQL. В инструменте есть возможность включать и создавать extension — микропрограммы, расширяющие функционал СУБД. Можно писать функции на нескольких языках программирования, добавлять свои типы данных и новые типы индексации, разрабатывать хранимые процедуры и функции на языках PL/PgSQL и PL/SQL. PostgreSQL стала наиболее привлекательной альтернативой Oracle и вполне может заменить эту СУБД. По словам экспертов, инструмент обладает высокой производительностью и выдерживает сервисы с большими нагрузками. Его используют такие крупные компании, как Alibaba, Sony, TripAdvisor и другие. Открытый доступ инструмента делают его независимым от внешних условий — его не могут отключить или заблокировать. Так как PostgreSQL некоммерческий продукт, компаниям не нужно платить за лицензирование и зависеть от технической поддержки, которую не смогут оказать в России. При миграции с Oracle на PostgreSQL стоит учитывать особенности новой СУБД. Многофункциональность PostgreSQL позволяет работать с большими данными, что влияет на скорость и требует достаточного объема памяти компьютера. Однако в зависимости от типа ситуации скорость может быть не так важна, как качество полученных данных, а PostgreSQL с этим справляется. Важно помнить, что у PostgreSQL нет такой оперативной технической поддержки, как у Oracle. При этом появляются отечественные разработки такие, как PostgreSQL Pro, где техподдержку смогут оказать российские разработчики данной СУБД. Чтобы учесть все эти особенности, ИТ-специалистам нужно проходить дополнительное обучение — PostgreSQL требует настройки, изучения функций и понимания нюансов, чтобы исключить ошибки при переносе данных и последующей поддержки перенесенных проектов. Миграция данных из одной СУБД в другую может нести разные трудности. В основном это связано с несовместимостью различных параметров систем: Архитектур в целом Форматов кластеризации/репликации/бэкапов Форматов данных Форматов процедурных языков Функционала Поддержкой софтом новой СУБД В любом случае перед миграцией необходимо провести тщательное тестирование и проверку целостности данных, чтобы убедиться, что при переносе они сохранят свою точность. Простой перезалив данных может привести к ошибкам. При миграции данных из Oracle в PostgreSQL может быть выполнен следующий алгоритм: Воспользоваться автоматизированными утилитами для миграции, например, для Oracle — это ora2pg.   Найти все несовместимости и устранить их, переписать необходимые функции и процедуры. Уделить много времени тестированию и профилированию запросов Разработать функциональное и нагрузочное тестирование. Не торопиться отключать исходную систему после миграции. Чтобы провести миграции максимально эффективно, требуется понимание, как работает новый инструмент. Специалистам, которые хотят перенести данные с Oracle на PostgreSQL, нужно изучать особенности и учитывать их при миграциях. Целесообразно доверить этот процесс тем, кто в дальнейшем будет оказывать техпомощь проекту. Наш заказчик столкнулся не только с тем, что у сотрудников не было опыта работы с PostgreSQL, но и с низкой мотивацией: только 26% сотрудников хотели перейти на новый инструмент. При этом все специалисты, которые участвуют в разработке и поддержке ПО, должны уметь работать с реляционными системами. Среди них разработчики, аналитики, тестировщики, поддержка, сопровождение, ci/cd инженеры, DE, DS. В первую очередь им нужно знать основы реляционных БД, основы операционных систем Linux, уметь работать в консоли. По данным исследования Работа.ру и Heaad, знание SQL находится в топ-3 навыках для аналитиков и разработчиков. Поиск специалистов, которые бы умели работать в PostgreSQL, потратил бы много ресурсов клиента — рынок испытывает дефицит в аналитиках (10,4% от всех размещенных вакансий в ИТ), специалистах технической поддержки (9,7%), тестировщиках (7,7%). Так что, переобучить специалистов по Oracle было логичным и естественным решением. И мы как поставщик образовательных решений приступили к комплексной работе. Чтобы понять уровень знаний специалистов компании-заказчика, мы провели исследование: сделали аудит текущих рабочих задач и процессов и оценили навыки сотрудников. При тестировании мы смотрели на: Знание реляционных БД Опыт работы в Linux Опыт внедрения баз данных Опыт миграции данных Опыт администрирования БД Опыт внедрения изменений Лидерские качества Опыт публичных выступлений По итогам аудита, из 233 инженеров мы отобрали 31 специалиста с навыками, подходящими под выполнение первых самых сложных миграций. Им предстояло пройти индивидуальное обучение в течение 2 месяцев: первые команды детально разбирали проблемы на проектах и решали их при поддержке экспертов Т1.  Инженеры, прошедшие курс, транслировали прогресс в сообщества и проводили субкультурное обучение. Лидеры в неформальной обстановке собирали коллег, чтобы поделиться своими успехами миграции и удобствах новой системы.  По сути, они стали центрами компетенций, лидерами мнений, которые могли мотивировать своим примером коллег, давать консультации и отвечать на вопросы: за 3 месяца в чатах сообществ набралось 700 человек, которые обращались за помощью к инженерам. Вместе они разбирали нестандартные случаи и сложные кейсы по темам архитектуры, кластеризации, формата данных и процедурных языков, минимизации даунтайма. Первое обучение инженеров стало основой для составления миграционных шаблонов, примеров скриптов и списка самых распространенных ошибок, с которыми можно столкнуться при миграции в этой компании. Эксперты Т1 и лидеры изменений решали, как лучше масштабировать полученные знания на их команды, они вместе пилотировали и улучшали программу для будущих потоков. Это помогло повысить компетенции сотрудников по многим направлениям сразу: Базовый инструментарий Архитектура Организация данных Управление доступом Резервное копирование и репликации Выполнение запросов Доступы, роли, атрибуты, привилегии Статистика – границы распределения данных в таблице Профилирование Приемы оптимизации Работа через Hibernate Миграция данных Во время обучения сотрудники выполняли практические задания, а в последующем полученные навыки помогли им успешно начать заниматься основной рабочей задачей — миграцией данных в PostgreSQL. Чтобы внедрить обучение в жизнь компании, мы вместе с HR и лидерскими командами провели внутреннюю кампанию, в которой использовали интегрированный подход к коммуникациям: доносили информацию до сотрудников через разные каналы, например, корпоративный портал, сообщества и чаты, раскручивали сарафанное радио или лично направляли инженеров с навыками миграции данных пройти первое обучение. Еще мы создали систему оперативного консультирования: от инженеров -> к лидерским командам компании -> до экспертов Т1. Сотрудники могли ознакомиться с FAQ или задать собственный вопрос в чатах, проекте в Jira или на регулярных встречах. Мы также создали экспертный совет по автоматизации миграции и разработке шаблонов, результаты работы которого упростили рабочие процессы многим командам. В общем, у сотрудников были все ресурсы, чтобы быстро найти ответы на свои вопросы и обучиться новому инструменту. После обучения 93% сотрудников успешно справились с практическими заданиями, 233 специалиста по Oracle перешло на задачи по PostgreSQL. Процент желающих специалистов перейти на новый инструмент вырос с 26% до 73%. Компания перешла на PostgreSQL за 10 месяцев вместо планируемых 1,5 лет. Таким образом, компания смогла решить задачу перехода с Oracle на PostgreSQL быстрее, дешевле и эффективнее с помощью правильно проработанного содержания обучения и процесса его проведения. Нам удалось масштабировать знания инженеров, которые первыми прошли обучение PostgreSQL, на других сотрудников компании и с помощью лидерских команд популяризировать новые инструменты.