Python и DevOps: Ключ к автоматизации Linux

Python и DevOps: Ключ к автоматизации Linux

Python и DevOps: Ключ к автоматизации Linux
Автор: Берман Кеннеди, Георгиу Григ, Гифт Ной, Деза Альфредо
Дата выхода: 2022
Издательство: Питер
Количество страниц: 544
Тип файла: PDF
Добавил: codelibs

Внимание!!!! Книга удалена по требованию правообладателя!!!!

Предисловие....19

Что DevOps означает для авторов....20

Как использовать эту книгу....22

Соглашения, используемые в данной книге....23

Использование примеров кода....24

Благодарности....25

От издательства....28

Глава 1. Основы Python для DevOps....29

Установка и запуск Python....30

Командная оболочка Python....30

Блокноты Jupiter....31

Процедурное программирование....32

Переменные....32

Основные математические операции....33

Комментарии....33

Встроенные функции....34

Print....34

Range....35

Контроль выполнения....35

if/elif/else....36

Циклы for....37

Циклы while....38

Обработка исключений....39

Встроенные объекты....40

Что такое объект?....40

Методы и атрибуты объектов....41

Последовательности....42

Функции....55

Анатомия функции....55

Функции как объекты....57

Анонимные функции....57

Регулярные выражения....58

Поиск....59

Наборы символов....60

Классы символов....61

Группы....61

Поименованные группы....61

Найти все....62

Поисковый итератор....62

Подстановка....63

Компиляция....63

Отложенное вычисление....64

Генераторы....64

Генераторные включения....65

Дополнительные возможности IPython....66

Выполнение инструкций командной оболочки Unix с помощью IPython....66

Упражнения....68

Глава 2. Автоматизация работы с файлами и файловой системой....69

Чтение и запись файлов....69

Поиск в тексте с помощью регулярных выражений....79

Обработка больших файлов....81

Шифрование текста....82

Хеширование с помощью пакета hashlib....82

Шифрование с помощью библиотеки cryptography....83

Модуль os....85

Управление файлами и каталогами с помощью os.path....86

Обхода дерева каталогов с помощью os.walk....90

Пути как объекты: библиотека pathlib....91

Глава 3. Работа с командной строкой....93

Работа с командной оболочкой....93

Взаимодействие с интерпретатором с помощью модуля sys....93

Взаимодействие с операционной системой с помощью модуля os....94

Порождение процессов с помощью модуля subprocess....95

Создание утилит командной строки....97

Использование sys.argv....99

argparse....101

click....106

fire....110

Реализация плагинов....115

Ситуационный анализ: разгоняем Python с помощью утилит командной строки....116

Динамический компилятор Numba....117

Использование GPU с помощью CUDA Python....119

Многоядерное многопоточное выполнение кода Python с помощью Numba....120

Кластеризация методом k-средних....122

Упражнения....123

Глава 4. Полезные утилиты Linux....124

Дисковые утилиты....125

Измерение быстродействия....126

Разделы диска....128

Получение информации о конкретном устройстве....129

Сетевые утилиты....131

SSH-туннелирование....131

Оценка быстродействия HTTP с помощью Apache Benchmark (ab)....132

Нагрузочное тестирование с помощью molotov....133

Утилиты для получения информации о загрузке CPU....136

Просмотр процессов с помощью htop....136

Работаем с Bash и ZSH....138

Настройка командной оболочки Python под свои нужды....140

Рекурсивные подстановки....140

Поиск и замена с запросами подтверждения....141

Удаление временных файлов Python....143

Вывод списка процессов и его фильтрация....143

Метка даты/времени Unix....144

Комбинирование Python с Bash и ZSH....144

Генератор случайных чисел....145

Существует ли нужный мне модуль?....146

Переходим из текущего каталога по пути к модулю....146

Преобразование CSV-файла в JSON....147

Однострочные сценарии Python....148

Отладчики....148

Быстро ли работает конкретный фрагмент кода?....149

strace....150

Вопросы и упражнения....153

Задача на ситуационный анализ....153

Глава 5. Управление пакетами....154

Почему пакетная организация программ так важна....155

Случаи, когда пакетная организация программ не нужна....155

Рекомендации по пакетной организации программ....156

Информативный контроль версий....156

Журнал изменений....158

Выбор стратегии....159

Решения для создания пакетов....159

Нативные пакеты Python....160

Создание пакетов для Debian....166

Создание пакетов RPM....174

Диспетчеризация с помощью systemd....180

Долгоживущие процессы....181

Настройка....182

Юниты systemd....183

Установка юнита....185

Управление журналами....186

Вопросы и упражнения....188

Задача на ситуационный анализ....188

