Каждый из нас когда-то был начинающим специалистом в области баз данных (администратором, разработчиком, бизнес-аналитиком или инженером). С тех пор для многих прошли годы и даже десятилетия. С чего бы вы начали, если бы пришлось пройти весь этот путь заново, имея в своем распоряжении современные стратегии и технологии обработки данных? Учитывая свой многолетний опыт, какие наставления вы бы дали новичку, осваивающему не только SQL Server, но и платформу данных, не перегружая его информацией? Приближаясь к 15-летней годовщине своей профессиональной деятельности, я задумался об этом.

1999 год

В конце прошлого тысячелетия я готовился окунуться в мир SQL Server как начинающий администратор баз данных. К этому перекрестку я подошел, уже имея опыт работы в области бухучета, графического дизайна, Visual Basic for Applications (VBA), Microsoft Access и Curiosity. Последний продукт оказал самое большое влияние на меня как администратора баз данных, но, что удивительно, все они помогли мне исполнять роли менеджера, владельца бизнеса и инвестора. В те годы я собирал знания везде, где только мог. Теперь мы воспринимаем Интернет и взаимосвязь в глобальном сообществе SQL Server через SQLSaturday (sqlsaturday.com/) и PASS (www.sqlpass.org/), но в те годы, чтобы получить знания, нужно было открыть книгу, взять маркер для выделения важных мест, а затем экспериментировать с методами и подходами на тестовом экземпляре SQL Server 6.5 или 7. В Чикаго тогда прошла первая конференция PASS Summit, до первого мероприятия SQLSaturday оставалось 10 лет; до первого SQL Cruise (www.sqlcruise.com/) — 11 лет, SQL Relay и SQL Rally не существовало, а локальные группы пользователей только зарождались. Конечно, уже появилось несколько веб-сайтов, содержавших ценную информацию об SQL Server, но их было мало. Оглядываясь назад, я вспоминаю, что регулярно посещал лишь один из них — sqlservercentral (www.sqlservercentral.com). В остальном мы росли на публикациях Кэлен Дилани, Ицика Бен-Гана, Кевина Кляйна и других авторов в бумажных журналах.

Конечно, были классы с инструкторами. Обучение через Интернет в те времена еще не проводилось из-за недостаточной полосы пропускания для потокового видео. Я прошел курсы сертификации Microsoft для SQL Server 2000 в местном учебном центре, а также несколько целевых ускоренных курсов в различных местах, и в конечном итоге посетил мою первую конференцию по обработке данных, на которой речь шла об Access, SQL и разработке (далекий предок DEV/IT Connections, www.devconnections.com).

Каждый, кто оказался в роли администратора баз данных SQL Server в 1999 году и в начале 2000-х, вероятно, сталкивался с подобной задачей: читать книги, ходить на учебные курсы и учиться у инструкторов, насколько позволяли время и финансирование, и возиться в собственных маленьких «песочницах». Большинство администраторов оказывалось в таком же положении, как я — единственный специалист по SQL Server в своей компании, — одновременно новоиспеченные администраторы баз данных и технические эксперты, зажатые в тесных рамках. Мы учились в процессе работы, когда устраняли неисправности в своей среде. Кроме того, мы углублялись в интересующие нас технические проблемы в свободное от обслуживания клиентов время. Я называю такой способ обучения реактивным. Вы осваиваете новые методы и навыки под непрерывным давлением обстоятельств, спешно устраняя неполадки в производственных процессах по мере их возникновения. При этом исправления должны быть быстрыми и достаточно надежными.

Сегодня

Современная среда становления профессионала в сфере обработки данных совершенно иная. Существуют многочисленные веб-сайты для изучения любых технологий. В Интернете можно найти записанные лекции, курсы с инструкторами, виртуальные сообщества, такие как PASS Virtual Chapters с регулярно организуемыми встречами, веб-трансляции от бесчисленных поставщиков... Список можно продолжать бесконечно. Книги по-прежнему незаменимы как для первых шагов, так и для углубленного изучения сложных тем.

Однако одновременно с многократным расширением возможностей обучения за последние 15 лет возросла и сложность Microsoft SQL Server: зеркалирование, кластеризация, группы доступности, SSIS, SSAS, объекты динамического управления, расширенные события, Service Broker, оптимизированное для памяти ядро базы данных (In-Memory OLTP)… И это лишь некоторые из технологических усовершенствований только в рамках одной платформы. Виртуализации и «облачных» вычислений 15 лет назад не существовало. Мы делаем первые шаги к «Интернету вещей» (Internet of Things).

Расширение SQL Server (технологическое масштабирование) лишь увеличивает число возможных ответов на вопрос о том, с чего начать.

Устраняем разрыв

В недавно вышедшем в прокат фильме Interstellar для перемещений во времени и пространстве используются «кротовые норы» и черные дыры. Теперь я чувствую необходимость вернуться во времени к первым годам работы в качестве администратора базы данных SQL, когда я обучал нового члена своей группы. Мы объявили об этой должности как о роли начального уровня. Не требовалось никаких знаний об SQL Server. К нам пришел отличный специалист с опытом разработки приложений на языке C# и управления данными (но с позиций потребителей и разработчика приложения).

Вопрос: на что вы направите внимание человека, впервые столкнувшегося с платформой SQL Server в современных условиях, если отсутствует острая необходимость решать конкретную бизнес-проблему?

