Сетевые системы и приложения
О курсе
Современному специалисту в области информатики, независимо от специализации, придется работать с сетевыми приложениями, серверным ПО. Серьезное промышленное окружение для разработки предполагает использование специализированных операционных систем, чаще всего из семейства UNIX в качестве основного окружения.
После изучения этого курса вы будете больше понимать в технологиях и инструментах, которые используются для поддержки сложного процесса производства программ. Вы будете знать основные принципы работы операционных систем, большинство основных концепций разработки, будете уметь настраивать сложное окружение для разработки и сможете автоматизировать свою работу на профессиональном уровне.
Программа курса
| Название занятия | Методичка | Видео | Слайды | ||
|---|---|---|---|---|---|
| 1. LX0 Введение в ОС Linux | |||||
| Лекция: Операционные системы. UNIX. Linux. | Видео | Слайды | |||
| Лабораторная: Установка Linux в виртуальную машину | Видео | ||||
| 2. LX1 Основы командной строки | |||||
| Лекция: Основы командной строки Linux | Видео | Слайды | |||
| Практика: 10 основных команд | Видео | ||||
| Практика: Служебные команды | Видео | ||||
| Лекция: Работа с файлами | Слайды | ||||
| Практика: Работа с файлами | Видео | ||||
| 3. LX2 Использование удаленного доступа по SSH | |||||
| Лекция: Удаленная работа по SSH | Слайды | ||||
| Практика: SSH | Видео | ||||
| Практика: Tmux | Видео | ||||
| 4. LX3 Права и пользователи | |||||
| Лекция: Пользователи и права | Слайды | ||||
| Практика: Управление пользователями | Видео | ||||
| Практика: Права доступа | Видео | ||||
| 5. LX4 Процессы и пакеты в Linux | |||||
| Лекция: Управление пакетами | Слайды | ||||
| Практика: Управление пакетами | Видео | ||||
| Лекция: Управление процессами | Слайды | ||||
| Практика: Управление процессами | Видео | ||||
| 6. LX5 Управление загрузкой Linux | |||||
| Лекция: Загрузка ОС | Слайды | ||||
| Практика: Создание и управление службами | Видео | ||||
| 7. LX6 Управление файловыми системам в Linux | |||||
| Лекция: Файловые системы и разбиение диска | Видео | Слайды | |||
| Практика: Файловые системы | |||||
| Практика: Сетевые файловые системы | |||||
| 8. LX7 Основы скриптов на bash | |||||
| Лекция: Bash как язык программирования | Видео | Слайды | |||
| Практика: Ваш первый сценарий | |||||
| Практика: Работа с cron | |||||
| Дополнительно: Работа с MD5 | |||||
| 9. LX8 Средства обработки текста | |||||
| Лекция: Команды работы с текстом в Linux | Видео | Слайды | |||
| Практика: Создание HTML-отчета | |||||
| Практика: Парсинг лог-файлов | |||||
| 10. LX9 Настройка сетевой среды в Linux | |||||
| Лекция: Основные понятия компьютерных сетей | Слайды | ||||
| Практика: Диагностика сетей | Видео | ||||
| Дополнительно: Способы сетевых подключений виртуальных машин | Методичка | Видео | |||
| 11. DO0 Использование Linux для разработки | |||||
| Практика: Настройка рабочего окружения Python в Linux | Видео | ||||
| Практика: Vim | Методичка | ||||
| Лекция: Системное программирование на Python | Слайды | ||||
| Практика: Файловый менеджер | Методичка | ||||
| 12. DO1 Контроль версий: Git и GitHub | |||||
| Лекция: Системы контроля версий - Git и GitHub | Методичка | Видео | Слайды | ||
| Практика: Основы работы с СКВ в графическом режиме | Методичка | Видео | |||
| Практика: Работа с Git в терминале | Методичка | Видео | |||
| Практика: Работа с удаленными репозиториями и GitHub | Методичка | Видео | |||
| 13. NP1 Использование сокетов | |||||
| Лекция: Сетевое программирование на Python с помощью сокетов | Слайды | ||||
| Практика: Простой эхо-сервер | Методичка | Видео | |||
| 14. NP2 Асинхронное программирование | |||||
| Лекция: Асинхронное программирование в Python | Слайды | ||||
| Практика: Многопоточный сервер | Методичка | Видео | |||
| Практика: Мультипроцессные вычисления | Методичка | Видео | |||
| Практика: Библиотека asyncio | Методичка | ||||
| 15. NP3 Безопасность сетевых приложений | |||||
| Лекция: Основы компьютерной безопасности | Слайды | ||||
| Практика: Симметричное шифрование | Методичка | ||||
| Практика: Асимметричное шифрование | Методичка | ||||
| Практика: Протокол рукопожатия | |||||
| 16. NP4 Веб-сервер | |||||
| Лекция: Установка и настройка веб-сервера в Linux | Слайды | ||||
| Практика: Установка Apache | Методичка | Видео | |||
| Практика: Установка nginx | Видео | ||||
| Практика: Виртуальные хосты | Видео | ||||
| Лекция: Web-технологии | Слайды | ||||
| Практика: Простой веб-клиент | Методичка | Видео | |||
| Практика: Простой веб-сервер | Методичка | Видео | |||
| Практика: Веб-парсер | Методичка | ||||
| 17. DO2 Создание и развертывание серверного приложения | |||||
| Лекция: Развертывание приложений на сервере | |||||
| Практика: Создание FTP-сервера | Методичка | ||||
| Практика: Развертывание в ручном режиме | Видео | ||||
| Практика: Развертывание через Git | Видео | ||||
| Практика: Развертывание через Docker | Видео | ||||
Тематический план
Данный курс призван познакомить с современными инфраструктурными решениями для разработки программного обеспечения, технологиями сетевого программирования. Программа данного курса включает:
- Основы операционной системы Linux
- Основы скриптов на bash
- Удаленное администрирование
- Использование Linux для разработки
- Вопросы настройки окружения разработчика
- Разработка сетевых и асинхронных приложений на Python.
- Использование СКВ Git и GitHub
- Настройка сетевых подключений и служб, основы администрирования ОС
- Вопросы развертывания программ на удаленном сервере
Предварительные требования
Для плодотворного изучения данного курса будут необходимы такие навыки:
- Уверенное знание синтаксиса Python
- Основы функционирования компьютера и компьютерных сетей
Материалы курса
Вы можете познакомиться со всеми материалами курса - презентациями к лекциям, методических рекомендациям к лабораторным работам на Google Диске.
- Плейлист с видео по данному курсу досупен на YouTube.
Источники информации
Основная литература
- Дорожная карта DevOps-разработчика
- Э. Таненбаум. Современные операционные системы
- М. Кофлер. Linux. Полное руководство
- В. Олифер. Компьютерные сети. Принципы, технологии, протоколы
- Е. Немет. Unix и Linux.Руководство системного администратора.
- Pro git
Дополнительная литература
- Б.Уорд. Внутреннее устройство Linux
- Д. Н. Колисниченко. Командная строка Linux
- У. Шоттс. Командная строка Linux. Полное руководство
- Д. Тейлор. Сценарии командной оболочки. Linux, OS X и UNIX
- Д.Н. Колисниченко. Linux. От новичка к профессионалу
- Э. Свейгард. Автоматизация рутинных задач с помощью Python
- Э. Таненбаум. Компьютерные сети
- М.В. Коротеев. Учебное пособие по дисциплине “Сетевые системы и приложения” - 2023.
Видео-ресурсы
- Канал о Linux и DevOps
- Linux Foundation Certified System Administrator
- Системное администрирование Linux
- The Linux Basics Course: Beginner to Sysadmin, Step by Step
Программное обеспечение
- Oracle VM VirtualBox
- Дистрибутив Linux Mint
- Python 3 Anaconda
- Git
- Google Chrome