Присоединяйтесь к нашему каналу и погрузитесь в мир Backend-разработки Связь: @devmangx РКН: https://clck.ru/3FobxK
Книга Cloud Native DevOps with Kubernetes (второе издание) написана Джастином Домингусом и Джоном Арунделом.
Она посвящена развертыванию, управлению и масштабированию современных облачных приложений с использованием Kubernetes.
🟣Основы облачных технологий и DevOps.
🟣Контейнеризация и работа с Docker.
🟣Развертывание и управление кластерами Kubernetes.
🟣Автоматизация инфраструктуры как кода (IaC).
🟣Настройка безопасности, мониторинга и логирования.
🟣Использование Helm, CI/CD и GitOps.
🟣Масштабирование приложений и оптимизация ресурсов.
⏩Получите свой экземпляр:
https://www.f5.com/content/dam/f5/corp/global/pdf/ebooks/cloud-native-devops-k8s-2e.pdf
👉 @BackendPortal | #книги
Шпаргалка по командам Linux
📝Это список популярных команд Linux с их кратким описанием, включая команды для работы с файлами и директориями, управления пользователями, процессами, сетью и системой.
👉 @BackendPortal | #ресурсы
😳 Кто спрашивал на какие каналы по программированию я подписан?
Лично я подписан и читаю этот канал: @umnyiprogrammist
Делимся приватным архивом на 837 ГБ курсов по программированию:
1. Обучение Python с нуля
2. Обучение JavaScript с нуля
3. Обучение С++ с нуля
4. Обучение С# с нуля
5. Обучение HTML/CSS с нуля
6. Обучение Java с нуля
7. Обучение SQL/GO/PHP с нуля
Архивы скоро удалят, очень важно успеть!🔥
Rust Atomics and Locks
- 249 страниц
- Издание 2023 года
📝Основная аудитория этой книги — разработчики на Rust, которые хотят глубже разобраться в низкоуровневой конкурентности. Однако книга также может подойти тем, кто не очень знаком с Rust, но хочет понять, как выглядит низкоуровневая конкурентность с точки зрения этого языка.
Предполагается, что читатель знает основы Rust, имеет установленный актуальный компилятор Rust и умеет компилировать и запускать код с помощью Cargo.
⏩Получите свой экземпляр:
https://marabos.nl/atomics/
👉 @BackendPortal | #книги
Linux предоставляет два универсальных инструмента для работы с сетевыми соединениями через сокеты. 🔥
Netcat — это простой инструмент для сетевого взаимодействия, тогда как socat является более продвинутым и универсальным вариантом с поддержкой нескольких протоколов.
Netcat:
🟢Простой клиент и сервер для TCP/UDP.
🟢Поддерживает только TCP и UDP.
🟢Одно соединение за раз
🟢Нет шифрования и модификации пакетов.
Минимальные возможности скриптования и обработки ошибок.
Socat:
🟢Поддерживает мультипротокольную двухстороннюю передачу.
🟢Работает с TCP, UDP, UNIX сокетами, SCTP, SSL и др.
🟢Поддерживает несколько одновременных соединений.
🟢Реализовано шифрование (SSL/OpenSSL).
🟢Расширенные возможности туннелирования (например, проброс портов, SSL-туннели).
🟢Высокая скриптуемость и модификация пакетов.
👉 @BackendPortal | #ресурсы
Представляем JStack — лучший способ начать новый проект на Next.js
🟢Быстрый и легковесный
🟢Полностью типобезопасный
🟢Развертывание где угодно: Cloudflare, Vercel и другие
⏩ https://jstack.app/
Месяцы работы. 100% с открытым исходным кодом.💀
👉 @BackendPortal | #ресурсы
Механизмы аутентификации – Микросервисы
1. API-ключи
◾️ Простые, уникальные идентификаторы, назначаемые каждому клиенту или сервису.
◾️ Отправляются в заголовке или в параметрах запроса.
◾️ Лучше всего подходят для внутренних сервисов, менее чувствительных API или для предоставления доступа к определённым функциям.
◾️ Легко реализуются и управляются.
◾️ Менее безопасны по сравнению с методами, основанными на токенах. Ключи могут быть утрачены или украдены.
2. Базовая аутентификация (Basic Authentication)
◾️ Имя пользователя и пароль передаются в заголовке Authorization в виде строки, закодированной в base64.
◾️ Простая в реализации, но требует HTTPS для обеспечения безопасности.
◾️ Подходит для простых сценариев с низкими требованиями к безопасности.
◾️ Широко поддерживается и легко понимается.
◾️ Уязвима для атак "человек посередине" (MITM) без использования HTTPS.
◾️ Пароли передаются в открытом виде (даже при кодировании).
3. JSON Web Tokens (JWT)
◾️ Самодостаточные токены, содержащие информацию о пользователе и утверждения (claims) в формате JSON.
◾️ Выдаются сервером аутентификации после успешного входа и затем отправляются клиентом в заголовке Authorization.
◾️ Широко используются для статeless-аутентификации в микросервисах, SSO и авторизации.
◾️ Безопасны, компактны, могут содержать дополнительные утверждения.
◾️ Требуют правильного управления ключами для подписания и проверки.
4. OAuth 2.0
◾️ Фреймворк авторизации, позволяющий сторонним приложениям получать ограниченный доступ к ресурсам от имени владельца ресурса (пользователя) без передачи учетных данных.
◾️ Использует различные типы грантов (authorization code, implicit, client credentials и др.) для получения access-токенов и refresh-токенов.
◾️ Широко применяется для авторизации пользователей и делегированного доступа к API.
◾️ Предоставляет стандартизированный способ защиты доступа к ресурсам без передачи учетных данных.
◾️ Может быть сложен в реализации и требует учета возможных уязвимостей.
5. OpenID Connect (OIDC)
◾️ Слой идентификации поверх OAuth 2.0, предоставляющий аутентификацию пользователя и информацию о профиле.
◾️ Использует ID-токен вместе с access-токеном для предоставления информации о пользователе.
◾️ Используется для аутентификации совместно с OAuth 2.0 для авторизации.
◾️ Упрощает аутентификацию, предоставляя стандартизированный способ получения информации о пользователе.
◾️ Требует интеграции с провайдером OIDC (например, Google, Okta).
6. Взаимная TLS-аутентификация (mTLS)
◾️ И клиент, и сервер аутентифицируют друг друга с использованием X.509-сертификатов.
◾️ Требует центра сертификации (CA) для выдачи и управления сертификатами.
◾️ Лучше всего подходит для защиты связи между внутренними сервисами или высокочувствительными API.
◾️ Обеспечивает высокий уровень безопасности за счёт взаимной аутентификации и шифрования.
◾️ Более сложна в настройке и управлении по сравнению с другими методами.
❗ Эти механизмы аутентификации применимы не только к микросервисам.
👉 @BackendPortal | #ресурсы
📱 Java Developer — мастхев для любого джависта
Канал Team Lead'a с полезными советами и практиками для Java-разработчиков:
➖ Книги, статьи, тесты
➖ Spring, Hibernate, Docker, SQL
➖ Алгоритмы, вопросы и задачи с собеседований
Присоединяйтесь: @java_tg
Цифровая трансформация: Yandex B2B Tech и Яндекс 360 для бизнеса представили корпоративные онлайн-доски
Яндекс 360 продолжает развивать решения для бизнеса: представлены онлайн-доски, которые можно развернуть в IT-контуре компании.
Сервис помогает организовывать работу с данными, управлять проектами и контролировать процессы. Доступ к доскам регулирует администратор, а данные хранятся в зашифрованном виде.
Пока сервис доступен в on-premise, но скоро появится облачная версия. Подробнее — на сайте Яндекс 360 для бизнеса.
Совет IT-спецам на 2025 год - чаще посещайте тематические мероприятия
Зачем тратить время на Ютубчик, когда можно интересно проводить время, при этом развивая свои навыки!
А чтобы не гуглить афиши и не подписываться на сотню разных каналов, IT-мероприятия России уже собрали все самые топовые события в одном месте.
Оффлайн и онлайн, для разных специальностей и уровней знаний.
👨🏻💻 В этом канале ты найдешь самые актуальные и интересные события: анонсы форумов, конференций, митапов, вебинаров, хакатонов, олимпиад и многое другое.
Присоединяйся к комьюнити лучших спецов и заново влюбись в свою работу:
IT мероприятия России / ITMeeting / IT events
Яндекс разработал и выложил в открытый доступ распределенный непрерывный профилировщик — Perforator.
Полезная штука, чтобы найти и оптимизировать узкие места в коде, снизить нагрузку на сервер и понять, почему ваша программа тормозит. Система поддерживает генерацию профилей для FDO и доступна для развертывания на Kubernetes.
Perforator собирает данные через eBPF – программируемые плагины в ядре Linux. А для раскрутки стека команда применила комбинацию .eh_frame и eBPF. Благодаря этому Perforator может давать точный анализ, но не влиять на производительность серверов. Еще из преимуществ:
🔸Сокращает затраты на серверную инфраструктуру до 20%
🔸Поддерживает нативные языки, включая C, C++, Go и Rust
🔸Отображает большие объемы данных
🔸Можно запустить на собственных серверах и минимизировать зависимость от внешних облачных провайдеров
🔜 Ознакомиться: тут
👉 @BackendPortal | #ресурсы
Backend-разработчики просто нарасхват. Крутейшая сеть айтишных вакансий в Telegram подвела итоги полугодия.
Ловите список самых востребованных бэкенд языков и кучу вакансий к ним:
1. С/С++ – для настоящих хардкорщиков
2. Java – тут просто творцы цифрового мира
3. Python – для любителей больших данных и немногословности
4. GO – король микросервисов!
Если ты бэкендер в поиске работы, то тебе однозначно в @back_rabota
Представляем OpenDeepResearcher
Это открытый AI-агент, который автоматически собирает и анализирует информацию по заданной теме.
☑Изучение новых технологий
☑ Поиск best practices и решений
☑ Анализ статей, блогов, документации
☑ Сравнение фреймворков, баз данных и инструментов
Просто укажите тему, и ИИ самостоятельно проведёт исследование, а затем предоставит подробный отчёт.
🔜 Ознакомиться: тут
👉 @BackendPortal | #ресурсы
Хочешь стать Linux-экспертом?
LinuxCamp - канал для тех, кто хочет профессионально освоить Linux и программирование!
- Уникальные гайды по администрированию Linux
- Продвинутые техники и рекомендации по разработке на языках C/C++
- Подробные статьи о внутреннем устройстве операционных систем
- Интересные факты и новости из мира технологий
🌐 Присоединяйся к нам и становись частью сообщества истинных гуру: LinuxCamp
Онлайн школы — ВСЁ! В телеграме появились каналы, которые напрочь разносят все популярные курсы по программированию.
Вот они:
• Технологичка
• Frontend Tests & Tasks
• Библиотека программиста
Теперь нет смысла покупать дорогущее обучение, чтобы быстро освоить пару языков и получить работу с зпшкой от 120 тысяч, так что подписывайтесь 🖤
На сайте roadmap.sh собрана шикарная подборка идей для практики backend-разработки — от простых CLI-приложений вроде трекера задач до сложных систем бронирования и масштабируемых e-commerce платформ
Проекты разбиты по уровням сложности: начинающий, средний, эксперт
Каждый проект снабжен описанием и рекомендациями, что делает обучение увлекательным и продуктивным
👉 https://roadmap.sh/backend/projects
👉 @BackendPortal | #ресурсы
Java Backend Developer Полный курс 2025
Курс охватывает ключевые технологии и инструменты, включая Spring Boot, принципы работы серверной части веб-приложений, навыки, необходимые для Java backend-разработчика, и пошаговый roadmap для освоения профессии.
📲 Ознакомиться: тут
👉 @BackendPortal | дать буст #курсы
Отслеживание расходов с использованием хранения в JSON и REST API.🔥
ExpenseOwl — это предельно простой инструмент для отслеживания расходов с современным интерфейсом, предназначенный для использования в домашних условиях.
Он позволяет отслеживать ежедневные траты, визуализировать ежемесячные модели расходов с помощью круговых диаграмм и поддерживать общий обзор финансовых привычек
⏩Ознакомиться:
https://github.com/Tanq16/ExpenseOwl
👉 @BackendPortal | #ресурсы
Ищем новичков во фронтенд-разработке и вёрстке сайтов.
Хотим показать, как получить реальный опыт в разработке сайтов и веб-приложений.
А именно:
- Сверстать веб-сайт на HTML + CSS;
- Реализовать функционал на JavaScript;
- Пощупать фронтенд-фреймворк Angular;
- Подключить Backend и загрузить сайт на хостинг.
Чтобы в итоге ты своими руками разработал качественный сайт, который не стыдно добавить в портфолио или продать.
Такой опыт можно получить на бесплатном практикуме уже завтра с поддержкой от опытных кураторов на каждом этапе.
👉 Приходи на бесплатное обучение и зови с собой друзей
Бонусом получишь гайд для поиска работы и заказов на фронтенд-разработку.
Создание параллельного клиента REST API
В статье рассматривается процесс разработки пользовательского клиентского кода для тестирования алгоритма ограничения скорости (Rate Limiting), реализованного на стороне API-сервера. Для выполнения HTTP-запросов используется синхронный клиент Spring's RestTemplate. 🔥
Приводятся примеры реализации интерфейса IClientAPI с методами для обращения к различным конечным точкам API, таким как "suppliers" и "buyers".
https://codersite.dev/building-rest-api-client/
👉 @BackendPortal | дать буст | #статья
Back-End Engineer Roadmap 🔥
В нем подробно описаны ключевые технологии, концепции и инструменты, которые необходимо изучить для работы в этой сфере.
👉 @BackendPortal | #ресурсы
Лучший способ передачи данных из бэкенда во фронтенд: События, отправленные сервером
Видео объясняет различные методы передачи данных между клиентом и сервером, включая HTTP-соединение, Web Sockets, Polling и Server-Sent Events (SSE). Рассматриваются их преимущества и недостатки, сравниваются SSE и Polling, а также обсуждаются случаи, когда SSE оказывается эффективнее Web Sockets.
📲 Ознакомиться: тут
👉 @BackendPortal | дать буст
Как работает команда "docker exec" 👆
С помощью "docker exec" можно выполнять произвольные команды в запущенном контейнере. Можно даже запустить интерактивную оболочку внутри контейнера (если в нем есть соответствующий бинарный файл оболочки).
docker exec не является частью спецификации OCI Runtime, но используется в Docker.
⏩ Запускает временный контейнер, который использует те же пространства имен (namespaces) и cgroups, что и целевой контейнер.
⏩ Снаружи это выглядит, как выполнение команды внутри контейнера, но на самом деле создается отдельный временный процесс.
Процесс выполнения docker exec
1 Пользователь вводит команду в терминале:
docker exec e0e7a6566220 curl
🔜 Здесь e0e7a6566220
— это ID контейнера (nginx), а curl
— команда для выполнения.
2.Docker CLI отправляет команду демону Docker (dockerd
или containerd
).
3.Демон передает команду runtime shim
, который управляет жизненным циклом контейнера.
4.Создается временный контейнер (tmp container
), который использует все изоляционные примитивы (namespaces
, cgroups
) контейнера nginx
.
5.Этот временный контейнер выполняет команду curl
.
6.Вывод перенаправляется обратно:
⏩ stdin
идет внутрь контейнера,
⏩ stdout
и stderr
возвращаются в терминал пользователя.
Таким образом, команда docker exec
не изменяет контейнер, а просто запускает временный процесс внутри его окружения.
👉 @BackendPortal | #ресурсы
Если вы хотите лучше разбираться в алгоритмах и структурах данных, прочитайте эти 12 статей: ⏬
1. Как анализировать пространственную сложность алгоритма: компромиссы между временем и пространством и рекурсия.
https://newsletter.francofernando.com/p/space-complexity
2. Уроки, которые я извлек, решив все задачи Advent Of Code.
https://newsletter.francofernando.com/p/advent-of-code
3. Все, что вам нужно знать о структуре данных массива, включая многомерные и динамические массивы.
https://newsletter.francofernando.com/p/arrays
4. Удобное для начинающих введение в графики. Различные типы графиков и способы их представления.
https://newsletter.francofernando.com/p/graphs-representation
5. Как эффективно хранить и представлять строки с помощью структуры данных trie.
https://newsletter.francofernando.com/p/tries
6. Почему алгоритмы, основанные на сравнении, не могут выполнять сортировку менее чем за O(nlogn). И почему счетная сортировка, радиксная сортировка и ведерная сортировка могут работать лучше.
https://newsletter.francofernando.com/p/linear-time-sorting
7. Что такое приоритетная очередь и как ее реализовать. Примеры использования приоритетных очередей и алгоритм heapsort.
https://newsletter.francofernando.com/p/priority-queue
8. Три различных подхода к умножению матриц: грубая сила, "разделяй и властвуй" и алгоритм Штрассена.
https://newsletter.francofernando.com/p/multiplying-matrix
9. Как измерить эффективность программы с помощью ее временной сложности. Плюс нотация Big Oh и амортизированный анализ.
https://newsletter.francofernando.com/p/time-complexity
10. Двоичные деревья поиска
Что такое двоичные деревья поиска. Плюс наиболее распространенные реализации BST.
https://newsletter.francofernando.com/p/time-complexity
11. Легкое введение в рекурсию с помощью проблемы Ханойской башни.
https://newsletter.francofernando.com/p/hanoi
12. Как эффективнее решать задачи кодирования, сортируя входные данные.
https://newsletter.francofernando.com/p/solving-problems-by-sorting
👉 @BackendPortal | дать буст | #статья
Есть много способов отправлять обновления в режиме реального времени от серверов к клиентам.
Наиболее популярные варианты: WebSocket, Server-Sent Events (SSE) и Webhooks.
Я сравнил их бок о бок, чтобы помочь вам выбрать, что лучше всего подходит для вашего проекта: ⏬
🟢WebSockets
Предоставляют двунаправленный канал связи через одно TCP-соединение. Клиент и сервер могут отправлять сообщения друг другу в режиме реального времени.
▶Как работает:
Клиент включает определённые поля в HTTP-заголовке, чтобы сообщить серверу о переходе на протокол WebSocket. После ответа сервера устанавливается WebSocket-соединение.
▶Когда использовать:
Когда необходима двусторонняя связь (например, чаты, онлайн-игры, торговые платформы).
🟢Server-Sent Events (SSE)
Двусторонний канал избыточен, если данные передаются только от сервера к клиенту. SSE решает эту задачу, позволяя серверу отправлять сообщения клиенту через HTTP.
▶Как работает:
Клиент отправляет GET-запрос серверу, указывая, что ожидает поток событий. Это создаёт постоянное соединение, через которое сервер может отправлять сообщения.
▶Когда использовать:
Для односторонних обновлений в реальном времени, таких как уведомления, ленты событий или изменения состояния.
🟢Webhooks
В отличие от SSE, которые обычно используются для фронтенда, Webhooks чаще применяются для получения обновлений на бэкенд. Работают как обратный вызов, информируя клиента о новых данных.
▶Как работает:
Сервер создаёт API-эндпоинт для получения обновлений от внешних источников. Этот эндпоинт используется другими сервисами для отправки данных.
▶Когда использовать:
Если требуется сообщать бэкенду о событиях (например, обработка платежей или интеграция с внешними API).
🧠 Выбор технологии зависит от потребностей вашего проекта:
- Если нужна двусторонняя связь — WebSocket
- Для простых односторонних обновлений — SSE
- Для интеграции между бэкендами — Webhooks
👉 @BackendPortal | #ресурсы
Ускорение кода на Python в 30 тысяч раз 😏
Видео рассказывает о способах ускорения кода на Python с помощью NumPy, кэширования, встроенных функций и эффективных алгоритмов.
📲 Ознакомиться: тут
👉 @BackendPortal | дать буст
Топ-5 стратегий кэширования:
🟡Read Through (Чтение через кэш): Приложение всегда сначала запрашивает кэш. Если данных нет в кэше (промах), кэш сам извлекает их из базы данных и сохраняет для будущих запросов.
Преимущества: Упрощает логику приложения, гарантирует, что кэш всегда содержит актуальные данные.
Недостатки: Более высокая сложность кэша, может не подойти для систем с частыми записями.
🔜 Лучше всего для: Приложений с частыми запросами на чтение, таких как CDN, ленты в социальных сетях и профили пользователей.
🟡Cache Aside (Ленивое загрузка): Приложение сначала проверяет кэш. Если данные не найдены (промах), оно извлекает их из базы данных и сохраняет в кэш для последующих запросов.
Преимущества: Удерживает кэш маленьким, избегает ненужных данных в памяти.
Недостатки: Промахи в кэше могут быть дорогими, риск устаревших данных при частых обновлениях.
🔜 Лучше всего для: Систем с высоким соотношением чтений к записям, например, интернет-магазинов.
🟡Write Through (Запись через кэш): Каждая операция записи сначала сохраняется в кэш, а затем немедленно записывается в базу данных.
Преимущества: Гарантирует синхронизацию кэша и базы данных.
Недостатки: Более высокая задержка записи, ненужное кэширование редко используемых данных.
🔜 Лучше всего для: Систем с критичной важностью консистентности, например, финансовых приложений.
🟡Write Around (Запись мимо кэша): Приложение сразу записывает данные в базу данных, минуя кэш. Кэш обновляется только при чтении данных.
Преимущества: Избегает кэширования редко используемых данных.
Недостатки: Более высокая частота промахов в кэше, что вызывает частые чтения из базы данных.
🔜 Лучше всего для: Систем с большим количеством записей, где данные не нужны немедленно, например, в системах журналирования.
🟡Write Back (Запись с отложенным обновлением): Данные сначала записываются в кэш, и кэш асинхронно обновляет базу данных в фоновом режиме.
Преимущества: Очень быстрые записи, уменьшает нагрузку на базу данных.
Недостатки: Риск потери данных, если кэш выйдет из строя до синхронизации с базой данных.
🔜Лучше всего для: Систем с высоким объемом записей, например, ленты в социальных сетях.
Какую стратегию кэширования выбрать?
- Если чтения происходят чаще → Read-Through / Cache-Aside
- Если записи должны быть консистентными → Write-Through
- Если нужно минимизировать ненужное кэширование → Write-Around
- Если нужны сверхбыстрые записи → Write-Back
👉 @BackendPortal | #ресурсы
Change Data Capture (CDC) — это будущее управления измерениями в области обработки данных!
Существует три способа реализации CDC, которые вы можете попробовать:
🍩Потоки изменений в Snowflake
🍩Триггеры базы данных в Postgres
🍩Логирование обновлений на уровне API
В этой статье подробно рассматривают преимущества и недостатки каждого подхода к захвату изменений данных!
📖 Читать: ссылка
👉 @BackendPortal | дать буст | #статья
Быстрый совет по Linux 🖥
Если у вас проблемы с чтением директорий в переменной $PATH
, используйте команду tr,
чтобы заменить двоеточия (":") на символы новой строки ("\n"), и тогда пути отобразятся построчно:
echo $PATH | tr ":" "\n"