**Models**
1. Определение сервиса, примеры сервиса в информационных системах:
Сервис - специальная служба предоставляющая некоторые услуги
google workspace
2. Определение удаленного сервера, примеры реализации:
это программный сервер, к которому можно получить доступ через сеть. Принадлежит компании или арендуется у хостинг-провайдера в облаке, на виртуальных мощностях.
Примеры: Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), IBM Cloud.
3. Определение облачных вычислений, основные характеристики, примеры реализации:
Модель обеспечения удобного сетевого доступа по требованию к некоторому общему фонду конфигурируемых вычислительных ресурсов, которые могут быть оперативно предоставлены и освобождены с минимальными эксплуатационными затратами или обращениями к провайдеру
4. Модели развертывания облачных систем, основные поставщики, примеры реализации:
Поставщики: microsoft azure, amazon web services, openstack, ibm bluemix, google cloud platform
Частное облако - инфраструктура, предназначенная для использования 1 оргой, включающей несколько потребителей
Публичное облако - инфраструктура, предназначенная для свободного использования широкой публикой
Общественное облако - вид инфраструктуры, предназначенной для использования конкретным сообществом потребителей из организаций
Гибридно облако
5. Модель услуги «приложение как услуга» SaaS, описание, основной функционал, примеры существующих систем
представляет собой форму предоставления программного обеспечения через интернет. В этой модели пользователи не обязаны устанавливать, обновлять и поддерживать приложение на своих устройствах, так как оно размещается на удаленных серверах, а доступ осуществляется через веб-браузер.
google workspace, office 365, spotify
6. Модель услуги «платформа как услуга» PaaS, описание, основной функционал, примеры существующих систем
В модели PaaS предоставляется платформа, предназначенная для разработки, тестирования и развертывания приложений, без необходимости управления инфраструктурой поддержки. Пользователям предоставляются инструменты для создания собственных приложений, а инфраструктурные аспекты (серверы, сети, хранилища) управляются облачным провайдером.
Heroku, azure
7. Модель услуги «инфраструктура как услуга» IaaS, описание, основной функционал, примеры существующих систем
Модель IaaS предоставляет виртуальные вычислительные ресурсы через интернет. В этой модели пользователи получают доступ к виртуальным машинам, сетевым ресурсам и хранилищам данных, позволяя им создавать и управлять своей собственной инфраструктурой без необходимости владения и управления физическими серверами и оборудованием.
vmware, amazon web services,
8. Какие услуги предоставляют современные облачные системы, назначение, примеры использования
Вычислительные услуги (Compute Services):
Назначение: Предоставление виртуальных машин для выполнения вычислительных задач.
Примеры использования: Запуск веб-приложений, обработка данных, научные расчеты.
Хранилище данных (Storage Services):
Назначение: Обеспечение пространства для хранения и управления данными.
Примеры использования: Хранение и обмен файлами, резервное копирование, хранение баз данных.
Базы данных как сервис (Database as a Service - DBaaS):
Назначение: Управление базами данных без необходимости заботы о физической инфраструктуре.
Примеры использования: Хранение и обработка структурированных данных, управление информацией о клиентах.
Сетевые услуги (Networking Services):
Назначение: Обеспечение сетевой инфраструктуры для подключения и взаимодействия ресурсов.
Примеры использования: Виртуальные частные сети, балансировка нагрузки, управление DNS.
Управление идентификацией и доступом (Identity and Access Management - IAM):
Назначение: Контроль доступа к ресурсам и управление идентификацией пользователей.
Примеры использования: Аутентификация, авторизация, управление ролями и правами.
Интеграция и разработка API (Integration and API Services):
Назначение: Предоставление средств для интеграции приложений и разработки API.
Примеры использования: Разработка собственных API, интеграция с внешними сервисами, создание микросервисов.
Управление сервисами (Management Services):
Назначение: Предоставление инструментов для управления облачными ресурсами и сервисами.
Примеры использования: Мониторинг производительности, управление ресурсами, резервное копирование.
Искусственный интеллект и аналитика (AI and Analytics Services):
Назначение: Предоставление инструментов для анализа данных и внедрения искусственного интеллекта.
Примеры использования: Машинное обучение, аналитика больших данных, обработка естественного языка.
10. Определение DevOps, основные методики, используемый инструментарий, примеры реализации современных систем
методология автоматизации технологических процессов сборки, настройки и развертывания ПО
Методология предполагает активное взаимодействие специалистов по разработке со специалистами по информационно-технологическому обслуживанию и взаимную интеграцию их технологических процессов друг в друга для обеспечения высокого качества продукта
методики:ci/cd(непрерывная интеграция, непрерывное развертывание), контейнеризация, инфраструктура как код, мониторинг и регистрация
Используемый инструментарий:
кодирование
сборка
тестирование
упаковка
релиз
настройка
мониторинг
непрерывная поставка
непрерывная интеграция
10. Основные задачи и направления DevOps, примеры
задачи:
Уменьшение времени разработки и релиза
снижение тех. долга
уменьшение хрупкости продукта
направления:
методология разработки
автоматизация
тестирование
11. Описание монолитной архитектуры, основные элементы, преимущества и недостатки, примеры реализации современных приложений
традиционная модель разработки ПО, в которой одна база кода используется для выполнения нескольких бизнес-функций. Все программные компоненты монолитной системы взаимосвязаны из-за использования встроенных механизмов обмена данными внутри системы
Простота разработки и тестирования: Единый кодовый базис упрощает процессы разработки, отладки и тестирования.
Производительность: Монолитные приложения часто более эффективны в работе, так как они имеют единое пространство имен и взаимодействуют напрямую.
Легкость в развертывании: Все компоненты приложения могут быть развернуты вместе, что упрощает процесс развертывания и обновления.
Недостатки монолитной архитектуры:
Масштабируемость: Масштабирование монолитных приложений может быть сложным, так как все компоненты должны масштабироваться вместе.
Гибкость и изменения: Внесение изменений в монолит может быть сложным, особенно в случае крупных приложений, и может потребовать пересборки всего приложения.
Зависимость компонентов: Если один из компонентов приложения требует обновления, это может повлиять на всю систему.
12. Описание сервис-ориентированной архитектуры, основные элементы, преимущества и недостатки, примеры реализации современных приложений
модульный подход к разработке ПО, базирующийся на обеспечение удаленного по стандартизированным протоколам использования распределенных, слабо связанных легко заменяемых компонентов со стандартизированными интерфейсами
Модульность и переиспользование: Сервисы могут быть независимо разработаны, тестированы и переиспользованы в различных контекстах.
Гибкость и масштабируемость: Легкость добавления, изменения и масштабирования сервисов обеспечивает гибкость архитектуры.
Интеграция существующих систем: SOA позволяет интегрировать новые сервисы с существующими системами, предоставляя гибкие пути обновления.
Стандартизированные интерфейсы: Использование стандартизированных протоколов облегчает взаимодействие между сервисами и различными технологиями.
Недостатки сервис-ориентированной архитектуры:
Сложность управления: Управление большим числом сервисов, их версиями и зависимостями может быть сложным.
Производительность: Зависимость от внешних сетевых вызовов может влиять на производительность.
Сложность отладки и тестирования: Тестирование и отладка системы, включающей множество взаимодействующих сервисов, может быть сложным.
13. Описание микросвервисной архитектуры, основные элементы, преимущества и недостатки, примеры реализации современных приложений
вариант сервис-ориентированной архитектуры ПО, направленный на взаимодействие насколько это возможно небольших, слабо связанных и легко изменяемых модулей - микросервисов
Гибкость и масштабируемость: Микросервисы могут быть разработаны, развернуты и масштабированы независимо друг от друга.
Легкость в разработке и обслуживании: Каждый микросервис может быть написан на разных языках программирования и иметь свои собственные требования к технологиям.
Независимость: Ошибки в одном микросервисе не обязательно влияют на остальные, так как они являются отдельными сущностями.
Легкость внесения изменений: Можно вносить изменения в отдельные микросервисы, не затрагивая всю систему.
Недостатки микросервисной архитектуры:
Сложность управления: Управление большим количеством микросервисов, их развертывание и координация, может быть сложным.
Сложность тестирования: Тестирование взаимодействия между микросервисами и общей системой требует специального внимания.
Сложность обеспечения консистентности данных: Поддержание консистентности данных между разными микросервисами может быть вызовом.
14. Технологии используемые в сервис-ориентированной архитектуры, назначение и способы применения
corba
SOAP (Simple Object Access Protocol):
Назначение: Обеспечение стандартизированного протокола для обмена структурированными информационными сообщениями в распределенной среде.
Применение: Часто используется в веб-службах (Web Services) для обмена данными между клиентами и серверами.
очередь сообщений
форма асинзронной коммуникации между сервисами. сообщения хранятся в очереди пока не будут обработаны и удалены. сообщения обрабатываются 1 раз и 1 потребителем
сервисная шина предприятия
программный архитектурный шаблок, поддерэивающий обмен данными между разнородными приложениями в режиме real time
15. Технологии используемые в микросервисной архитектуре, назначение и способы применения
REST
CONSUL
Системы управления конфигурацией (например, Consul, etcd):
Назначение: Хранение и управление конфигурацией микросервисов, обеспечивая динамическую настройку и обнаружение сервисов.
Применение: Эти системы облегчают поддержку согласованных конфигураций и обнаружение сервисов в распределенной среде.
NoSQL(нереляционка)
DOCKER(контейнеры)
KUBERNETES(управление контейнерами)
CLOUd NATIVE
16. Определение среды окружения (Environment), переменные окружения, примеры реализации
в информатике совокупность значений системных переменных, путей, открытых файловых дескрипторов и других ресурсов операционной системы, передаваемые процессу при его запуске
переменные
текстовая переменная операционной системы, хранящая какую-либо информацию - например данные о настройках системы
17. Определение виртуализации, назначение и возможности, виды виртуализации, примеры реализации современных систем
предоставление набора вычислительных ресурсов или их логистического объединения, абстрагированное от аппаратной реализации, и обеспечивающее при этом логическую изоляцию друг от друга вычислительных процессов, выполняемых на одном физ ресурсе
гипервизор - специальное ПО, позволяющее создавать виртуальные машины и управлять ими
VM - изолированная система, которая прдеставляет собой логический сервер внутри физ машины со своим набором вычислительынх сощностей и операционной системой
хост виртуализации - физ сервер с запущенным на нем гипервизором
18. Определение гипервизора, назначение и возможности, примеры реализации
гипервизор - специальное ПО, позволяющее создавать виртуальные машины и управлять ими
virtualbox, vmware
19. Определение контейнерной виртуализации, назначение и возможности, примеры реализации
метод виртуализации, при котором ядро операционной системы поддерживает несколько изолированных экземпляров пространства пользователя вместо одного
docker
20. Определение жизненного цикла разработки программного обеспечения, описание основных фаз, примеры
планирование
проектирование
разработка и внедрение
эксплуатация и поддержка
утилизация и обновление
21. Описание основного цикла разработки современных информационных систем по методологиям DevOps
Жизненный цикл разработки программного обеспечения — это последовательность этапов, которые проходит программный продукт от начала создания до его вывода из эксплуатации. ЖЦ РПО предоставляет фреймворк для управления процессом разработки, обеспечивая структурированный подход к созданию и поддержке программного обеспечения.
Основные фазы ЖЦ РПО:
Планирование:
Описание: Определение целей проекта, оценка рисков, определение ресурсов и составление плана разработки.
Примеры: Определение сроков, бюджета, составление графика работ.
Разработка:
Описание: Непосредственная реализация программного продукта с использованием выбранных технологий.
Примеры: Написание кода, тестирование отдельных компонентов, интеграция.
демонстрация
Тестирование:
Описание: Проверка программы с целью обнаружения и устранения ошибок и дефектов.
Примеры: Модульное тестирование, интеграционное тестирование, системное тестирование.
Развертывание (внедрение):
Описание: Внедрение программного продукта в реальное окружение пользователя.
Примеры: Установка программы на сервер, обучение пользователей, настройка системы.
Эксплуатация и сопровождение:
Описание: Поддержка и обслуживание программного продукта в процессе его использования.
Примеры: Предоставление технической поддержки, внесение изменений и улучшений.
22. Гибридная методология разработки, описание, преимущества и недостатки, примеры современных подходов
Гибридная методология разработки представляет собой комбинацию элементов различных методологий и подходов к управлению проектами. Этот подход создан с целью адаптироваться к уникальным требованиям и характеристикам конкретного проекта. В гибридных методологиях обычно комбинируются элементы традиционных (водопадных) и гибких (Agile) методологий, а также других методов управления проектами.
Гибкость: Гибридные методологии позволяют адаптировать процесс разработки под конкретные условия проекта, что особенно полезно при сложных проектах с разными требованиями.
Эффективное использование ресурсов: Гибридные методологии позволяют использовать преимущества гибких и традиционных методов в соответствии с конкретными этапами проекта, что способствует более эффективному использованию ресурсов.
Прозрачность: Комбинирование различных методологий может сделать процесс разработки более прозрачным, обеспечивая лучшее понимание состояния проекта на каждом этапе.
Управление изменениями: Гибридные методологии лучше справляются с изменениями в требованиях, поскольку они предоставляют механизмы для быстрой реакции на изменения.
Недостатки гибридной методологии:
Сложность управления: Сложность комбинирования различных методологий может создавать трудности в управлении проектом, особенно для менее опытных команд.
Риск несогласованности: Несогласованность между различными методами может привести к проблемам в совместимости и понимании процесса разработки.
Сложность предсказания сроков: Из-за гибкости гибридных методологий, оценка времени выполнения проекта может быть сложной задачей.
23. Водопадная методология разработки, описание, преимущества и недостатки, примеры современных подходов
Водопадная методология (Waterfall) — это традиционная линейная модель разработки программного обеспечения, где процесс разделен на последовательные фазы. Каждая фаза представляет собой логическое продолжение предыдущей, и проект движется вперед, подобно тому как вода течет по водопаду. Основные фазы водопадной методологии включают в себя:
Определение требований (Requirements): Определение требований к системе, формулирование спецификаций.
Проектирование (Design): Разработка архитектуры, проектирование системы.
Реализация (Implementation): Написание кода и создание компонентов.
Тестирование (Testing): Проведение тестирования для выявления дефектов и ошибок.
Внедрение (Deployment): Внедрение разработанной системы.
Преимущества водопадной методологии:
Простота управления: Водопадная модель легко управляется и понимается, поскольку она представляет собой последовательный процесс.
Жесткий контроль над проектом: Каждая фаза имеет четкую цель, и переход к следующей фазе происходит только после завершения предыдущей, что обеспечивает более жесткий контроль над процессом.
Удобство для небольших проектов с четкими требованиями: Если требования к проекту хорошо определены и мало подлежат изменениям, водопадная методология может быть эффективной.
Недостатки водопадной методологии:
Неспособность адаптироваться к изменениям: Водопадная модель не предусматривает изменения требований после начала проекта, что может привести к проблемам при изменении условий или потребностей заказчика.
Долгий цикл разработки: Из-за линейной структуры, цикл разработки в водопадной модели может быть долгим, а клиент может увидеть конечный результат только в конце проекта.
Отсутствие обратной связи: Пользователь или заказчик участвует в процессе разработки только в конечной фазе, что может привести к тому, что выявленные проблемы становятся дорогостоящими для исправления.
24. Определения системы контроля версий, назначение, свойства, преимущества и недостатки, примеры современных систем/
позволяет хранить несколько версий одного и того же документа, при необходимости возвращаться к более ранним версиям, определять, кото и когда сделал изменение и тд.
История изменений: Позволяет отслеживать каждое изменение и возвращаться к предыдущим версиям.
Коллективная работа: Разработчики могут работать над проектом параллельно, интегрируя свои изменения.
Безопасность и восстановление: Защищает проект от случайного удаления или повреждения, обеспечивая восстановление предыдущих версий.
Управление конфликтами: Решение конфликтов при слиянии изменений от разных разработчиков.
Недостатки систем контроля версий:
Сложность использования: Некоторые системы могут потребовать времени и усилий для изучения и понимания.
Необходимость подключения к интернету (для централизованных систем): В централизованных СКВ требуется соединение с сервером для работы.
git, subversion
25. Определение удаленного репозитория системы контроля версий, назначение, свойства, примеры современных систем
Удаленный репозиторий системы контроля версий (СКВ):
Удаленный репозиторий в системе контроля версий (СКВ) представляет собой хранилище, которое расположено на удаленном сервере и служит центральным местом для совместного хранения и управления кодом проекта. В этом удаленном репозитории хранится история изменений, внесенных различными разработчиками, и он обеспечивает механизм для совместной работы над проектом.
Назначение удаленного репозитория:
Централизация кода: Удаленный репозиторий служит единой точкой доступа для всех разработчиков, где они могут хранить и получать обновления кода.
Совместная работа: Разработчики могут работать параллельно над различными частями проекта, а затем обмениваться своими изменениями, интегрируя их в общий код.
Резервное копирование: Удаленный репозиторий служит надежным местом для резервного копирования проекта, что предотвращает потерю данных.
Свойства удаленного репозитория:
Доступ по сети: Удаленные репозитории доступны по сети, что позволяет разработчикам работать с ними удаленно.
Управление правами доступа: Многие системы контроля версий предоставляют средства для управления правами доступа к удаленному репозиторию.
Механизм слияния (merge) изменений: Удаленный репозиторий поддерживает процессы слияния, чтобы интегрировать изменения от различных веток или разработчиков.
26. Определение системы управления пакетами (зависимостями), основные функции, преимущества и недостатки, примеры современных систем
набор программного обеспечения, позволяющего управлять процессом установки, удаления, настройки и обновления различных компонентов ПО. менеджеры пакетов предназначены для устранения необходимости ручной установки и обновления
работа с файловыми архиваторами для извлечения архивов
обеспеение целостности и подлинности пакета путем проверки их контрольных сумм и цифровых сертификатов
поиск, загрузка, установка или обновление существующего ПО из репозитория ПО или магазига приложений
Групировка пакетов по функциям для уменьшения путаницы пользователей
управление зависимостями для обеспечения установки пакета со всеми необходимыми пакетами, тем самым избегая "ада зависимостей"
PIP, npm, yum
множество зависимостей
длинные цепочки
конфликты зависимостей
циклические зависимости
27. Определение репозитория, назначение, примеры современных реализаций
место, где хранятся и поддерживаются какие-либо данные
npm, maven, nuget, pip
28. Определение локальных репозиториев, назначение, примеры современных реализаций
инструмент, предназначенный для хранения результатов сборки ПО и использования их в процессах распространения и развертывания:
jfrog artifactory
29. Определение системы непрерывной интеграции, назначение, преимущества и недостатки, примеры современных систем
CI - практика разработки ПО, которая заключается в постоянном слиянии рабочих копий в общую основную ветвь разработки и выполнении частых автоматизаций сборок проекта для скорейшего выявления потенциальных дефектов и решения интеграционных проблем
Раннее выявление ошибок: Проблемы в коде выявляются на ранних этапах, что снижает затраты на их исправление.
Улучшение качества кода: Автоматические тесты и анализ кода способствуют повышению общего качества программы.
Быстрая поставка: CI облегчает частые итерации разработки, что позволяет быстрее внедрять новый функционал.
Автоматизация процессов: Автоматизированные процессы уменьшают вероятность человеческих ошибок.
Недостатки систем непрерывной интеграции:
Необходимость времени и ресурсов: Настройка системы CI и ее поддержка требуют времени и ресурсов.
Сложность интеграции в некоторых проектах: В некоторых проектах с большим объемом кода и сложной архитектурой настройка CI может быть сложной.
30. Определение системы непрерывной доставки, назначение, преимущества и недостатки, примеры современных систем
подход к разработке ПО, при котором ПО производмтся короткими итерациями, гарантируя, что ПО является стабильным и может быть передано в эксплуатацию в любое время, а передача его не происходит вручную. Целью является сборка, тестирование и релиз ПО с большей скоростью и частотой
Снижение рисков: Автоматизация уменьшает риск человеческих ошибок при развертывании, что способствует стабильности системы.
Гибкость в развертывании: Возможность быстро и гибко внедрять новый функционал или вносить изменения в существующий.
Ускорение цикла разработки: Быстрые итерации разработки благодаря непрерывной доставке ускоряют цикл разработки.
Эффективное использование ресурсов: Автоматизированные процессы могут выполняться в любое время, что оптимизирует использование ресурсов.
Недостатки систем непрерывной доставки:
Требует инвестиций в автоматизацию: Реализация непрерывной доставки требует значительных инвестиций в автоматизацию тестирования, развертывания и мониторинга.
Не подходит для всех проектов: Некоторые проекты, особенно те, которые не требуют частых изменений и развертывания, могут не получить полной выгоды от непрерывной доставки.
31. Современный инструментарий систем CI/CD, функционал, способы применения
jenkins
docker
TC
32. Понятия репликации в информационных сервисах, назначение, современные методики репликации
механизм синхронизации содержимого нескольких копий объекта. Процесс, под которым понимается копирование данных из одного источника на другой и наоборот. При репликации изменения, сделанные в одной копи объекта могут быть распространены в другие копии
snapshot, cloud, транзакционная
33. Понятия синхронизации в информационных сервисах, назначение, современные методики синхронизации
отсносится к одной из двух различных, но взаимосвязанных концепций: синхронизация процессов и данных. процессов относится к идее о том, что несколько проектов должны объединится или совершить рукопаожатие в определенный момент, чтобы достичь соглашения. Данных сохранение несколькиз копий набора данных в согласованности файловая
34. Понятия балансировки нагрузки в информационных сервисах, назначение, современные методики
метод распределения заданий между несколькими сетевыми устройствами с целью оптимизации использования ресурсов.
36. Определение сети доставки (и дистрибуции) содержимого (CDN), назначение, современные реализации
географически распределенная сетевая инфраструктура, позволяющая оптимизировать доставку и дистрибуцию содержимого конечным пользователям в сети интерент
36. Определение сервисной шины предприятия, назначения, современные реализации
37. Что такое Docker, назначение, основной функционал, способы применения
38. Что такое образ и контейнер docker, способы создания
39. Описание Dockerfile, возможности, примеры сценариев
40. Что такое docker-compose, назначение, основной функционал, способы применения
41. Описание docker-compose.yml, возможности, примеры сценариев
42. Что такое Gitlab, назначение, основной функционал, способы применения
43. Что такое Gitlab runner, назначение, основной функционал, способы создания и
настройки
44. Что такое Gitlab CI, назначение, основной функционал, способы применения
45. Описание файла «.gitlab-ci.yml», возможности, примеры сценариев
46. Что такое артефакт в системе Gitlab CI, примеры сценариев
47. Что такое переменные окружения в системе Gitlab CI, примеры сценариев
48. Что такое этапы и задачи в сценариях Gitlab CI, основные элементы, способы
создания
49. Что такое цепочки зависимых задач в сценариях Gitlab CI, основные элементы,
способы создания
50. Что такое ветки в системах контроля версий, особенности, способы применения
51. Что такое проект в системе Gitlab, назначение, основной функционал, способы
применения