В нашей группе я исполняю роль руководителя и архитектора, оцениваю требования, назначаю ресурсы и проектирую решения в соответствии с уровнем обслуживания на основе требований к критичности и высокой доступности. В группе также есть старший и младший администраторы баз данных, которые внедряют решения и обеспечивают стабильность и целостность среды SQL Server. Перед нашей новой сотрудницей не ставились задачи немедленного устранения неисправностей в отсутствие базовых знаний (реактивное обучение), поскольку в отличие от типичного начинающего администратора баз данных у нее была поддержка со стороны организованной группы. Так в какую сторону ее направить и какие технологии использовать для обучения? День за днем смотреть в книгу или экран компьютера, поглощая знания… Тюрьма без стен и решеток.

В первый же день я обратился к ней со словами:

«Мы будем совершать ошибки; вы запустите какую-нибудь программу не на том сервере. Это неизбежно, но мы располагаем продуманной стратегией резервного копирования и восстановления. Людям свойственно ошибаться».

Затем я спросил, как она предпочитает учиться.

Новое всегда пугает, ведь так легко допустить ошибку и вызвать проблемы. Это сопряжено с уровнем владения, ответственности и прав, назначенных нам, чтобы мы могли выполнять свою работу. Задавая вопрос, я хотел, чтобы новая сотрудница помогла мне выбрать лучший метод обучения, к которому она наиболее восприимчива. Конечно, придется посидеть над книгами и посетить интернет-курсы, но одновременно ей будут предоставлены инструменты и среда для учебы в самом удобном для нее режиме.

Теперь следующий вопрос: на какие области платформы Microsoft SQL Server следует в первую очередь направить внимание начинающего администратора баз данных?

Большую роль играет опыт. Представьте, что вы нашли в пещере волшебную лампу, и джинн готов исполнить любое ваше желание. Что вы пожелаете? Услышав такой вопрос в действительности, вы наверняка растерялись бы. С чего начать? Похожая ситуация с учебой. Путь к изучению SQL Server, определенный процессом сертификации Microsoft, содержит классы по запросам Microsoft SQL Server (курс 461) и администрированию SQL Server (курс 462). Я записал новую сотрудницу в эти два класса и она начала знакомиться с продуктом через сайт компании Pluralsight. Ее ответ на вопрос о методах обучения соответствовал впечатлению, полученному при первом собеседовании, и типичным предпочтениям людей, склонных к наукам о данных — она учится в процессе работы. В первый день мы установили SQL Server 2014 Express Edition на ее ноутбуке, чтобы предоставить ей «песочницу» для экспериментов. Затем нужно было указать направление движения, чтобы она не только освоила принципы SQL Server, но и стала полезным членом группы.

Реактивное обучение и связь учебы с практикой

Учеба сама по себе приносит определенное удовлетворение. Польза для группы или компании — недостающий фрагмент процесса обучения, если вы не решаете задачи, актуальные для вашей среды. Учеба с целью когда-нибудь принести пользу — длинный темный туннель, свет в конце которого не приближается. Связь с практикой — одно из преимуществ процесса реактивного обучения. Одновременно обучаясь и решая практические задачи, вы скоро становитесь полезным. Ваша учеба имеет немедленное практическое применение. Это не то, что может быть помещено на годы в банковскую ячейку, а затем изъято, как некий вклад. Изоляция от актуальных задач без одновременного освоения знаний и навыков защищает среду и поддерживает статус-кво для членов группы и клиентов, но снижает ощущение важности и актуальности у учащегося и подрывает долгосрочный успех, отрицательно влияя на чувство удовлетворенности. Одно лишь знание не делает человека более ценным членом команды в долгосрочной перспективе.

Полезность + творчество + основные принципы = успех

Скоро нам предстоит обновить стратегию резервного копирования за счет перехода к программе дедупликации и записи резервных копий непосредственно в нее из SQL Server; замена текущей стратегии локального резервного копирования SQL Server с последующим извлечением локальных копий системой на основе агентов для записи в долговременное хранилище. Восстановление — вероятно, самая критически важная функция для администратора баз данных. Кто-то может сказать, что важнее время бесперебойной работы, согласованность или что-то еще, но, по-моему, если вы не можете восстановить данные после сбоя, то все остальное бесполезно. Поэтому, в силу критической роли резервных копий для успешного восстановления баз данных, можно сделать логический вывод, что резервные копии почти столь же важны. Не зря это один из первых принципов, которые усваивает администратор баз данных. И я в первую очередь обращаю внимание нового администратор баз данных на эту область.

Конечно, нужно выучить теорию. Есть доля истины в утверждении, что без понимания принципов хранения и извлечения данных в Microsoft SQL Server (страницы, экстенты и т.д.), регистрации транзакций и внутренних механизмов журнала транзакций невозможно принимать грамотные решения в области резервного копирования и восстановления данных. Но чрезвычайно важно найти баланс между теорией и практикой. Кроме того, мы получаем преимущество благодаря совпадению во времени процесса перехода к новым технологиям и процессам с приемом на работу нового администратора баз данных: мы избавляемся предубеждений в своих подходах.

Чужая душа — потемки. Душа специалиста по обработке данных, пожалуй, вообще мрак. Я представляю себе помещение, в одной половине которого вещи упорядочены по размерам, цвету и сотням других параметров. Другая половина выглядит как комната подростка. Нам, конечно, нравится порядок, но живем мы в хаосе. Нам нравится создавать новое, но в еще большей степени мы привыкли к поддержанию состояний и фиксации процессов. Наше текущее решение резервного копирования надежно работает, но при этом потребляет много ресурсов памяти, а время восстановления могло бы быть лучше. Мы развернули сотни серверов с одинаковыми настройками, изменить которые будет очень трудно.

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