Выйти из системы

Сменить пользователя

ТОП знаний и навыков директора по ИТ: техническая часть

– Какие технические навыки нужны ДИТу?

– Всё просто: если убрать управленческую часть, которая занимает 80% работы, директор по ИТ — это Senior «на стероидах»

– из диалога с нашим CIO

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

Важно: об отличиях ИТ-директора и технического директора

ИТ-директор (CIO) и технический директор (CTO) – это разные должности, которые требуют специфических скилов. Если коротко, CIO отвечает за управление ИТ-процессами внутри компании, следит за тем, чтобы ИТ-стратегия соответствовала целям бизнеса. Технический директор, в свою очередь, отвечает за ИТ-сервисы “снаружи” – всё то, чем пользуются клиенты. Подробно об отличиях рассказывали тут.

Архитектура ИТ-инфраструктуры

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

1. Серверы

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

Виртуализация – CIO обязан разбираться в технологиях виртуализации, понимать устройство гипервизоров, уметь управлять виртуальными машинами и знать, как работает консолидация.

Облака – CIO должен понимать, как работают облака, а также отличать модели облачных услуг:

  • IaaS (Infrastructure as a Service) – виртуальные серверы, хранение данных и сетевых ресурсов в облаке.
  • PaaS (Platform as a Service) – платформы для разработки, тестирования и развёртывания приложений без необходимости управления серверной инфраструктурой.
  • SaaS (Software as a Service) – готовые приложения, например, CRM, ERP, которые можно внедрить без локальной установки.

Хороший CIO также умеет оценивать предложения провайдеров с точки зрения безопасности, стоимости и соответствия требованиям бизнеса. Кстати, как это делать — мы уже рассказывали.

2. Сети

Локальные сети (LAN) связывают устройства внутри компании. CIO должен понимать принципы проектирования LAN, включая топологии сети (звезда, кольцо, шина), типы кабелей (витая пара, оптоволокно), и устройства (маршрутизаторы, коммутаторы, точки доступа). Также важно учитывать вопросы безопасности – знать про сегментацию сети и использование VLAN для разделения трафика.

Глобальные сети (WAN) соединяют офисы и филиалы компании по всему миру. CIO нужно понимать технологии передачи данных (MPLS, SD-WAN, VPN), которые обеспечивают надёжное и защищённое соединение между географически удаленными офисами.

Виртуальные частные сети (VPN) используются для безопасного соединения удалённых сотрудников и филиалов с корпоративной сетью через интернет. CIO должен разбираться в типах VPN (site-to-site, client-to-site), протоколах шифрования (IPsec, SSL/TLS) и их роли в защите данных при удаленном доступе.

Данные: хранение, управление, аналитика

Данные – ключевой актив современного бизнеса. Грамотное хранение, управление и анализ информации могут стать мощным драйвером роста компании. CIO необходимо владеть этими компетенциями, чтобы превратить массивы данных в ценные инсайты и стратегические преимущества. Рассмотрим основные аспекты работы с данными.

Технологии хранения

SAN (Storage Area Network) — это высокопроизводительная сеть для передачи данных между серверами и устройствами хранения. SAN позволяет централизовать управление данными, обеспечивает быструю передачу и высокую доступность. CIO важно понимать, как интегрировать SAN в инфраструктуру, чтобы добиться отказоустойчивости.

NAS (Network Attached Storage) предоставляет доступ к данным через сеть на уровне файлов. В отличие от SAN, NAS проще в развертывании и управлении, но может иметь ограничения по производительности для высоконагруженных приложений. Толковый CIO умеет определять, когда использование NAS будет оптимальным.

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

Технологии резервного копирования и восстановления данных – CIO не может не разбираться в методах резервного копирования (инкрементальное, дифференциальное, полное) и восстановлении данных, включая DR (Disaster Recovery). Необходимо регулярно проверять и тестировать планы восстановления, чтобы минимизировать потери данных в случае аварий.

Управление и аналитика

Эффективное управление данными начинается с их правильной организации. CIO должен понимать, как:

  • Определять тип данных (структурированные, неструктурированные, полуструктурированные) и классифицировать их. Это помогает при выборе методов хранения и защиты.
  • Создать централизованный каталог (Data Catalog), который обеспечит быстрое и легкое обнаружение нужных данных.

