Татьяна Бахаревская, заместитель технического директора Mail.Ru Group
Татьяна Бахаревская,
заместитель технического директора Mail.Ru Group
27.06.2018

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

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

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

ИТ-компании уже сталкивались со всеми этими факторами на протяжении последних десятков лет и накопили в этих областях достаточный объем экспертизы. Настало время поделиться этими знаниями с коллегами.

Предлагаем рецепты, которые помогут решить основные задачи, стоящие сегодня перед ИТ-директором.

Аудит и сокращение количества используемых технологий и программного обеспечения

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

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

Список технологий для инженеров. Нужен список технологий, которые используются и поддерживаются внутри компании. Их должно быть ограниченное количество. Такое ограничение дает удобство эксплуатации, более глубокую экспертизу и возможность перехода между командами/отделами.

Утилизация ресурсов

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

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

Пересмотр архитектуры IT-систем компании и переход к концепции микросервисов

Если для реализации небольшого изменения нужно пересобрать и затем протестировать существенную часть IT-систем, то стоит обратить внимание на современную концепцию микросервисов. Использование такой концепции позволит вашим приложениям общаться между собой через API, при этом сами приложения будут не очень большие, поэтому и их можно будет легко менять и тестировать.  

Полная автоматизация

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

Предоставить удобную среду для разработки

В свое время было принято отключать сервера разработки в случае проблем в дата-центре в первую очередь, однако это не всегда рационально. Если у вас часто возникают такие ситуации, то надо посчитать, сколько стоит простой отдела разработки в вашей организации, и сравнить эту цифру с той, которую вы затратите на дублирование продуктива. В моей жизни имела место ситуация, при которой было дешевле выключить часть продуктива, чем остановить разработку. Итак, любите и цените время разработчиков. Внедрите у себя небольшое приватное облако на платформе OpenStack или Kubernetes либо на их аналоге. С этим вам помогут грамотные и опытные системные интеграторы. Это нужно для того, чтобы разработчики могли в нужном количестве самостоятельно за несколько минут создавать себе виртуальный сервер для разработки и тестирования различных версий программ.

Облака

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

Задачи по построению или расширению ИТ-инфраструктуры сопряжены с целым рядом сложностей и затрат. Необходимо нанять системных администраторов, сформировать перечень необходимого оборудования, подключить каналы связи, заключить договоры с ЦОДами. Всего этого можно избежать, когда на помощь приходит облако, предоставляющее инфраструктуру как сервис. В свою очередь, инженеры и специалисты из службы технической поддержки провайдера облачных услуг возьмут на себя заботу обо всем.

Передача поддержки платформы для запуска приложений провайдеру облачных услуг

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

Расширение возможностей с помощью гибридных облаков

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

Формирование команды

Важна мотивация. Интересные и современные инженерные задачи в первую очередь привлекут грамотных инженеров к вам в команду. Далее вам решать, как именно у вас будет устроена разработка, эксплуатация и тестирование. Есть практики, когда это все объединено в одном сотруднике, а есть - когда это разные люди. Вопрос договоренностей внутри. На практике работают оба подхода, но важна специализация - или на проекте, или на зоне ответственности.

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

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

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

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

Мнения авторов рубрики "Точка зрения" могут не совпадать с позицией редакции ComNews.ru, не влияют на выбор и освещение новостей в других частях газеты