exam24 - stankin/inet-2022 GitHub Wiki

Билет 24

1. Понятие центра обработки данных. Основные элементы инфраструктуры.

2. Применение современных технологий коллективной разработки программных средств в веб-программировании.

◀️ Реферат к вопросам экзамена по дисциплине Интернет-технологии 1 курса магистратуры ▶️

Выполнил: Горнак Данила ИДМ-22-02, Николаева Виктория ИДМ-22-07, Ротач Роман ИДМ-22-01, Narzullayev Bahriddin IDM-22-03, Лскавян Армен ИДМ-22-04, Анисимов Егор ИДМ-22-08

ТЕКСТ РЕФЕРАТА

Центр обработки данных (дата-центр)

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

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

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

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

Задачи

Любой бизнес стремится максимально увеличить свои доходы и снизить расходы. Руководители крупных компаний знают, что лучше потратить чуть больше средств на модернизацию процессов, чем потерять огромные суммы на ликвидацию непредвиденных обстоятельств. Поэтому перед ЦОД ставится ряд основных задач. К ним относятся:
  • хранение и анализ большого количества информации;
  • обеспечение безопасности IT-систем;
  • максимальная доступность данных;
  • безотказность систем;
  • объединение распределенных систем;
  • обеспечение бесперебойной работы.

Все это в конечном итоге ведет к повышению надежность бизнеса. Фильм «Архитектура интернета. Дата-центр» рассказывает массовому зрителю, что такое дата-центр, его инфраструктура, как работа ЦОДов связана со всеми сферами современной жизни. Съемки велись в здании московской междугородной телефонной станции № 9 (ММТС-9), а также в центрах обработки данных DataPro, «Роскосмоса», столичной сети дата-центров 3Дата.

Преимущества для бизнеса

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

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

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

  • Надежность хранения информации. Причем эта надежность подтверждается как заложенной на этапе проектирования архитектурой, так и последующей эксплуатацией. Интересный факт, что при детальном сравнении стоимости владения информационной системой, расположенной на территории заказчика (как правило, это бизнес-центр) и в дата центре, получаются вполне сравнимые цифры, чего нельзя сказать о сравнении надежности этих способов.
  • Уменьшение временных затрат на реализацию новых проектов в сфере IT. При работе в дата-центре компании самостоятельно выбирают услуги, которые они хотят получать. Самыми востребованными остаются аренда стойки, юнита, готового сервера, виртуального сервера и резервное копирование данных. Но помимо этого существует ряд других услуг, которыми компании-арендаторы могут при необходимости воспользоваться, что значительно сэкономит время на запуск нового IT-проекта. Например, это аренда приложений, позволяющая избежать масштабных инвестиций на начальном этапе работы. В качестве примера можно привести аренду 1С бухгалтерии – для развертывания готовой системы, пригодной к работе, достаточно заказать и оплатить такую услугу в дата центре. При этом, зачастую, в офисе заказчика не нужно ничего покупать, устанавливать или настраивать, кроме как доступа в Интернет.
  • Сокращение затрат на аренду помещения. Сюда можно отнести затраты на электричество, офисные площади, используемые под «серверные», и обслуживание собственных систем охлаждения и устройств бесперебойного питания. Кстати, купленная в офис техника становится основными средствами предприятия, на них начисляется налог на имущество.
  • Организация непрерывной работы головного офиса с филиалами компании по всей стране. доступ к рабочей информации независимо от места нахождения сотрудника. Например, руководитель компании может, находясь в отпуске, проверять рабочую почту, связываться со своими сотрудниками через IP-телефонию.
  • Возможность создания резервного офиса организации, если по каким-то причинам работа в основном офисе невозможна, а необходимо получить важную информацию, доделать проект сокращение затрат на покупку приложений. Для усиления конкурентных позиций собственники дата-центров разрабатывают новый спектр услуг, который можно предлагать арендаторам.

Первыми, кто стал использовать в своей работе центры обработки данных, были крупные зарубежные компании. За ними последовали и российские предприниматели. В РФ в 2000-2001 годах появились первые обладатели ЦОД. Пионером выступил Сбербанк России. Именно он является наиболее территориально-распределенной организацией. То есть потребность в создании интеграции многочисленных данных была высока. В дальнейшем собственными ЦОД обзавелись и крупные нефтяные компании.

1. Понятие центра обработки данных. Основные элементы инфраструктуры.