Управление качеством данных – CIO должен внедрить процессы, включающие:

  • Очистку (Data Cleansing): удаление ошибок, дубликатов и аномалий.
  • Обогащение (Data Enrichment): добавление дополнительных данных из внешних или внутренних источников для полноты и контекста.
  • Управление (Data Governance): ведение точных и актуальных метаданных.

Управление данными в реальном времени

  • Обработка потоковых данных (Stream Processing): использование технологий Apache Kafka, Apache Flink или Apache Spark Streaming для анализа данных в реальном времени.
  • Реактивное программирование – парадигма программирования, которая позволяет создавать системы, мгновенно реагирующие на изменения в данных.

Интеграция данных: для создания полноценной аналитической платформы CIO должен организовать интеграцию данных. Важно знать:

  • ETL-процессы (Extract, Transform, Load) – подход, включающий извлечение данных из различных источников, их преобразование в нужный формат и загрузку в централизованное хранилище данных.
  • ELT-процессы (Extract, Load, Transform) – подход, при котором данные сначала загружаются в хранилище, а затем трансформируются, что особенно полезно при работе с большими данными (Big Data).
  • Data Lakes – хранилища данных, способные вместить огромные объёмы сырых, неструктурированных данных, которые могут быть обработаны и проанализированы позже. CIO нужно понимать, как организовать Data Lake, чтобы извлекать максимум пользы из хранившихся данных.

Хранилища данных и платформы

CIO должен быть знаком с различными типами СУБД и понимать, какие из них подходят для конкретных задач:

  • Реляционные СУБД (RDBMS) – системы, которые используют структурированные данные и поддерживают SQL-запросы (например, Oracle, MySQL, PostgreSQL). Идеально подходят для транзакционных систем, где важны целостность данных и поддержка сложных запросов.
  • NoSQL СУБД – нереляционные базы данных. Например, MongoDB, Cassandra, Couchbase. Они лучше подходят для работы с неструктурированными данными и сценариями с высокой масштабируемостью.

CIO также важно понимать, как использовать инструменты для анализа больших объемов данных:

  • Apache Hadoop – фреймворк для распределенной обработки больших данных, который позволяет хранить и обрабатывать огромные объемы данных на кластерах серверов. ИТ-директору стоит знать, как развернуть и управлять Hadoop-кластером, а также использовать экосистему инструментов, таких как Hive, Pig и HBase.
  • Apache Spark – платформа для обработки данных в реальном времени и пакетного анализа, которая обеспечивает высокую скорость и масштабируемость. Spark поддерживает различные языки программирования и может быть интегрирован с Hadoop, что делает его мощным инструментом для работы с большими данными.

Безопасность данных

Одна из задач ИТ-директора — внедрить механизмы управления доступом к данным, чтобы обеспечить их защиту. Например:

  • Role-Based Access Control (RBAC) – назначение доступа на основе ролей сотрудников, что упрощает управление и минимизирует риски утечек данных.
  • Data Masking – маскирование данных, чтобы ограничить доступ к конфиденциальной информации, например, для разработки и тестирования.
  • Data Loss Prevention (DLP) – инструменты для предотвращения утечек данных, которые контролируют и ограничивают доступ к конфиденциальной информации.

Извлечение данных и аналитика

CIO должен понимать, как извлекать данные из различных источников для анализа:

  • SQL и NoSQL запросы – использование SQL для извлечения структурированных данных из реляционных баз данных и специализированных запросов для работы с NoSQL базами данных.
  • API и коннекторы – использование API для извлечения данных из облачных систем и интеграции их с внутренними хранилищами данных.

Анализ данных (Data Analytics)

Ещё одна компетенция хорошего ИТ-директора. Анализ данных включает использование статистических и математических методов для извлечения инсайтов:

  • Descriptive Analytics — анализ исторических данных для выявления тенденций и паттернов, что помогает понять, что произошло в прошлом.
  • Predictive Analytics — применение моделей машинного обучения для прогнозирования будущих событий на основе исторических данных.
  • Prescriptive Analytics — использование аналитических моделей для рекомендации наилучших действий в определенных сценариях, что позволяет оптимизировать бизнес-процессы.

Оркестрация и управление ИТ-инфраструктурой

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

Контейнеризация позволяет развертывать приложения изолированно, обеспечивая их независимость от основного окружения. CIO обязан понимать, как контейнеризация может ускорить развёртывание приложений и облегчить масштабирование.

