Python и DevOps. Ключ к автоматизации Linux
Автор: Ной Гифт, Григ Георгиу
Практическое руководство научит использовать Python для повседневных задач администрирования Linux.
#python #linux
📕 Книга
Devops библиотека
Автор: Ной Гифт, Григ Георгиу
Практическое руководство научит использовать Python для повседневных задач администрирования Linux.
#python #linux
📕 Книга
Devops библиотека
❤12👍7🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
🐋Как работает Docker? Остается ли Docker актуальным?
Архитектура Docker состоит из трех основных компонентов:
🔹 Docker Client
Это интерфейс, через который осуществляется взаимодействие с пользователями. Он взаимодействует с демоном Docker.
🔹 Docker Host
Здесь демон Docker принимает запросы Docker API и управляет различными объектами Docker, включая образы, контейнеры, сети и тома.
🔹 Реестр Docker
Здесь хранятся образы Docker. Например, широко используется публичный реестр Docker Hub.
@DevOPSitsec
Архитектура Docker состоит из трех основных компонентов:
🔹 Docker Client
Это интерфейс, через который осуществляется взаимодействие с пользователями. Он взаимодействует с демоном Docker.
🔹 Docker Host
Здесь демон Docker принимает запросы Docker API и управляет различными объектами Docker, включая образы, контейнеры, сети и тома.
🔹 Реестр Docker
Здесь хранятся образы Docker. Например, широко используется публичный реестр Docker Hub.
@DevOPSitsec
👍12🔥2❤1
🔬Одна картинка вместо тысячи слов: 9 лучших практик разработки микросервисов.
При разработке микросервисов необходимо следовать следующим лучшим практикам:
1. Использовать отдельное хранилище данных для каждого микросервиса
2. Поддерживать код всех компонентов системы.
3. Отдельная сборка для каждого микросервиса
4. Отдельные права для каждого микросервиса
5. Развертывание в контейнеры
6. Проектирование сервисов без статических данных
7. Переход к доменно-ориентированному проектированию
8. Проектирование микрофронтенда
9. Оркестрирование микросервисов
@DevOPSitsec
При разработке микросервисов необходимо следовать следующим лучшим практикам:
1. Использовать отдельное хранилище данных для каждого микросервиса
2. Поддерживать код всех компонентов системы.
3. Отдельная сборка для каждого микросервиса
4. Отдельные права для каждого микросервиса
5. Развертывание в контейнеры
6. Проектирование сервисов без статических данных
7. Переход к доменно-ориентированному проектированию
8. Проектирование микрофронтенда
9. Оркестрирование микросервисов
@DevOPSitsec
👍13❤6🔥3
🔥 Дайджест полезных материалов из мира Devops за неделю
Почитать:
— Подходы к автоматизации создания окружений для R&D-команд
— Анализ вакансий ИТ в Москве: системное администрирование, 2023г
— Существуют ли джуниор-DevOps-инженеры и почему их ищут
— Вышел релиз GitLab 16.4 с настраиваемыми ролями и списком зависимостей для групп
— MLOps в билайн: как катить машинное обучение в production без ML-инженеров. Часть I
— Установка Deckhouse в kind: пробуем K8s-платформу на ноутбуке — без серверов и облаков
— Магия внедрения сервисного подхода DevOps. Развиваем культуру коммуникации и разработки в компании
— Nmap: сканирование портов
— Как я использовал тематическое разделение доступа для создания веб-приложения
— Azure pipeline
— Build and test a Golang app with Gitness
— PagerDuty Community Update, October 20 2023
— AI-Based Engagements: The Future of Human-Computer Interaction
— Turbocharge Your Debugging with Skyramp's Hot Code Reload
— Proxy Reverso com Apache2
— Are Apple App Association Files Risky?
— Event Driven ec2: Create ec2 instances using Lambda with Terraform
— Expert Insights into Flutter App Development (Part # 01)
— 🐋 How to use the Docker Exec command?
Посмотреть:
🌐 Что такое RAID 1? #raid #raid1 (⏱ 00:21)
🌐 RAID 5: Баланс скорости и надежности (⏱ 00:41)
🌐 Пишем телеграм бота для скачивания #yotube видео (⏱ 20:41)
🌐 Алгоритм бинарного поиска на #C++ (⏱ 00:59)
🌐 Очередь с приоритетом разбор задачи на #C++ (⏱ 01:00)
🌐 Задача на поиск числа с leetcode на С++ (⏱ 01:00)
🌐 Задача с #leetcode решаем на #golang (⏱ 00:32)
🌐 Разбор задачи на содержание массива #С++ (⏱ 00:59)
🌐 Django гайд по формам (⏱ 10:32)
Хорошего дня!
@DevOPSitsec
Почитать:
— Подходы к автоматизации создания окружений для R&D-команд
— Анализ вакансий ИТ в Москве: системное администрирование, 2023г
— Существуют ли джуниор-DevOps-инженеры и почему их ищут
— Вышел релиз GitLab 16.4 с настраиваемыми ролями и списком зависимостей для групп
— MLOps в билайн: как катить машинное обучение в production без ML-инженеров. Часть I
— Установка Deckhouse в kind: пробуем K8s-платформу на ноутбуке — без серверов и облаков
— Магия внедрения сервисного подхода DevOps. Развиваем культуру коммуникации и разработки в компании
— Nmap: сканирование портов
— Как я использовал тематическое разделение доступа для создания веб-приложения
— Azure pipeline
— Build and test a Golang app with Gitness
— PagerDuty Community Update, October 20 2023
— AI-Based Engagements: The Future of Human-Computer Interaction
— Turbocharge Your Debugging with Skyramp's Hot Code Reload
— Proxy Reverso com Apache2
— Are Apple App Association Files Risky?
— Event Driven ec2: Create ec2 instances using Lambda with Terraform
— Expert Insights into Flutter App Development (Part # 01)
— 🐋 How to use the Docker Exec command?
Посмотреть:
🌐 Что такое RAID 1? #raid #raid1 (⏱ 00:21)
🌐 RAID 5: Баланс скорости и надежности (⏱ 00:41)
🌐 Пишем телеграм бота для скачивания #yotube видео (⏱ 20:41)
🌐 Алгоритм бинарного поиска на #C++ (⏱ 00:59)
🌐 Очередь с приоритетом разбор задачи на #C++ (⏱ 01:00)
🌐 Задача на поиск числа с leetcode на С++ (⏱ 01:00)
🌐 Задача с #leetcode решаем на #golang (⏱ 00:32)
🌐 Разбор задачи на содержание массива #С++ (⏱ 00:59)
🌐 Django гайд по формам (⏱ 10:32)
Хорошего дня!
@DevOPSitsec
👍8❤1🔥1
🆓 БЕСПЛАТНЫЕ курсы от Microsoft, которые помогут вам начать карьеру в области Python, Data Science и Machine Learning.
1. ИИ для начинающих
Получите базовое представление о том, что такое изучение искусственного интеллекта.
- Терминологии
- Основы НЛП
- Основы компьютерного зрения
2. Наука о данных для начинающих
Охватывает и помогает освоить:
- Основы науки о данных и этика
- Статистика
- SQL И NOSQL
- Подготовка и визуализация данных
- Анализ данных
- Полный жизненный цикл науки о данных
3. Машинное обучение для начинающих
Охватывает и помогает освоить:
- Различные методы ML
- Создание первого ML-проекта - от сбора данных до создания веб-приложения для обученной модели
- Техники НЛП
- Временные ряды
- Обучение с подкреплением
1. ИИ для начинающих
Получите базовое представление о том, что такое изучение искусственного интеллекта.
- Терминологии
- Основы НЛП
- Основы компьютерного зрения
2. Наука о данных для начинающих
Охватывает и помогает освоить:
- Основы науки о данных и этика
- Статистика
- SQL И NOSQL
- Подготовка и визуализация данных
- Анализ данных
- Полный жизненный цикл науки о данных
3. Машинное обучение для начинающих
Охватывает и помогает освоить:
- Различные методы ML
- Создание первого ML-проекта - от сбора данных до создания веб-приложения для обученной модели
- Техники НЛП
- Временные ряды
- Обучение с подкреплением
👍9🔥2❤1
DevDash
DevDash - это многофункциональная панель для терминала, которая может быть настроена под различные требования разработчиков и Devops специалистов.
Она позволяет настраивать и отображать в удобной форме самые важные метрики.
🐱 GitHub
@DevOPSitsec
DevDash - это многофункциональная панель для терминала, которая может быть настроена под различные требования разработчиков и Devops специалистов.
Она позволяет настраивать и отображать в удобной форме самые важные метрики.
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤2🔥2
🔥 Дайджест полезных материалов из мира Devops за неделю
Почитать:
— Gitea & Act Runner: First touch
— Книжный кружок. Рецензия на книгу «Микросервисы от архитектуры до релиза»
— Grafana Beyla: автоинструментарий eBPF с открытым исходным кодом для наблюдения за приложением
— Что такое API-шлюзы и Gateway API и почему за ними будущее нативных облачных приложений
— Управление Linux-сервером — самая ценная инвестиция
— Airflow в Kubernetes. Часть 1
— Чтение на выходные: DIY-материалы о контейнерах, DevOps и архитектуре — личный опыт напрямую от специалистов
— Практическое руководство по созданию Helm чарта или как избавиться от рутины при работе с YAML манифестами
— A Comprеhеnsivе Guidе to DеvOps Job Support
— K8s Exercise : Labels and Annotations
— Cracking the Code: Communicating Tech to Non-Tech
— DevOps CI/CD Quick Start Guide with GitHub Actions 🛠️🐙⚡️
— PagerDuty Community Update, October 27 2023
— Experimenting on the Edge with Turso and Go 🧪
— Docker Basics: A Beginner's Guide to Containerization
— An Easy Way to Understand Docker
— 2023 DevOps is Terrible: Unpacking the Evolution into Platform Engineering
— New Blackfire.io feature: On-demand distributed profile processing 😎
Посмотреть:
🌐 RAID 10: Совершенное объединение (⏱ 00:52)
🌐 Прогнозирование цены биткоина при помощи VAR, XGBoost, FB Prophet (⏱ 20:29)
🌐 Django настройка админки (⏱ 06:55)
🌐 Задача на палиндром строки на C++ (⏱ 00:59)
🌐 Django расширяем функционал! (⏱ 07:03)
🌐 ДевОпс блиц, практика. СОБЕСЕДОВАНИЕ Middle DevOps инженера. Часть 4. (⏱ 52:38)
Хорошего дня!
Почитать:
— Gitea & Act Runner: First touch
— Книжный кружок. Рецензия на книгу «Микросервисы от архитектуры до релиза»
— Grafana Beyla: автоинструментарий eBPF с открытым исходным кодом для наблюдения за приложением
— Что такое API-шлюзы и Gateway API и почему за ними будущее нативных облачных приложений
— Управление Linux-сервером — самая ценная инвестиция
— Airflow в Kubernetes. Часть 1
— Чтение на выходные: DIY-материалы о контейнерах, DevOps и архитектуре — личный опыт напрямую от специалистов
— Практическое руководство по созданию Helm чарта или как избавиться от рутины при работе с YAML манифестами
— A Comprеhеnsivе Guidе to DеvOps Job Support
— K8s Exercise : Labels and Annotations
— Cracking the Code: Communicating Tech to Non-Tech
— DevOps CI/CD Quick Start Guide with GitHub Actions 🛠️🐙⚡️
— PagerDuty Community Update, October 27 2023
— Experimenting on the Edge with Turso and Go 🧪
— Docker Basics: A Beginner's Guide to Containerization
— An Easy Way to Understand Docker
— 2023 DevOps is Terrible: Unpacking the Evolution into Platform Engineering
— New Blackfire.io feature: On-demand distributed profile processing 😎
Посмотреть:
🌐 RAID 10: Совершенное объединение (⏱ 00:52)
🌐 Прогнозирование цены биткоина при помощи VAR, XGBoost, FB Prophet (⏱ 20:29)
🌐 Django настройка админки (⏱ 06:55)
🌐 Задача на палиндром строки на C++ (⏱ 00:59)
🌐 Django расширяем функционал! (⏱ 07:03)
🌐 ДевОпс блиц, практика. СОБЕСЕДОВАНИЕ Middle DevOps инженера. Часть 4. (⏱ 52:38)
Хорошего дня!
🔥7❤4👍3
terragrunt-brownfield
Пример модуля, демонстрирующего возможность скриптового импорта существующих ресурсов и встраивания скриптов-хуков в модули
Пример
https://github.com/simonmcc/terragrunt-brownfield
Пример модуля, демонстрирующего возможность скриптового импорта существующих ресурсов и встраивания скриптов-хуков в модули
Пример
include {
path = "global.hcl"
}
terraform {
source = "..//."
before_hook "import" {
commands = ["apply", "plan"]
execute = ["./import-resources-into-tfstate.sh", get_terraform_command()]
}
}
inputs = {
resource_group_name = "terratest-abcd"
location = "uksouth"
}
https://github.com/simonmcc/terragrunt-brownfield
GitHub
GitHub - simonmcc/terragrunt-brownfield: Example module demonstrating scriptable import of existing resources & baking hook scripts…
Example module demonstrating scriptable import of existing resources & baking hook scripts into modules - simonmcc/terragrunt-brownfield
❤5👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Как устроены языки C++, Java и Python?
▪️Компилируемые языки, такие как C++ и Go, перед выполнением преобразуют исходный код в машинный код с помощью компилятора. Скомпилированный машинный код затем может непосредственно выполняться процессором.
▪️Java сначала компилирует исходный код в байткод, который не зависит от платформы и выполняется виртуальной машиной Java (JVM). JVM может дополнительно повысить производительность, используя компиляцию Just-In-Time (JIT) для преобразования байткода в машинный код во время выполнения.
▪️Интерпретируемые языки, такие как Javascript и Ruby, не подвергаются компиляции. Вместо этого их код построчно обрабатывается интерпретатором во время выполнения. Однако современные движки JavaScript, такие как V8, также используют JIT-компиляцию для повышения производительности.
▪️Python представляет собой смесь двух миров. Сначала исходный код компилируется в платформонезависимый байткод, который затем построчно выполняется платформонезависимым интерпретатором. Кроме того, такие реализации, как PyPy, используют JIT-компиляцию для повышения скорости работы.
В целом компилируемые языки обладают преимуществами в скорости, однако благодаря современным методам оптимизации грань между компилируемыми и интерпретируемыми языками становится все более размытой.
▪️Компилируемые языки, такие как C++ и Go, перед выполнением преобразуют исходный код в машинный код с помощью компилятора. Скомпилированный машинный код затем может непосредственно выполняться процессором.
▪️Java сначала компилирует исходный код в байткод, который не зависит от платформы и выполняется виртуальной машиной Java (JVM). JVM может дополнительно повысить производительность, используя компиляцию Just-In-Time (JIT) для преобразования байткода в машинный код во время выполнения.
▪️Интерпретируемые языки, такие как Javascript и Ruby, не подвергаются компиляции. Вместо этого их код построчно обрабатывается интерпретатором во время выполнения. Однако современные движки JavaScript, такие как V8, также используют JIT-компиляцию для повышения производительности.
▪️Python представляет собой смесь двух миров. Сначала исходный код компилируется в платформонезависимый байткод, который затем построчно выполняется платформонезависимым интерпретатором. Кроме того, такие реализации, как PyPy, используют JIT-компиляцию для повышения скорости работы.
В целом компилируемые языки обладают преимуществами в скорости, однако благодаря современным методам оптимизации грань между компилируемыми и интерпретируемыми языками становится все более размытой.
👍15❤3🔥2
⚙ Configu
Полезный проектом с открытым исходным кодом, который набирает обороты в сообществе DevOps 🏆.
Я использовал этот проект для бесшовного развертывания WordPress, используя подход "конфигурация, вместо код". 🔥
Configu - это простой, современный и универсальный стандарт для управления и совместной работы с конфигурациями программного обеспечения ⚙️.
📌 Github
📌 Проект
@DevOPSitsec
Полезный проектом с открытым исходным кодом, который набирает обороты в сообществе DevOps 🏆.
Я использовал этот проект для бесшовного развертывания WordPress, используя подход "конфигурация, вместо код". 🔥
Configu - это простой, современный и универсальный стандарт для управления и совместной работы с конфигурациями программного обеспечения ⚙️.
📌 Github
📌 Проект
@DevOPSitsec
👍11❤1🔥1
Практически каждый инженер-программист использует Git, но лишь немногие знают, как он работает.
Для начала необходимо определить, где хранится наш код. Принято считать, что их всего два - на удаленном сервере типа Github и на нашей локальной машине. Однако это не совсем верно.
Git поддерживает три локальных хранилища на нашей машине, что означает, что наш код может быть найден в четырех местах:
- Рабочая директория: место, где мы редактируем файлы
- Staging area: временное место, где файлы хранятся до следующей фиксации
- Локальный репозиторий: содержит код, который был зафиксирован
- Удаленный репозиторий: удаленный сервер, на котором хранится код.
Большинство команд Git в основном перемещают файлы между этими четырьмя местами.
@DevOPSitsec
Для начала необходимо определить, где хранится наш код. Принято считать, что их всего два - на удаленном сервере типа Github и на нашей локальной машине. Однако это не совсем верно.
Git поддерживает три локальных хранилища на нашей машине, что означает, что наш код может быть найден в четырех местах:
- Рабочая директория: место, где мы редактируем файлы
- Staging area: временное место, где файлы хранятся до следующей фиксации
- Локальный репозиторий: содержит код, который был зафиксирован
- Удаленный репозиторий: удаленный сервер, на котором хранится код.
Большинство команд Git в основном перемещают файлы между этими четырьмя местами.
@DevOPSitsec
👍22🔥3❤2
Стратегии развертывания Kubernetes нагядно 👆
Каждая стратегия предлагает уникальный подход к управлению обновлениями.
@DevOPSitsec
Каждая стратегия предлагает уникальный подход к управлению обновлениями.
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤1🔥1
⚡️ Бесплатные сертификационные курсы от Google:
1. Изучайте программирование на JavaScript
https://learndigital.withgoogle.com/digitalgarage/course/learn-programming-with-javascript
2. Курс по Python от Google
https://developers.google.com/edu/python
3. Краткий курс по машинному обучению
https://learndigital.withgoogle.com/digitalunlocked/course/machine-learning-crash-course
4. Основы цифрового маркетинга
https://learndigital.withgoogle.com/digitalgarage/course/digital-marketing
5. Наука о данных с помощью Python
https://learndigital.withgoogle.com/digitalunlocked/course/data-science-with-python
6. Основы облачных вычислений Google
https://cloudskillsboost.google/course_templates/153
7. Введение в Google Cloud Essentials
https://cloudskillsboost.google/quests/23
8. Введение в базовый уровень: Данные, ML, AI
https://cloudskillsboost.google/quests/34
@DevOPSitsec
1. Изучайте программирование на JavaScript
https://learndigital.withgoogle.com/digitalgarage/course/learn-programming-with-javascript
2. Курс по Python от Google
https://developers.google.com/edu/python
3. Краткий курс по машинному обучению
https://learndigital.withgoogle.com/digitalunlocked/course/machine-learning-crash-course
4. Основы цифрового маркетинга
https://learndigital.withgoogle.com/digitalgarage/course/digital-marketing
5. Наука о данных с помощью Python
https://learndigital.withgoogle.com/digitalunlocked/course/data-science-with-python
6. Основы облачных вычислений Google
https://cloudskillsboost.google/course_templates/153
7. Введение в Google Cloud Essentials
https://cloudskillsboost.google/quests/23
8. Введение в базовый уровень: Данные, ML, AI
https://cloudskillsboost.google/quests/34
@DevOPSitsec
👍6❤1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🤖🧠 Машинное обучение в двух словах
Алгоритмы машинного обучения обладают одной суперспособностью - способностью обобщать закономерности в данных без явного программирования. В рамках этого направления существует несколько основных методов:
📌 𝐄𝐧𝐬𝐞𝐦𝐛𝐥𝐞 𝐥𝐞𝐚𝐫𝐧𝐢𝐧𝐠: объединяет несколько моделей вместе для улучшения прогнозов. Представьте, что это суперпрогноз, состоящий из различных моделей погоды, которые работают лучше друг друга.
📌 𝐔𝐧𝐬𝐮𝐩𝐞𝐫𝐯𝐢𝐬𝐞𝐝 𝐥𝐞𝐚𝐫𝐧𝐢𝐧𝐠: алгоритмы находят скрытые закономерности и группировки в немаркированных данных.
📌 𝐍𝐞𝐮𝐫𝐚𝐥 𝐧𝐞𝐭𝐰𝐨𝐫𝐤𝐬 𝐚𝐧𝐝 𝐝𝐞𝐞𝐩 𝐥𝐞𝐚𝐫𝐧𝐢𝐧𝐠: являются двумя наиболее мощными методами машинного обучения. Нейронные сети, созданные на основе человеческого мозга, состоят из слоев взаимосвязанных узлов. Глубокое обучение - это тип машинного обучения, в котором используются нейронные сети с большим количеством слоев.
📌 𝐒𝐮𝐩𝐞𝐫𝐯𝐢𝐬𝐞𝐝 𝐥𝐞𝐚𝐫𝐧𝐢𝐧𝐠:использует размеченные данные для обучения моделей предсказания результатов. Это все равно что иметь ключ к ответу для проверки своей работы.
📌 𝐑𝐞𝐢𝐧𝐟𝐨𝐫𝐜𝐞𝐦𝐞𝐧𝐭 𝐥𝐞𝐚𝐫𝐧𝐢𝐧𝐠: речь идет об оптимизации решений путем проб и ошибок и получения обратной связи, подобно тому, как мы учимся на своих ошибках.
@DevOPSitsec
Алгоритмы машинного обучения обладают одной суперспособностью - способностью обобщать закономерности в данных без явного программирования. В рамках этого направления существует несколько основных методов:
📌 𝐄𝐧𝐬𝐞𝐦𝐛𝐥𝐞 𝐥𝐞𝐚𝐫𝐧𝐢𝐧𝐠: объединяет несколько моделей вместе для улучшения прогнозов. Представьте, что это суперпрогноз, состоящий из различных моделей погоды, которые работают лучше друг друга.
📌 𝐔𝐧𝐬𝐮𝐩𝐞𝐫𝐯𝐢𝐬𝐞𝐝 𝐥𝐞𝐚𝐫𝐧𝐢𝐧𝐠: алгоритмы находят скрытые закономерности и группировки в немаркированных данных.
📌 𝐍𝐞𝐮𝐫𝐚𝐥 𝐧𝐞𝐭𝐰𝐨𝐫𝐤𝐬 𝐚𝐧𝐝 𝐝𝐞𝐞𝐩 𝐥𝐞𝐚𝐫𝐧𝐢𝐧𝐠: являются двумя наиболее мощными методами машинного обучения. Нейронные сети, созданные на основе человеческого мозга, состоят из слоев взаимосвязанных узлов. Глубокое обучение - это тип машинного обучения, в котором используются нейронные сети с большим количеством слоев.
📌 𝐒𝐮𝐩𝐞𝐫𝐯𝐢𝐬𝐞𝐝 𝐥𝐞𝐚𝐫𝐧𝐢𝐧𝐠:использует размеченные данные для обучения моделей предсказания результатов. Это все равно что иметь ключ к ответу для проверки своей работы.
📌 𝐑𝐞𝐢𝐧𝐟𝐨𝐫𝐜𝐞𝐦𝐞𝐧𝐭 𝐥𝐞𝐚𝐫𝐧𝐢𝐧𝐠: речь идет об оптимизации решений путем проб и ошибок и получения обратной связи, подобно тому, как мы учимся на своих ошибках.
@DevOPSitsec
👍7❤3🔥2👎1
Коллекция мини-программ, демонстрирующих различные варианты использования client-go, дополненная предварительно настроенной онлайновой средой разработки. Вдохновлен client-go/examples.
Цель - протестировать (более или менее) свежую версию Go и пакетов k8s.io на поддерживаемых в настоящее время ветках релизов Kubernetes.
📌 Github
@DevOPSitsec
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2🔥1🆒1