Центр обработки данных (ЦОД, дата-центр) – единая многокомпонентная система, которая призвана обеспечивать бесперебойную автоматизированную работу бизнес-процессов. Центры обработки данных создаются в первую очередь для увеличения производительности компаний, активно использующих в своей деятельности информационные технологии, а также для повышения качества предоставляемых услуг [1].

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

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

  • электроснабжение;
  • кондиционирование;
  • безопасность;
  • диспетчеризация [3].

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

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

  • корпоративные дата-центры;
  • хостинговые дата-центры, предоставляющие компьютерную инфраструктуру как услугу (IaaS);
  • дата-центры, использующие технологию Web 2.0.

Ниже приведены параметры, которые могут значительно отличаться в разных типах дата-центров:

  • тип трафика (внутренний, внешний или смешанный);
  • использование Layer 2 (L2) и/или Layer 3 (L3) для управлення трафиком в центре или на периферии (Top of Rack);
  • технология хранения данных;
  • уровень серверной виртуализации;
  • общий размер центра обработки данных (по количеству серверов) [1].

В ЦОД на относительно небольшой площади сосредоточены мощные вычислительные ресурсы: сервера и системы хранения данных (СХД), осуществляющие хранение и обработку информации; сетевое оборудование, отвечающее за обмен данными внутри ЦОД, а также за связь с внешними потребителями; инженерные системы, системы безопасности, системы диспетчеризации и мониторинга, обеспечивающие эффективную работу и защиту сосредоточенного в ЦОД вычислительного центра.

Так как от работы ЦОД зависит надежность всей информационной системы, уровень услуг, предоставляемых компанией своим клиентам, производительность труда сотрудников, то к ЦОД предъявляются следующие основные требования:

  • обеспечение непрерывности функционирования всех информационных систем;
  • высокая производительность обработки и передачи данных;
  • доступность данных и приложений;
  • надежность хранения данных, высокая емкость хранения;
  • отказоустойчивость;
  • катастрофоустойчивость;
  • высокая степень масштабируемости всех систем ЦОД (с учетом 5-10 лет активного развития компании) [4].

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

  • клиентские рабочие места (персональные компьютеры и ноутбуки);
  • серверы для централизованного доступа и обработки данных;
  • сети передачи данных, в том числе беспроводные;
  • дата-центр или центр обработки данных ЦОД;
  • автоматизированные рабочие станции;
  • системы информационной безопасности;
  • программное обеспечение.

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

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

2. Применение современных технологий коллективной разработки программных средств в веб-программировании.

Git/GitHub/GitLab - как технология коллективной разработки программных средств. С помощью этого сервиса над кодом проекта может работать неограниченное количество программистов из любых точек мира. В GitHub есть система контроля (управления) версий Git: сервис позволяет просматривать и контролировать любые изменения кода любым разработчиком и возвращаться к состоянию до изменений. В целом GitHub — это социальная сеть для разработчиков, в которой можно найти проекты с открытым кодом от других разработчиков, практиковаться в написании кода и хранить свое портфолио. Так же есть и другие типы систем контроля версий, например: Mercurial, Subversion (SVN) и Perforce [11].

Проект в GitHub хранится в репозитории (repository) — коллекции всех изменений создаваемого кода. Если вы будете работать над проектом в одиночку — вам нужно создать новый репозиторий. Если в вашем проекте несколько разработчиков — каждый из них будет клонировать репозиторий первоначального создателя проекта [6].

GitLab предоставляет возможности:

  • Создание. Написание кода, управление им и внесение правок, синхронизация файлов.
  • Проверка. Включены инструменты CI/CD, доступна интеграция с Github, есть проверка качества написания кода, нагрузочные тесты.
  • Управление. Для доступа к проекту нужно пройти двухфакторную аутентификацию. Также доступна поддержка токенов и SSO. Сервис осуществляет аналитику продуктивности участников, предоставляет трекинг задач.
  • Мониторинг. Отслеживание производительности приложений, управление инцидентами, отправка логов.
  • Планирование. Отслеживание проблем и контроль затраченного времени.
  • Управление контейнерами и репозиториями. Работа Gitlab с Docker.
  • Сканирование уязвимостей, поддержка SAST и DAST.
  • Релизы. Есть возможность запускать CI/CD в разных окружениях, доступны канареечные релизы (безопасное тестирование кода или частичный выпуск), оркестровка релизов.
  • Конфигурирование. Поддержка Kubernetes, без серверные вычисления.
  • Защита. Обеспечение сетевой безопасности проектов[8].