Автоматизация и оркестрация – CIO должен быть знаком с инструментами типа Ansible, Puppet, Chef и Terraform. Оркестрация процессов, например, в DevOps-среде, позволяет интегрировать и автоматизировать развертывание, тестирование и управление приложениями.

Мониторинг и управление производительностью – ИТ-директору нужно разобраться, как использовать инструменты мониторинга. Например, Nagios, Zabbix, Prometheus. Это поможет отслеживать ключевые показатели производительности (CPU, RAM, I/O, сетевой трафик) и быстро реагировать на проблемы. Важно также понимать роль APM-инструментов (Application Performance Management) в анализе производительности приложений и их влияния на бизнес-процессы.

Управление конфигурацией и изменениями – грамотный CIO умеет использовать CMDB (Configuration Management Database) для отслеживания всех компонентов инфраструктуры и их взаимосвязей. Также он без проблем применяет инструменты управления изменениями, чтобы минимизировать риски и обеспечить контроль над обновлениями и модификациями системы.

Управление жизненным циклом ПО (SDLC)

Software Development Life Cycle, SDLC — процесс, который охватывает все этапы разработки, развертывания и поддержки программных продуктов. В зависимости от характера проекта и бизнес-требований, CIO должен выбрать подходящую методологию SDLC – Waterfall, Agile, Scrum, DevOps, Lean Development. Рассмотрим каждый этап SDLC. 

1. Планирование и анализ требований

Этап включает сбор и анализ бизнес-требований к ПО:

  • Взаимодействие с заинтересованными сторонами (владельцы продуктов, пользователи, руководство) для понимания их потребностей и ожиданий от будущего ПО.
  • Анализ требований для выявления возможных противоречий, пробелов или рисков. На этом этапе создается спецификация требований (Software Requirements Specification, SRS), которая будет служить основой для всех последующих этапов разработки.
  • Оценка технической и экономической осуществимости проекта, включая анализ стоимости, времени разработки, рисков и доступных технологий.

2. Проектирование архитектуры

Этап включает создание архитектуры будущего ПО:

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

3. Разработка

На этапе разработки происходит непосредственное написание кода и реализация проектных решений:

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

4. Тестирование

Тестирование — критически важный этап SDLC, направленный на обнаружение и устранение ошибок:

  • Юнит-тестирование отдельных модулей или компонентов системы для проверки их корректной работы.
  • Интеграционное тестирование – проверка взаимодействия между различными модулями системы. Помогает убедиться в их совместимости и правильной интеграции.
  • Полное тестирование всей системы в целом, включая функциональное тестирование, проверку производительности, безопасности и надежности.
  • Приемочное тестирование (UAT) пользователями для подтверждения, что продукт соответствует ожиданиям и требованиям.

5. Развертывание

Этап развертывания включает подготовку программного обеспечения к запуску в эксплуатацию:

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

6. Поддержка и сопровождение

Этот этап охватывает управление программным обеспечением после его развертывания:

  • Саппорт – поддержка пользователей и устранение ошибок, которые не были выявлены на этапе тестирования.
  • Выпуск обновлений и патчей – могут включать исправления ошибок, добавление новых функций или адаптацию к изменениям в окружающей среде.
  • Управление изменениями – внедрение процессов управления изменениями (Change Management) для минимизации рисков и обеспечения стабильной работы системы при обновлениях.

6. Непрерывная интеграция и развертывание (CI/CD) — это ключевая практика в современном SDLC, которая позволяет быстро и качественно внедрять изменения:

  • Непрерывная интеграция (CI): автоматизация процесса интеграции кода от нескольких разработчиков в общую кодовую базу. CI включает автоматические сборки, тестирование и уведомления о результатах.
  • Непрерывное развертывание (CD): автоматизация развертывания ПО на тестовых и продуктивных средах. CD помогает сократить время выхода продукта на рынок и улучшить качество за счёт автоматизации развертывания и тестирования.

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

Рекомендуем ознакомиться с другими материалами от нашего ДИТа:

5 книг для ИТ-директора: выбор CIO/CTO

Как стать руководителем в ИТ: советы человека, которому удалось дойти до CIO и CTO

Cloud Native – революция в мире разработки

Как разработать ИТ-стратегию

Подписывайтесь на наш канал для будущих и действующих директоров по ИТ.