Глава 6. Непрерывная интеграция и непрерывное развертывание....189

Ситуационный анализ примера из практики: перевод плохо работавшего сайта с WordPress на Hugo....189

Настройка Hugo....191

Преобразование WordPress в посты Hugo....192

Создание поискового индекса Algolia и его обновление....194

Координация с помощью Makefile....196

Развертывание с помощью AWS CodePipeline....196

Ситуационный анализ примера из практики: развертывание приложения Python App Engine с помощью Google Cloud Build....197

Ситуационный анализ примера из практики: NFSOPS....205

Глава 7. Мониторинг и журналирование....207

Ключевые понятия создания надежных систем....207

Неизменные принципы DevOps....208

Централизованное журналирование....209

Ситуационный анализ: база данных при промышленной эксплуатации разрушает жесткие диски....209

Производить или покупать?....210

Отказоустойчивость....211

Мониторинг....213

Graphite....214

StatsD....214

Prometheus....215

Телеметрия....219

Соглашения о наименованиях....222

Журналирование....224

Почему это так трудно....224

basicconfig....225

Углубляемся в конфигурацию....226

Распространенные паттерны....231

Стек ELK....232

Logstash....233

Elasticsearch и Kibana....235

Вопросы и упражнения....239

Задача на ситуационный анализ....239

Глава 8. Pytest для DevOps....240

Сверхспособности тестирования фреймворка pytest....240

Начало работы с pytest....241

Тестирование с помощью pytest....242

Отличия от unittest....244

Возможности pytest....245

conftest.py....246

Этот замечательный оператор assert....247

Параметризация....248

Фикстуры....250

Приступим....250

Встроенные фикстуры....252

Инфраструктурное тестирование....255

Что такое проверка системы....256

Введение в Testinfra....257

Подключение к удаленным узлам....258

Фикстуры и особые фикстуры....261

Примеры....263

Тестирование блокнотов Jupyter с помощью pytest....266

Вопросы и упражнения....267

Задача на ситуационный анализ....267

Глава 9. Облачные вычисления....268

Основы облачных вычислений....269

Типы облачных вычислений....271

Типы облачных сервисов....272

Инфраструктура как сервис....272

«Железо» как сервис....277

Платформа как сервис....278

Бессерверная обработка данных....278

Программное обеспечение как сервис....282

Инфраструктура как код....283

Непрерывная поставка....283

Виртуализация и контейнеры....283

Аппаратная виртуализация....283

Программно определяемые сети....284

Программно определяемое хранилище....285

Контейнеры....285

Трудные задачи и потенциальные возможности распределенной обработки данных....286

Конкурентное выполнение на Python, быстродействие и управление процессами в эпоху облачных вычислений....289

Управление процессами....289

Процессы и дочерние процессы....289

Решение задач с помощью библиотеки multiprocessing....292

Ветвление процессов с помощью Pool()....293

Функция как сервис и бессерверная обработка данных....295

Повышение производительности Python с помощью библиотеки Numba....295

Динамический компилятор Numba....295

Высокопроизводительные серверы....296

Заключение....297

Вопросы....298

Вопросы на ситуационный анализ....298

Глава 10. Инфраструктура как код....299

Классификация инструментов автоматизации выделения инфраструктуры....301

Выделение инфраструктуры вручную....302

Автоматическое выделение инфраструктуры с помощью Terraform....304

Выделение корзины S3....304

Предоставление SSL-сертификата с помощью ACM AWS....307

Выделение раздачи Amazon CloudFront....308

Создание записи DNS Route 53....311

Копирование статических файлов в корзину S3....312

Удаление всех ресурсов AWS, выделенных с помощью Terraform....313

Автоматическое выделение инфраструктуры с помощью Pulumi....313

Создание нового проекта Pulumi на Python для AWS....314

Создание значений параметров конфигурации для стека staging....319

Создаем SSL-сертификат ACM....319

Выделение зоны Route 53 и записей DNS....320

Выделение раздачи CloudFront....323

Создание записи DNS Route 53 для URL сайта....324

Создание и развертывание нового стека....325

Упражнения....327

Глава 11. Контейнерные технологии: Docker и Docker Compose....328

Что такое контейнер Docker....329

Создание, сборка, запуск и удаление образов и контейнеров Docker....330

Публикация образов Docker в реестре Docker....334

Запуск контейнера Docker из одного образа на другом хост-компьютере....335

Запуск нескольких контейнеров Docker с помощью Docker Compose....337

Портирование сервисов docker-compose на новый хост-компьютер и операционную систему....350

Упражнения....354

Глава 12. Координация работы контейнеров: Kubernetes....355

Краткий обзор основных понятий Kubernetes....356