GitHub так же предоставляет множество возможностей, однако есть ряд отличий которые являются критериями выбора для многих разработчиков, вот некоторые из них:

  • Импорт/экспорт данных — GitLab предлагает гораздо более подробную документацию о том, как импортировать/экспортировать данные от внешних поставщиков, в то время как документация второго не такая подробная. GitLab способен импортировать проекты и проблемы из большего количества источников, чем GitHub. При этом GitHub предлагает инструмент под названием GitHub Importer для ввода данных.
  • Платформа развертывания — GitHub не поставляется со встроенной платформой развертывания и требует сторонней интеграции с внешним приложением для развертывания приложений. С другой стороны, GitLab использует Kubernetes для беспроблемного развертывания.
  • Экспорт файла CSV — GitLab способен экспортировать файлы CSV с проблемами на адреса электронной почты уведомлений по умолчанию в виде вложений.
  • Циклическая аналитика — GitLab предоставляет панель мониторинга для анализа времени, планирования и мониторинга.
  • Графики выгрузки — В отличие от GitHub, второй предлагает Burndown Charts как часть этапов, которые позволяют разработчикам отслеживать прогресс во время спринтов или при работе над новыми версиями программного обеспечения.

CI/CD — одна из практик DevOps, подразумевающая непрерывную интеграцию и доставку. Этот набор принципов предназначен для повышения удобства, частоты и надежности развертывания изменений программного обеспечения или продукта. CI/CD относится к agile-практикам и позволяет разработчикам уделять внимание реализации бизнес-требований, качеству кода и безопасности продукта.

Цели CI/CD:

  • обеспечение последовательного и автоматизированного способа сборки, упаковки и тестирования продуктов или приложений;
  • автоматизация развертывания в разных окружениях;
  • сведение к минимуму ошибок и проблем [9].

Для CI/CD существуют четыре руководящих принципа:

  1. Разделение ответственности. Каждый из участников процесса делит ответственность за те или иные этапы жизненного цикла продукта. Проектируется бизнес-логистика, внедряются сквозные функции, проводятся приемочные тесты и организуется логистика кода.
  2. Снижение рисков. Каждая команда, участвующая в разработке продукта, стремится к снижению рисков — контролируется корректность бизнес-логистики, проверяется пользовательский опыт, улучшается хранение и обработка данных и прочее.
  3. Сокращение цикла обратной связи. Разработчик и клиент должны стремиться к увеличению скорости внесения изменений и согласования правок. Сборку и тестирование кода можно автоматизировать. А для ситуаций, когда требуется участие человека, можно минимизировать число информационных посредников.
  4. Реализация среды. У разработчиков должно быть общее рабочее пространство с основной и вспомогательными ветками для контроля версий и качества, приемлемости, отказоустойчивости и других критериев [10].

Подытоживая, можно сказать следующее: CI упаковывает, тестирует сборки и оповещает разработчиков, если что-то пошло не так. CD автоматически разворачивает приложения и выполняет дополнительные тесты.

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

CI/CD является одной из [DevOps-практик], поскольку направлена на борьбу с противоречиями между разработчиками, которые хотят часто вносить изменения, и эксплуатацией, требующей стабильности. Благодаря автоматизации, разработчики могут вносить изменения чаще, а команды эксплуатации, в свою очередь, получают большую стабильность, поскольку конфигурация окружений стандартизирована и в процессе поставки осуществляется непрерывное тестирование. Также настройка переменных окружения отделена от приложения и присутствуют автоматизированные процедуры отката.

Эффект от внедрения CI/CD-конвейеров можно измерить в виде [ключевых показателей эффективности (KPI) DevOps]Такие KPI как частота поставки (deployment frequency), время реализации изменений (change lead time) и среднее время восстановления после инцидента (mean time to recovery) часто улучшаются при внедрении CI/CD с непрерывным тестированием. Однако CI/CD — это лишь один из процессов, который может способствовать этим улучшениям. Есть и другие условия для увеличения частоты поставки.

Для начала работы с CI/CD команде разработчиков и эксплуатации необходимо совместно определиться с технологиями, практиками и приоритетами. Команды должны выработать консенсус в отношении правильных подходов к своему бизнесу и технологиям, чтобы после внедрения CI/CD команда постоянно придерживалась выбранных практик [9].

ИСТОЧНИКИ

  1. 📑 Tadviser: Центры обработки данных - ТЕХНОЛОГИИ для ЦОД
  2. 📑 Skillfactory: ЦОД (центр обработки данных, дата-центр)
  3. 📑 itglobal: Как устроен центр обработки данных
  4. 📑 sonetnn : Центр обработки данных (ЦОД, дата-центр)
  5. 📑 StudFiles: Корпоративные информационные системы
  6. 📑 Wikipedia: Github
  7. 📑 Gitlab: The One DevOps Platform
  8. 📃 Github.com
  9. 💬 Habr: Что такое CI/CD
  10. 💬 Medium: CI/CD
  11. 💬 Prognote: GitHub и GitLab
  12. 💬 Центр обработки данных (дата-центр)
  13. 💬 ЦОД
⚠️ **GitHub.com Fallback** ⚠️