1. Linux, Bash-скрипты и текстовые редакторы
IT — это работа с информацией: её хранение, изменение, извлечение пользы или распространение, а помогают нам в этом программы – это инструменты, которые принимают данные (вход), обрабатывают их и выдают результат (выход)
Вот несколько примеров программ:
- Калькулятор принимает числа, считает и выводит ответ
- База данных принимает запрос на добавление данных и особенным способом записывает их на диск, а на другой запрос выдает в ответе данные
- Веб-приложение (приложение, к которому можно отправлять запросы через интернет) принимает запрос на отображение страницы ВК и отдает нам страницу
По своей сути все сайты, банки, игры — это набор таких маленьких приложений, которые каждое делают свою функцию (вам не нужно держать в голове всю картину их взаимодействия)
Программы появляются в результате этапов:
- Анализ требований — бизнес говорит образно какая ему нужна программа, сайт или сервис
- Проектирование — архитектор проектирует, как всё будет работать
- Написание кода — разработчики создают программы
- Тестирование — тестировщики, еще называют их QA, проверяют, что все программы работают вместе как нужно
- Внедрение и поддержка — инженеры мониторинга смотрят, чтобы программы не ломались, инженеры SRE чинят программы в случае поломки
DevOps способствует автоматизации с 3-го по 5-й этапов, что, в свою очередь, ускоряет и упрощает процесс создания и поддержки программ. О том, как именно это происходит и какие инструменты для этого используются, мы узнаем позже. Кроме того, DevOps улучшает взаимодействие между теми, кто проектирует, пишет код и тестирует программы
Подготовка места для запуска программ, Linux
Сервера, на которых мы будем запускать программы, работают на ядре Linux. Это такая специальная программа, которую устанавливают на сервер в первую очередь. Она помогает нашим программам общаться с «железками» компьютера при помощи драйверов (программа, в которой описано, как общаться с тем или иным устройством). Например, она объясняет нашей программе, как записывать данные на диск или выводить картинку на экране
Основные «железные» ресурсы сервера, с которыми работают наши программы:
- Диск — это такая штука, на которую можно записывать и хранить информацию. А способ, которым данные хранятся, называется файловая система
- Процессор — это как мозг у компьютера. Он обрабатывает информацию и управляет всем процессом. Принцип работы как у программ: мы даём ему задачу, он её решает и отдает нам решение
- Оперативная память — это такая быстрая память, которая очищается, когда ты перезагружаешь сервер. Программы используют её, чтобы хранить информацию, с которой они работают прямо сейчас
Уроки для просмотра и конспектирования
- Уроки с 3-го по 20-й -
4 часа
- Уроки с 3-го по 5-й -
1 час
Начало работы в IT
- У вас должен быть ноутбук с Ubuntu или если у вас Windows, установите
WSL
и Ubuntu
- Установить Visual Studio Code и запустить, посмотреть как выглядит. Эта программа нужна для редактирования файлов конфигурации или написания кода, в ней очень удобно работать если ты IT специалист
- Установить Яндекс Браузер — в этом браузере есть инструменты, которые упростят нам работу, например, исправление ошибок в выделенном тексте
- Установить и не трогать, они нам понадобятся в будущем: Docker Desktop и Lens
- Активно начать пользоваться ботом: GigaChat который ответит на любые вопросы (например спросите у него
Расскажи как ребенку, зачем DevOps нужен Kubernetes
)
- Зарегистрироваться на сайтах:
- GitHub - Сайт, на котором множество разработчиков размещают бесплатно код своих программ или, например, размещен этот курс
- Habr - Русскоязычный сайт с кучей статей по DevOps, разработке и автоматизации
Задание к уроку - сделать скриншоты или записать результат вывода комманд
Знакомство с Linux и его терминалом — это то самое черное окно, в котором пишут хакеры и через которое ты можешь отдавать команды (что сделать) системе
- Что такое
sudo
, как используется?
- Как сделать так, чтобы при выполнении команды
sudo
у нас не спрашивался каждый раз пароль?
- Что такое systemd-сервис?
- Как проверить состояние systemd-сервиса?
- Что такое сокет?
- Какие есть kill-сигналы?
- Как завершить запущенный процесс в Linux?
- Что такое ядро Linux, из чего состоит?
- Что такое системные вызовы?
- Перейди в
/tmp
директорию.
- Вернитесь обратно в директорию, в которой были первоначально.
- Перейди в домашнюю директорию пользователя.
- Перейди в вышестоящую директорию.
- Перейди в корень (что такое корень?).
- Выполни команду
cd ~
, куда вы попали?
- Выведи на экран полный путь к директории, где ты сейчас находишься.
- Создай два файла с именами
config
и binary
.
- Создай директорию
app
.
- Перемести файлы
config
и binary
в директорию app
.
- Создай в директории
app
подпапки temp/info/users
одной командой.
- Вернись на директорию выше и удали директорию
app
.
- Объяснить, какие данные будут выведены на экран в команде
top
.
- Какой командой можно посмотреть использование оперативной памяти?
- Посмотреть, сколько места занято на диске
/
и насколько он нагружен.
- Выполните команду
uptime
, что такое load average
?
- Какие основные директории есть в
/
«корне»?
- Чем отличается директория
/proc
от остальных директорий?
- В чём разница между файлами JSON и YAML?
- Что такое разметка Markdown и для чего она используется?
- Как заменить одно слово на другое в файле?
Установка и обновление программ в Linux
- Как обновить уже установленные программы с помощью apt?
- Установить
git
, htop
, curl
, nano
, jq
и проверить работоспособность каждой из них, запустив ее из терминала
Создание скрипта для перезаписи времени и даты в файле на текущее каждую минуту
Создайте скрипт, который будет записывать в файл current_time.txt
текущую дату и время. Запускайте скрипт каждую 1 минуту с помощью crontab
Работа с фоновыми процессами (демонами) в linux
- Выполните команду
systemctl list-units --type=service
и выберите любой сервис (они все работают в фоне), узнайте, что он делает
- Найдите информацию о том, что такое SSH и какую роль играют клиент и сервер
- Установите OpenSSH Сервер себе на компьютер
- После установки убедитесь, что сервер работает в фоне, и перезапустите его через systemctl команду
Текстовые редакторы, создание, просмотр и редактирование файла
- Создайте файл
text.txt
. Запишите в него Hello world
с помощью команды nano
- Вывести все имена файлов из папки
/etc
, в содержимом которых есть имя вашего пользователя
- Как вывести количество строк, которые чаще всего повторяются в файле?
- Как в большом текстовом файле вывести первые 10 строк или последние 10?
Bash-скрипты — текстовые файлы с набором команд, которые автоматически выполняются одна за другой в терминале. Это помогает упростить рутинные задачи, такие как копирование файлов или запуск программ
- Создать скрипт, который:
- Может запускать только текущий пользователь
- Установит через
apt
(только если еще не установлены):
curl
— выполнять HTTP-запросы
git
— система для контроля за версиями, может заливать их в публичный репозиторий
jq
— для работы с файлами JSON, чтобы удобно искать в них или отображать