• В данной шпаргалке рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы — рекомендую уделить им пристальное внимание:
• Протоколы:
- REST и GraphQL;
- gRPC;
- Webhook;
- Производительность API;
- HTTP 1.0 -> HTTP 1.1 -> HTTP 2.0 -> HTTP 3.0 (QUIC);
- SOAP, REST, GraphQL и RPC;
- Сначала код и сначала API;
- Коды статусов HTTP;
- Шлюз API;
- Эффективное и безопасное API;
- Инкапсуляция TCP/IP;
- Почему NGINX называют "обратным" прокси?
- Алгоритмы балансировки нагрузки;
- URL, URI и URN.
• CI/CD:
- CI/CD простыми словами;
- Технический стек Netflix (конвейер CI/CD).
• Архитектурные паттерны:
- MVC, MVP, MVVM, MVVM-C и VIPER;
- 18 основных архитектурных паттернов.
• База данных:
- 8 структур данных, улучшающих работу баз данных;
- Выполнение инструкции SQL в базе данных;
- Теорема CAP;
- Типы памяти и хранилищ данных;
- Визуализация запроса SQL;
- Язык SQL.
• Кэш:
- Кэширование данных;
- Причины высокой производительности Redis;
- Случаи использования Redis;
- Стратегии кэширования.
• Микросервисная архитектура:
- Типичная микросервисная архитектура;
- Лучшие практики микросервисов;
- Типичный технический стек микросервисов;
- Причины высокой производительности Kafka.
• Платежные системы:
- Почему кредитную карту называют "самым выгодным продуктом банка"? Как VISA/Mastercard делают деньги?
- Принцип работы VISA.
• DevOps:
- DevOps, SRE и Platform Engineering;
- Что такое Kubernetes?
- Docker и Kubernetes;
- Принцип работы Docker.
• Git:
- Принцип работы команд Git;
- Принцип работы Git;
- Git merge и git rebase.
• Облачные сервисы:
- Популярные облачные сервисы по состоянию на 2023 год;
- Облачная нативность.
• Инструменты, повышающие продуктивность разработки:
- Визуализация файлов JSON;
- Автоматические преобразование кода в архитектурные диаграммы.
• Linux:
- Файловая система Linux;
- 18 основных команд Linux.
• Безопасность:
- Принцип работы HTTPS;
- OAuth 2.0 простыми словами;
- 4 наиболее распространенных механизмов аутентификации;
- Сессия, куки, JWT, SSO и OAuth;
- Безопасное хранение паролей в базе данных и их валидация;
- JWT (JSON Web Token) простыми словами;
- Принцип работы Google Authenticator и других типов двухфакторной аутентификации.
• Реальные системы:
- Технический стек Netflix;
- Архитектура Twitter по состоянию на 2022 год;
- Эволюция архитектуры Airbnb в течение последних 15 лет;
- Монорепозиторий и микрорепозитории.
#DevOps #SysOps
Please open Telegram to view this post
VIEW IN TELEGRAM
• Самое известное средство контейнеризации и автоматизации развертывания приложений — #Docker. Известное, но не единственное: достойную конкуренцию ему составляет Kubernetes. Разумеется, он тоже представляет определенный интерес для злоумышленников. Как защитить Kubernetes от взлома? Об этом — сегодняшняя статья:
- Restrict Kubernetes API access to specific IP ranges;
- Use Role-Based Access Control (RBAC);
- Enable PodSecurityPolicy (PSP);
- Use Network Policies;
- Enable Audit Logging;
- Use Secure Service Endpoints;
- Use Pod Security Context;
- Use Kubernetes Secrets;
- Enable Container Runtime Protection;
- Enable Admission Controllers;
- Hardcoded Credential;
- Container Escape Attack;
- Kubernetes API Server Attack;
- Pod-to-Pod Network Attack;
- Privilege Escalation Attack;
- Denial-of-Service (DoS) Attack;
- Kubernetes Threat Matrix.
#Kubernetes
Please open Telegram to view this post
VIEW IN TELEGRAM
• Интересный и уникальный ресурс для изучения Docker, который был создан еще в далеком 2017 году. Идея заключается в том, что после авторизации нас пересылает на один из облачных хостов, где стартует 4-часовая сессия «игровой площадки». В ней вы можете создавать новые сущности (instances), т.е. узлы тестового Docker-кластера. Каждый из них — это инсталляция легковесного дистрибутива Alpine Linux с редактируемым локальным IP-адресом. В них установлен Docker актуальной версии:
https://labs.play-with-docker.com
• А чтобы начинающим пользователям Docker было проще и лучше понять, чем же вообще можно (и полезно) заниматься в игровой площадке Docker, авторы Play with Docker дополнили свой сервис удобным ресурсом по обучению:
• Дополнительная информация есть на GitHub: https://github.com/play-with-docker/play-with-docker
#Docker
Please open Telegram to view this post
VIEW IN TELEGRAM
infosec
Photo
Docker_Command_Cheat_Sheet.pdf
272.7 KB
• Помимо содержательного файлика с полезными командами Docker, хочу поделиться интересным репозиторием, который собрал уже 3.6К звёзд и содержит в себе необходимые подсказки для начинающих и опытных специалистов:
- Установка;
- Реестры и репозитории Docker;
- Первые действия с контейнерами;
- Запуск и остановка контейнеров;
- Получение информации о контейнерах;
- Сеть;
- Очистка Docker;
- Docker Swarm;
- Заметки.
#Docker #CheatSheet
Please open Telegram to view this post
VIEW IN TELEGRAM
• Как известно, #Docker умеет создавать виртуальные сети для безопасного и удобного сетевого взаимодействия внутри контейнеров. В этой статье мы рассмотрим, как именно он это делает на примере базовых манипуляций с сетью в рамках одного хоста с операционной системой #Linux.
• По итогу мы получим:
- http-сервер, запущенный в изолированном сетевом пространстве;
- Доступ к этому серверу по порту 8000 из loopback (localhost) интерфейса хоста;
- Перенаправление пакетов от других машин по tcp порту 8000 в наш http-сервер.
• Дополнительный материал: в этой статье автор рассказывает о том, как работает сеть в контейнерах и разбирает следующие вопросы:
- Как виртуализировать сетевые ресурсы, чтобы контейнеры думали, что у них есть отдельная сетевая среда?
- Как превратить контейнеры в дружелюбных соседей и научить общаться друг с другом?
- Как выйти во внешний мир (например, в Интернет) изнутри контейнера?
- Как связаться с контейнерами, работающими на хосте Linux, из внешнего мира?
- Как реализовать публикацию портов, подобную Docker?
#Сети #DevOps #Docker
Please open Telegram to view this post
VIEW IN TELEGRAM
• Вероятно, что это самое понятное руководство, которое описывает работу контейнеров с сетью. Слева читаете, копируете команды, а справа наблюдаете за консолью:
#Docker #Сети
Please open Telegram to view this post
VIEW IN TELEGRAM
iximiuz Labs
How Container Networking Works: a Docker Bridge Network From Scratch | iximiuz Labs
Begin with the basics to understand Docker and Kubernetes networking: learn how to create and interconnect Linux network namespaces using only command-line tools.
• Курс разделен на девять модулей, всего — 44 урока, 76 тестов и 3,5 часа видео. С помощью упражнений можно практиковаться в Docker Compose, командах Docker, разработке образов с использованием Dockerfiles. Среди прочих тем — Docker Compose и создание стека приложений с его использованием, Docker Swarm и Docker Registry. Курс предназначен для новичков в #DevOps.
• Дополнительно:
- Шпаргалка с командами Docker;
- Play with Docker — онлайн-сервис для практического знакомства с Docker;
- Docker Security - объемное руководство по безопасной настройке Docker.
#Docker #Курс
Please open Telegram to view this post
VIEW IN TELEGRAM
• Trivy — это сканер уязвимостей с открытым исходным кодом, разработанный для контейнерных сред. Он решает несколько проблем безопасности, связанных с выявлением уязвимостей в образах контейнеров и управлением ими. Вот некоторые проблемы, которые помогает решить Trivy:
• Материал по ссылке ниже будет отличным примером, как пользоваться данным инструментом. По сути, у нас будет готовая мини инструкция по установке и использованию:
#Docker #Trivy
Please open Telegram to view this post
VIEW IN TELEGRAM
📦 Первые контейнеры.
• Первые контейнеры, официально называвшиеся именно этим термином, появились в феврале 2004 года в операционной системе Solaris 10 от Sun Microsystems, они использовались на серверах с архитектурой x86 и SPARC. Solaris Containers включали в себя изолированные «песочницы» для запуска ОС (в терминологии разработчика они назывались «зонами»), а также инструменты управления системными ресурсами, допускавшими создание «моментальных снимков» отдельных зон и их клонирование. То есть, механизмы оркестрации.
• Зоны представляли собой полностью изолированные виртуальные серверы внутри хостовой операционной системы. Каждый такой экземпляр ОС имел собственное сетевое имя, использовал выделенные сетевые интерфейсы, собственную файловую систему, набор пользователей (включая root) и конфигурацию. При этом для работы виртуального сервера не требовалось жестко выделять память или процессор — аппаратные ресурсы использовались общие, однако при необходимости администратор имел возможность зарезервировать определенные серверные мощности для какой-то конкретной зоны. Процессы внутри контейнеров выполнялись изолированно, не имели доступа друг к другу и потому не могли конфликтовать.
• Основным отличием Solaris Containers от предшественников (Process Containers, LXC и Warden, #Docker и #Kubernetes) можно назвать то обстоятельство, что, как и ранее, виртуальные ОС использовали ядро хостовой системы, но при желании администратор мог запускать копии системы в контейнерах с собственным ядром. Это стало следующим важным шагом в эволюции технологий контейнеризации.
#Разное
• Первые контейнеры, официально называвшиеся именно этим термином, появились в феврале 2004 года в операционной системе Solaris 10 от Sun Microsystems, они использовались на серверах с архитектурой x86 и SPARC. Solaris Containers включали в себя изолированные «песочницы» для запуска ОС (в терминологии разработчика они назывались «зонами»), а также инструменты управления системными ресурсами, допускавшими создание «моментальных снимков» отдельных зон и их клонирование. То есть, механизмы оркестрации.
• Зоны представляли собой полностью изолированные виртуальные серверы внутри хостовой операционной системы. Каждый такой экземпляр ОС имел собственное сетевое имя, использовал выделенные сетевые интерфейсы, собственную файловую систему, набор пользователей (включая root) и конфигурацию. При этом для работы виртуального сервера не требовалось жестко выделять память или процессор — аппаратные ресурсы использовались общие, однако при необходимости администратор имел возможность зарезервировать определенные серверные мощности для какой-то конкретной зоны. Процессы внутри контейнеров выполнялись изолированно, не имели доступа друг к другу и потому не могли конфликтовать.
• Основным отличием Solaris Containers от предшественников (Process Containers, LXC и Warden, #Docker и #Kubernetes) можно назвать то обстоятельство, что, как и ранее, виртуальные ОС использовали ядро хостовой системы, но при желании администратор мог запускать копии системы в контейнерах с собственным ядром. Это стало следующим важным шагом в эволюции технологий контейнеризации.
#Разное
• Небольшое видео о полезных и продвинутых командах Docker, которые обычно не встречаются в документации. Держу пари, что Вы точно откроете для себя что-то новое и полезное.
• Кстати, у автора этого видео есть очень крутой репо (4к
• Дополнительно:
#Docker #DevOps
Please open Telegram to view this post
VIEW IN TELEGRAM
• Очень крутой и содержательный урок (вебинар) про различные методы, которые злоумышленник может использовать для побега из контейнера Docker, а ещё мы разберем необходимые шаги для успешного побега на понятных примерах. Также обсудим причины возникновения таких уязвимостей и разберём, какие меры можно принять, чтобы предотвратить побег из контейнеров по следующим сценариям:
• К слову, у автора есть много другого полезного материала. Обязательно к просмотру:
#Docker
Please open Telegram to view this post
VIEW IN TELEGRAM