Agile и DevOps похожи, но различаются в нескольких важных аспектах. Какое утверждение является верным?
Anonymous Quiz
34%
Agile — это изменение мышления, тогда как DevOps —это фактическое изменение организационной культуры
19%
Agile — это реальное изменение организационной культуры, тогда как DevOps — это изменение мышления.
10%
Agile управляется процессами, а DevOps — ролями.
37%
Agile управляется ролями, тогда как DevOps управляется процессами.
Какой инструмент обычно используется для непрерывной интеграции и непрерывного развертывания (CI/CD)?
Anonymous Quiz
78%
Jenkins
6%
Docker
11%
Git
5%
Ansible
Terraform Backend. Какой лучше?
AWS S3 — Standard (с блокировкой через DynamoDB). Сохраняет состояние в виде заданного ключа в заданном сегменте на Amazon S3. Этот бэкэнд также поддерживает блокировку состояния и проверку согласованности через DynamoDB.
terraform enterprise — Standard (без блокировки).
etcd — Standard (без блокировки). Сохраняет состояние в etcd 2.x по заданному пути.
etcdv3 — Standard (с блокировкой). Сохраняет состояние в хранилище etcd в виде K/V с заданным префиксом.
gcs — Standard (с блокировкой). Сохраняет состояние как объект в настраиваемом префиксе в заданном сегменте в Google Cloud Storage (GCS). Этот бэкэнд также поддерживает блокировку состояния.
Gitlab Terraform state (с блокировкой). Хранит состояние в Gitlab Terraform state хранилище, используя HTTP протокол и права Gitlab для доступа.
Существуют также и другие Backend для Terraform.
AWS S3 — Standard (с блокировкой через DynamoDB). Сохраняет состояние в виде заданного ключа в заданном сегменте на Amazon S3. Этот бэкэнд также поддерживает блокировку состояния и проверку согласованности через DynamoDB.
terraform enterprise — Standard (без блокировки).
etcd — Standard (без блокировки). Сохраняет состояние в etcd 2.x по заданному пути.
etcdv3 — Standard (с блокировкой). Сохраняет состояние в хранилище etcd в виде K/V с заданным префиксом.
gcs — Standard (с блокировкой). Сохраняет состояние как объект в настраиваемом префиксе в заданном сегменте в Google Cloud Storage (GCS). Этот бэкэнд также поддерживает блокировку состояния.
Gitlab Terraform state (с блокировкой). Хранит состояние в Gitlab Terraform state хранилище, используя HTTP протокол и права Gitlab для доступа.
Существуют также и другие Backend для Terraform.
Когда появился DevOps?
Anonymous Quiz
10%
1999 и 2000
17%
2003 и 2004
32%
2007 и 2008
41%
2010 и 2011
Что из перечисленного НЕ является инструментом управления конфигурацией?
Anonymous Quiz
2%
Chef
2%
Puppet
1%
Ansible
95%
Jira
За что отвечает kube-proxy?
Kube-proxy отвечает за взаимодействие между сервисами на разных нодах кластера.
Kube-proxy отвечает за взаимодействие между сервисами на разных нодах кластера.
По-умолчанию, в Ansible все задачи из списка выполняются параллельно на всех хостах, которые указаны в hosts. Как сделать так, чтобы задачи выполнялись последовательно по хостам?
Необходимо установить параметр serial: 1, чтобы определить количество хостов, на которых будут выполняться паралелльно задачи. Значение 1 будет значить, что все задачи будут проходить параллельно по 1 хосту за раз.
Необходимо установить параметр serial: 1, чтобы определить количество хостов, на которых будут выполняться паралелльно задачи. Значение 1 будет значить, что все задачи будут проходить параллельно по 1 хосту за раз.
Состояние репозитория ушло на много коммитов вперед. Как откатить весь репозиторий к определенному коммиту?
Anonymous Quiz
56%
git reset --hard <tag/branch/commit hash>
8%
Нельзя это сделать
22%
git reset --soft <tag/branch/commit hash>
13%
git hardreset --hard --a <tag/branch/commit hash>
Какой тип базы данных использует Prometheus?
Prometheus использует TSDB (time series database).
Prometheus использует TSDB (time series database).
Как посмотреть нагрузку на диски?
Установить утилиту sysstat, проверить нагрузку на диски iostat -xtc.
Установить утилиту sysstat, проверить нагрузку на диски iostat -xtc.
Чем tag отличается от branch?
И tag и branch представляют собой указатели на коммиты.
Ветка представляет собой отдельный поток разработки, который может выполняться одновременно с другими разработками в той же кодовой базе. Коммит в ветке указывает на изменения, которые добавляются в новых коммитах
Тег представляет собой версию определенной ветки в определенный момент времени.
Tag представляет собой версию той или иной ветки в определенный момент времени. Branch представляет собой отдельный поток разработки, который может выполнятся одновременно с другими разработками в той же кодовой базе.
И tag и branch представляют собой указатели на коммиты.
Ветка представляет собой отдельный поток разработки, который может выполняться одновременно с другими разработками в той же кодовой базе. Коммит в ветке указывает на изменения, которые добавляются в новых коммитах
Тег представляет собой версию определенной ветки в определенный момент времени.
Tag представляет собой версию той или иной ветки в определенный момент времени. Branch представляет собой отдельный поток разработки, который может выполнятся одновременно с другими разработками в той же кодовой базе.
В каких случаях не отработает перенос пода на другую ноду?
Если на другой ноде нет ресурсов для размещения пода или нет сетевой доступности до ноды.
Если на другой ноде нет ресурсов для размещения пода или нет сетевой доступности до ноды.
В конфиге nginx некоторого проекта есть два десятка различных location, которые делятся на три базовых типа - memcache, dynamic, static. Лог проекта единый, но для анализа требуется различать записи в логе каким-либо способом. По именам файлов тип location различить нельзя, разделить на три лога также нельзя. Предложите решение.
Использовать вывод в syslog и определить tag. Например:
location /memcache {
access_log syslog:server=unix:/dev/log,tag=nginx_memcache;
error_log syslog:server=unix:/dev/log,tag=nginx_memcache;
}
location /dynamic {
access_log syslog:server=unix:/dev/log,tag=nginx_dynamic;
error_log syslog:server=unix:/dev/log,tag=nginx_dynamic;
}
/static - соответственно. Вывод в определенный файл syslog можно указать опцией :syslogtag
location /memcache {
access_log syslog:server=unix:/dev/log,tag=nginx_memcache;
error_log syslog:server=unix:/dev/log,tag=nginx_memcache;
}
location /dynamic {
access_log syslog:server=unix:/dev/log,tag=nginx_dynamic;
error_log syslog:server=unix:/dev/log,tag=nginx_dynamic;
}
/static - соответственно. Вывод в определенный файл syslog можно указать опцией :syslogtag
Для чего нужен terragrunt?
Terragrunt — это обертка для Terraform, позволяющая решать проблемы, связанные с масштабированием и переиспользованием кода для настройки инфраструктуры. Он позволяет повторно использовать конфигурационные параметры и поддерживает многоуровневые конфигурации и зависимости.
Terragrunt — это обертка для Terraform, позволяющая решать проблемы, связанные с масштабированием и переиспользованием кода для настройки инфраструктуры. Он позволяет повторно использовать конфигурационные параметры и поддерживает многоуровневые конфигурации и зависимости.
Что находится на master ноде?
Kube-apiserver отвечает за оркестрацию всех операций кластера.
Controller-manager (Node controller + Replication Controller) Controller отвечает за функции контроля за нодами, репликами.
ETCD cluster (распределенное хранилище ключ-значение) ETCD хранит информацию о кластере и его конфигурацию.
Kube-sheduler отвечает за планирование приложений и контейнеров на нодах.
По-умолчанию на master ноде не размещаются контейнеры приложений, но данный фунционал возможно настроить.
Kube-apiserver отвечает за оркестрацию всех операций кластера.
Controller-manager (Node controller + Replication Controller) Controller отвечает за функции контроля за нодами, репликами.
ETCD cluster (распределенное хранилище ключ-значение) ETCD хранит информацию о кластере и его конфигурацию.
Kube-sheduler отвечает за планирование приложений и контейнеров на нодах.
По-умолчанию на master ноде не размещаются контейнеры приложений, но данный фунционал возможно настроить.
Что такое роль в Ansible? Что содержит в себе Ansible роль?
Ansible роль представляет собой структурированный плейбук, содержащий, как минимум, набор задач (tasks) и дополнительно — обработчики событий (handlers), переменных (default и vars), файлов (files), шаблонов (templates), описание и зависимости (metadata) и тесты (tests).
Ansible роль представляет собой структурированный плейбук, содержащий, как минимум, набор задач (tasks) и дополнительно — обработчики событий (handlers), переменных (default и vars), файлов (files), шаблонов (templates), описание и зависимости (metadata) и тесты (tests).
Чем отличается COPY от ADD в Dockerfile?
Инструкция COPY копируют файлы и директории с хостовой машины внутрь контейнера, инструкция ADD копирует файлы и директории с хостовой машины внутрь контейнера и может распаковывать .tar архивы.
Инструкция COPY копируют файлы и директории с хостовой машины внутрь контейнера, инструкция ADD копирует файлы и директории с хостовой машины внутрь контейнера и может распаковывать .tar архивы.
Что находится на worker ноде?
Kubelet слушает инструкции от kube-apiserver и разворачивает или удаляет контейнеры на нодах.
Kube-proxy отвечает за взаимодействие между сервисами на разных нодах кластера.
На worker нодах по-умолчанию размещаются контейнеры приложений. На каждой ноде кластера устанавливается Docker или другая платформа контейнеризации (например RKT или containterd). На Master ноде также устанавливается Docker, если необходимо использовать компоненты Kubernetes в контейнерах.
Kubelet слушает инструкции от kube-apiserver и разворачивает или удаляет контейнеры на нодах.
Kube-proxy отвечает за взаимодействие между сервисами на разных нодах кластера.
На worker нодах по-умолчанию размещаются контейнеры приложений. На каждой ноде кластера устанавливается Docker или другая платформа контейнеризации (например RKT или containterd). На Master ноде также устанавливается Docker, если необходимо использовать компоненты Kubernetes в контейнерах.
Необходимо проходить по списку URL'ов и проверять их доступность. Условия:
Список URL'ов находится в файле /urls.txt;
Доступный URL - значит код ответа не 5XX или 4XX;
Проверка должна быть оформлена в виде функции bash, которая должна вызываться внутри скрипта;
Функция должна принимать в качестве входного параметра путь к файлу с URL'ами;
При любом ответе недоступности от сервиса - прерывать дальнейшую проверку. Временное ограничение 20 мин.
Скрипт проверки. Запускать ./script.sh <путь до файла с URLs>
#!/usr/bin/env bash
set -xueo pipefail
FILE_URLS=${1:-}
if [[ -z "${FILE_URLS}" ]]; then
echo "File with URLs list do not defined."
exit 1
fi
function checkUrls() {
local URLS=$1
for URL in $(cat $URLS); do
STATUS=
if [[ "${STATUS}" == "500" ]] || [[ "${STATUS}" == "400" ]]; then
echo "URL ${URL} unavailable!"
exit 1
else
echo "URL ${URL} available."
fi
done
}
checkUrls "${FILE_URLS}"
Список URL'ов находится в файле /urls.txt;
Доступный URL - значит код ответа не 5XX или 4XX;
Проверка должна быть оформлена в виде функции bash, которая должна вызываться внутри скрипта;
Функция должна принимать в качестве входного параметра путь к файлу с URL'ами;
При любом ответе недоступности от сервиса - прерывать дальнейшую проверку. Временное ограничение 20 мин.
Скрипт проверки. Запускать ./script.sh <путь до файла с URLs>
#!/usr/bin/env bash
set -xueo pipefail
FILE_URLS=${1:-}
if [[ -z "${FILE_URLS}" ]]; then
echo "File with URLs list do not defined."
exit 1
fi
function checkUrls() {
local URLS=$1
for URL in $(cat $URLS); do
STATUS=
curl -LI "${URL}" -o /dev/null -w '%{http_code}' -s
if [[ "${STATUS}" == "500" ]] || [[ "${STATUS}" == "400" ]]; then
echo "URL ${URL} unavailable!"
exit 1
else
echo "URL ${URL} available."
fi
done
}
checkUrls "${FILE_URLS}"
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
Please open Telegram to view this post
VIEW IN TELEGRAM