Создание манифестов Kubernetes на основе файла docker_compose.yaml с помощью Kompose....357

Развертывание манифестов Kubernetes на локальном кластере Kubernetes, основанном на minikube....359

Запуск кластера GKE Kubernetes в GCP с помощью Pulumi....374

Развертывание примера приложения Flask в GKE....377

Установка чартов Helm для Prometheus и Grafana....383

Удаление кластера GKE....389

Упражнения....390

Глава 13. Технологии бессерверной обработки данных....391

Развертывание одной и той же функции Python в облака большой тройки поставщиков облачных сервисов....394

Установка фреймворка Serverless....394

Развертывание функции Python в AWS Lambda....395

Развертывание функции Python в Google Cloud Functions....397

Развертывание функции на Python в Azure....403

Развертывание функции на Python на самохостируемых FaaS-платформах....408

Развертывание функции на Python в OpenFaaS....408

Выделение таблиц DynamoDB, функций Lambda и методов API Gateway с помощью AWS CDK....416

Упражнения....438

Глава 14. MLO и разработка ПО для машинного обучения....439

Что такое машинное обучение....439

Машинное обучение с учителем....440

Моделирование....442

Экосистема машинного обучения языка Python....445

Глубокое обучение с помощью PyTorch....445

Платформы облачного машинного обучения....449

Модель зрелости машинного обучения....451

Основная терминология машинного обучения....452

Уровень 1. Очерчивание рамок задачи и области определения, а также формулировка задачи....453

Уровень 2. Непрерывная поставка данных....453

Уровень 3. Непрерывная поставка очищенных данных....455

Уровень 4. Непрерывная поставка разведочного анализа данных....457

Уровень 5. Непрерывная поставка обычного ML и AutoML....457

Уровень 6. Цикл обратной связи эксплуатации ML....458

Приложение sklearn Flask с использованием Docker и Kubernetes....459

Разведочный анализ данных....463

Моделирование....464

Тонкая настройка масштабированного GBM....465

Подгонка модели....466

Оценка работы модели....466

adhoc_predict....467

Технологический процесс JSON....468

Масштабирование входных данных....468

adhoc_predict на основе выгрузки....470

Масштабирование входных данных....470

Вопросы и упражнения....471

Задача на ситуационный анализ....471

Вопросы на проверку усвоения материала....471

Глава 15. Инженерия данных....472

Малые данные....473

Обработка файлов малых данных....474

Запись в файл....474

Чтение файла....474

Конвейер с генератором для чтения и обработки строк....475

YAML....476

Большие данные....477

Утилиты, компоненты и платформы для работы с большими данными....479

Источники данных....480

Файловые системы....480

Хранение данных....481

Ввод данных в режиме реального времени....483

Ситуационный анализ: создание доморощенного конвейера данных....484

Бессерверная инженерия данных....485

AWS Lambda и события CloudWatch....486

Журналирование Amazon CloudWatch для AWS Lambda....486

Наполнение данными Amazon Simple Queue Service с помощью AWS Lambda....487

Подключение срабатывающего по событию триггера CloudWatch....492

Создание событийно-управляемых функций Lambda....493

Чтение событий Amazon SQS из AWS Lambda....493

Заключение....498

Упражнения....498

Задача на ситуационный анализ....498

Глава 16. Истории из практики DevOps и интервью....499

Киностудия не может снять фильм....500

Разработчик игр не может обеспечить поставку игрового ПО....503

Сценарии Python, запуск которых требует 60 секунд....505

Решаем горящие проблемы с помощью кэша и интеллектуальной телеметрии....506

Доавтоматизироваться до увольнения....507

Антипаттерны DevOps....509

Антипаттерн: отсутствие автоматизированного сервера сборки....509

Работать вслепую....509

Сложности координации как постоянная проблема....510

Отсутствие командной работы....511

Интервью....517

Гленн Соломон....517

Эндрю Нгуен....518

Габриэлла Роман....520

Ригоберто Рош....521

Джонатан Лакур....523

Вилле Туулос....525

Джозеф Рис....527

Тейо Хольцер....529

Мэтт Харрисон....531

Майкл Фоорд....533

Рекомендации....536

Вопросы....537

Интересные задачи....537

Дипломный проект....538

Об авторах....539

Об иллюстрации на обложке....541

За последнее десятилетие технологии сильно изменились. Данные стали хитом, облака — вездесущими, и всем организациям понадобилась автоматизация. В ходе таких преобразований Python оказался одним из самых популярных языков программирования. Это практическое руководство научит вас использовать Python для повседневных задач администрирования Linux с помощью наиболее удобных утилит DevOps, включая Docker, Kubernetes и Terraform.


Похожее:

Список отзывов:

Нет отзывов к книге.