Карьера администратора баз данных

Базы данных являются ядром любой информационной системы: АСУ ТП или ERP система на предприятии, компьютерная игра или социальная сеть, аналитическая или мониторинговая система и пр. Соответственно, она является критическим компонентом, сбой или недостаточно эффективная работа которого влияет на все остальные компоненты и работу пользователей.

Администратор баз данных выполняет задачи и несет ответственность за надежную и производительную работу баз данных,  сохранность и защиту данных.

db-adm-areas

Варианты работы администратора

На рисунке (выше) описаны основные компетенции администратора баз данных. Важно, что эти компетенции требуют знаний в смежных областях, таких как системное администрирование и информационная безопасность, анализ данных, проектирование и оптимизация баз данных, разработка приложений.

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

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

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

В некоторых случаях может быть гибридный подход: для одних систем, внедряемых или разрабатываемых внешним подрядчиком разрабатывается регламент поддержки, и администратор БД работает в режиме «черного ящика», т.е. строго по регламенту, без изучения функций этих систем.

Если же система является внутренней разработкой, то администратор может работать в режиме «белого ящика» и принимать участие в этом проекте как проектировщик, разработчик или оптимизатор БД.

Начало карьеры и миграция

Начало карьеры в любой области является самым сложным моментом, поскольку нет пока карты знаний и конкретных профессиональных целей.

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

Также может быть вариант перехода из одного подразделения в другое, например из технической поддержки в администраторы. Могут быть ситуации смены профессиональных целей, когда человек понимает, например, что программирование для него не так интересно, и он решил перейти в администраторы БД или системные.

db-adm-ways

Стратегия профессионального развития

Профессиональное развитие имеет два измерение: вертикальное — углубленное изучение; и горизонтальное — смежные компетенции и кругозор. С одной стороны, важно глубоко понимать архитектуру и функциональные возможности, конкретные профессиональные техники (best practices). И на рынке труда считается, что эксперт (узкий специалист) может иметь более высокий уровень оплаты.

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

В идеале можно сформировать экспертный уровень компетенции в одной-двух областях (на каждую область требуется 5-10 лет интенсивной практики), широкий кругозор и достаточно глубокое владение смежными компетенциями.

Для профессионального развития можно выделить следующие подходы:

  • Работа с разными СУБД — изучение разных технологий позволяет лучше понимать каждую из них и может помочь в развитии экспертного уровня компетенций.
  • Системное администрирование и безопасность — большинство задач по администрированию БД связано с системными настройками и ресурсами, правами доступа. Один из типичных сценариев это совмещение функций системного администратора и администратора БД.
  • Виртуализация — технология для повышения гибкости и надежности использования ресурсов.
  • Настройка аппаратной конфигурации — критичная задача для настройки производительности высоконагруженных программно-аппаратных комплексов. Специфическая для оборудования и вендоров (производителей).
  • Оптимизация БД — постоянная критическая задача для любой достаточно большой и нагруженной БД.
  • Анализ данных — умение читать выполняемый код, анализировать системные данные с помощью SQL это необходимый навык для диагностики и решения проблем.
  • Разработка скриптов на PowerShell и T-SQL для Microsoft SQL Server (PL/SQL для Oracle и пр.) — написание административных и прикладных скриптов позволяет автоматизировать рутинные задачи и внедрить проактивный мониторинг (автоматическое раннее обнаружение и  реагирование на известные проблемы).
  • Разработка БД и клиентских приложений — полезно при внедрении программных решений, когда на этапе опытной эксплуатации полная или частичная поддержка СУБД находится на стороне подрядчика.

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

Уровни профессионального развития

Microsoft разработала набор отличных инструментов для администратора БД, благодаря которым решение простых задач является технически несложным. Но это обманчивая легкость не значит, что администрирование является простой и легкой работой. Поскольку важно понимать архитектуру и функциональные возможности информационной системы в целом (не ограничиваясь только СУБД), чтобы видеть и контролировать последствия своих действий.

Вначале для администратора важно научиться выполнять стандартный регламент по обслуживанию СУБД. Для этого важно изучить базовые профессиональные практики и научиться использовать инструменты.

db-adm-lvlsСледующий уровень это опыт поддержки баз данных для нагруженных и критичных приложений, внедрение или разработка диагностических решений, и взаимодействие с другими администраторами и разработчиками.

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

Начальное обучение

Каждый вендор предлагает для своей СУБД набор курсов. У Microsoft есть курсы для разных версий SQL Server (2012, 2014, 2016).

Начать обучение по администрированию БД можно с курсов 20764 и 20765.

Оптимизация БД рассматривается на курсе 10987.

Обеспечение высокой доступности, кластеризация, управление группой серверов рассматривается на курсе 20465.

Научиться писать сложные SQL-запросы и разрабатывать представления, функции и хранимые процедуры можно на курсах 20761 и 20762.

Ресурсы для углубленного изучения
Redgate (english): Базы данных и программирование
Блог Александра Гладченко
T-SQL.RU. Всё об MS SQL Server (Алексей Князев)
SQL Server Central
SQL Server Customer Advisory Team
SQL Server Community (Toad World)