Инфраструктура и DevOps Flashcards
Виртуальна машина
Эмулирует работу физического компьютера
Сокрытие конкретной реализации за универсальным стандартизованным методом обращения к ресурсам. Иными словами, это создание абстракции над аппаратным обеспечением.
Эмулятор
Имитирует работу аппаратного обеспечения с точностью до низкоуровневых деталей для обеспечения полной совместимости.
Отличия VM от симулятора и от эмулятора
- VM - обеспечивают изолированную среду для запуска ОС
- Симулятор - моделирует поведение устройств или процессов
- Эмулятор - имитирует реальное аппаратное обеспечение
Что такое контейнер и чем он отличается от виртуальной машины?
Рабочий экземпляр образа - независимого приложения, упакованное вместе со всем необходимым для работы: включая код, библиотеки, настройки и зависимости.
Используют виртуализацию на уровне операционной системы. В отличие от ВМ, контейнеры разделяют ОС хоста, но изолируют процессы приложений друг от друга. Контейнер содержит приложение и все его зависимости, но общается с ядром хостовой ОС.
Преимущества контейнеров:
- Легковесность: контейнеры требуют меньше ресурсов, так как не включают гостевую ОС.
- Быстрый старт и остановка: контейнеры запускаются и останавливаются за секунды.
- Эффективность: позволяют эффективнее использовать ресурсы системы и упрощают процессы CI/CD.
Недостатки контейнеров:
- Ограниченная изоляция: контейнеры менее изолированы по сравнению с ВМ, что может снижать безопасность.
- Зависимость от ОС хоста: все контейнеры должны использовать ту же операционную систему, что и хост.
Как используются виртуальные машины и контейнеры в автоматизации?
В докер контейнерах могут подниматься браузеры, системы ci типа jenkins, selenoid и т.д.
Что такое IaaS и PaaS?
Приведите примеры.
IaaS (Infrastructure as a Service/инфраструктура как услуга). Сюда относят вычислительные ресурсы: виртуальные серверы, хранилища, сети. Это что-то вроде виртуальных «компьютеров», на которые можно установить что угодно: ОС, ПО, приложения.
Поставщик IaaS (инфраструктуры как сервиса), или облачный провайдер, уже все купил и собрал, обеспечил серверы электричеством и интернетом. Вам остается только подключиться к этим вычислительным мощностям через интернет и использовать их для своих целей.
Примеры IaaS:
- Перенос IT-систем в облако
- Экономия на инфраструктуре
- Быстрый запуск бизнеса
- Расширение инфраструктуры
- Инфраструктура для компаний со скачками спроса
- Разработка и тестирование
PaaS (Platform as a Service/платформа как услуга)- уже настроенные инструменты (платформы) под разные задачи.
Ключевое отличие PaaS от IaaS в том, что здесь у вас есть определенные инструменты, например: система управления БД, среда машинного обучения или обработки big data. Их нужно настроить под потребности компании, но не надо строить с нуля. Что позволяет экономить время разработчиков. Например, не нужно возиться с разработкой БД, можно просто загрузить в нее информацию и работать.
При этом нет доступа к ОС, настройкам виртуальных серверов, которые лежат в основе PaaS, а также к низкоуровневым настройкам самой платформы. Провайдер берет на себя их оптимальную конфигурацию и снимает с вас необходимость следить за настройками, обновлениями, масштабированием и безопасностью. Вы получаете доступ только к интерфейсам самой платформы.
Примеры PaaS:
- БД
- Разработка приложений в контейнерах
- Аналитика больших данных
- Машинное обучение
SaaS (Software as a Service/программное обеспечение как сервис)— полностью настроенная и готовая к работе программа, выполняющая определенные функции. Единственное отличие технологии SaaS от программы на смартфоне или компьютере в том, что сам софт находится в облаке.
Примеры SaaS:
- электронная почта
- CRM-системы
- планировщики задач
- веб-конструкторы для создания сайтов
- платформы для ведения блогов
Что такое Configuration Management?
Configuration Management (управление конфигурацией проекта)– идентификация, создание, поддержание и контроль конфигурации в ходе проекта.
Основная задача: в любом момент времени иметь доступ к 100% актуальной версии конфигурационного элемента, которые необходимо использовать, и быть уверенным, что ни один конфигурационный элемент не конфликтует с другими конфигурационными элементами.
Этапы:
- Идентификация конфигурации проекта и создание начальной (базовой) конфигурации проекта
- Начальная конфигурация продукта
- Начальная конфигурация проекта
- Разработка плана управления конфигурацией проекта
- Контроль конфигурации в ходе проекта
___
Управление конфигурацией – это управление наборами рабочих продуктов и их версиями.
- идентификация рабочих продуктов;
- стабилизация результатов работы и определение базы для дальнейшей работы;
- отслеживание запросов на изменение;
- контроль версий;
- обеспечение параллельности разработки;
- сбор метрик и формализация применяемых методов.
https://habr.com/ru/articles/67751/
Что такое Provisioning?
Процесс предоставления и настройки ресурсов, необходимых для работы приложений или системы.
Какие команды Linux Shell вам известны?
- pwd - вывести текущую (рабочую) директорию.
- date - вывести текущую дату и время системы.
- w – показывает кто авторизован в системе.
- ls – вывести содержимое директории.
- cd – изменить текущую директорию.
- mkdir – создать директорию.
- rm – удалить файл.
- cp – копировать файл или директорию.
- mv – переместить или переименовать файл или директорию.
- cat – вывести содержимое файла(или файлов).
- tail – вывести последние измененные строки файла.
- less - иногда текстовый файл слишком большой, и неудобно выводить его командой cat. Тогда можно открыть его с помощью команды less: файл будет выводиться по частям, доступна навигация по этим частям, поиск и прочий простой функционал.
- ps – вывести список процессов.
- kill - послать сигнал процессу. По умолчанию посылается сигнал SIGTERM, который завершает процесс.
- ssh - openSSH SSH клиент, позволяет подключаться к удаленному хосту.
- scp - копировать файлы между хостами (для этого используется ssh).
- rsync - также для синхронизации директорий между хостами можно использовать rsync (-a — archive mode, позволяет скопировать полностью всё содержимое директории «как есть»,
- echo - вывести на экран строку текста.
Какие команды Windows CMD вам известны?
- ipconfig
- ping
- nslookup
- netstat
Что такое SSH и как им воспользоваться?
Secure Shell - протокол обеспечивающий шифрованное сетевое соединение к удалённым системам.
ssh username@remote_host
ssh root@195.19.105.85
Что такое скрипты bash и batch?Зачем их используют?
- Bash-скрипты (shell script) — сценарии командной строки, написанные для оболочки bash для Unix-подобных ОС.
- Batch-файл (пакетный файл/батник) — сценарии командной строки, в MS-DOS, OS/2 или Windows.
Сценарии командной строки — наборы тех же самых команд, которые можно вводить с клавиатуры, собранные в файлы и объединённые некоей общей целью. При этом результаты работы команд могут представлять либо самостоятельную ценность, либо служить входными данными для других команд. Являются мощным способом автоматизации часто выполняемых действий.
Pipeline
Пайплайн (от англ. pipeline — трубопровод) — это последовательность действий или процессов, которые выполняются для достижения заданной цели.
Add executable permission to .sh file
Linux
chmod +x
You’ll frequently download scripts from the internet to run on your machine, and often you’ll need to make them executable before you can run them. I use chmod +x quite often as a developer.
The internet is a shady place. Only run verified scripts from trusted publishers and authors.
Local variables
Linux
name="Lane" echo $name
If you want to set a variable in your shell, you can use the export command:export NAME="Lane"
echo $NAME
# Lane
You can also temporarily set a variable for a single command, instead of exporting it (exporting means the variable will persist until you close the shell).
For example:
WARN_MESSAGE="this works too" ./warn.sh