Присоединяйтесь к нашему каналу и погрузитесь в мир Backend-разработки Связь: @devmangx РКН: https://clck.ru/3FobxK
SSH-туннелирование – трюк, который позволяет безопасно передавать данные через зашифрованное соединение.
Разберем основные виды
🟡Локальное перенаправление
Хочешь получить доступ к веб-ресурсу на удаленном сервере? Используй:
ssh -L 8080:localhost:80 user@server
http://localhost:8080
, а трафик пойдет через SSH к серверу.ssh -L 8080:server:80 user@bastion
localhost
на bastion
), то тогда команда будет:ssh -L 8080:localhost:80 user@bastion
ssh -R 0.0.0.0:8080:localhost:80 user@gateway
8080
и перенаправлять запросы на твой локальный компьютер.Проектирование надежных микросервисов требует выбора правильных шаблонов для обеспечения производительности, отказоустойчивости и масштабируемости.
Вот основные шаблоны, которые должен знать каждый архитектор.
⏩Шаблон "База данных на сервис"
Каждый микросервис управляет собственной базой данных, что обеспечивает слабую связанность и полное владение данными.
⏩Шаблон "Источник событий"
Сохраняет каждое изменение как событие, а не только последнее состояние. Отлично подходит для журналов аудита и отладки.
⏩Шаблон "API-шлюз"
Выступает в качестве единой точки доступа, которая направляет запросы к микросервисам, обрабатывая такие задачи, как аутентификация и ограничение частоты запросов.
⏩Шаблон "Сага"
Координирует распределенные транзакции, используя последовательность шагов и компенсирующие действия для обработки отказов.
⏩Шаблон "BFF (Backend for Frontend)"
Создает разные бэкенды для веба и мобильных приложений, улучшая производительность и настраивая обработку данных под каждого клиента.
⚡ Новые каналы с вакансиями и стажировками для джунов
В этих каналах публикуются все свежие вакансии и стажировки
🔺 ВАКАНСИИ
Горячие вакансии с привлекательными офферами для джуниор разработчиков, аналитиков, дизайнеров и QA-специалистов.
Стажировки для начинающих специалистов в IT независимо от возраста!
Свежие стажировки для junior специалистов в топовых компании России и мира
Вакансии и стажировки для junior-разработчиков на удалёнке.
Junior вакансии и стажировки в крупнейших IT-компаниях мира: NVidia, Apple, T-банк, Яндекс, Google и т. д.
Эксперименты про трудоустройство в IT, советы для быстрого поиска работы и офферы для джунов.
Язык программирования Go - отличный выбор для создания бэкэнда ваших приложений.
В этом курсе вы создадите фронтэнд React на основе бэкэнда Go.
Вы узнаете, как настроить проект, создать API, обработать логику на стороне сервера и многое другое.
⏩ Источник: смотреть
👉 @BackendPortal
Сила CI/CD:
Пайплайны непрерывной интеграции и непрерывного развертывания (CI/CD) упрощают процесс разработки, автоматизируя тестирование и развертывание, что приводит к более быстрой доставке и улучшенному качеству программного обеспечения.
🍩Начало → Разработчик делает коммит кода.
🍩Автоматизированные тесты → Проверка кода.
❌Если тесты не пройдены → исправление ошибок.
☑Если тесты пройдены → сборка приложения.
🍩Развертывание на staging → запуск интеграционных тестов.
❌Если тесты не пройдены → исправление ошибок.
☑Если пройдены → развертывание в продакшн.
🍩Финал → Приложение успешно развернуто.
👉 @BackendPortal
🇷🇺«Сталинские Соколы» объявляют первый крупнейший в России турнир «Drone-Con» в номинациях:
- Настройка WiFi
- Пилотирование FPV дронов
- Онлайн стратегия «Битва Дронов»
🕙Когда? 11-13 апреля 2025 года
Заезд участников с 10.04.2025
Приз за выход в 1/8 финала в каждой номинации – 300 000 рублей
За победу в номинации:
🥇I место – 3 000 000 рублей
🥈II место – 2 000 000 рублей
🥉III место – 1 000 000 рублей
Пройди заочный онлайн этап до 1 апреля, и получи возможность попасть на очный этап «Drone-Con»!
Подать заявку и узнать подробности – @dronecon
8 алгоритмов балансировки нагрузки, которые вы должны знать:
🍩Round Robin (Круговой метод) – запросы распределяются равномерно между серверами по очереди.
🍩Least Connections (Наименьшее количество соединений) – запрос направляется на сервер с наименьшим числом активных соединений.
🍩Weighted Round Robin (Взвешенный круговой метод) – серверам присваиваются веса, и запросы распределяются с учетом этих весов.
🍩Weighted Least Connections (Взвешенный метод наименьших соединений) – учитывается как число соединений, так и вес сервера.
🍩IP Hash (Хэширование по IP) – запрос направляется на сервер в зависимости от хэша IP-адреса клиента.
🍩Least Response Time (Наименьшее время отклика) – запрос идет на сервер с наименьшим временем ответа.
🍩Random (Случайный выбор) – сервер выбирается случайным образом.
🍩Least Bandwidth (Наименьшая пропускная способность) – запрос идет на сервер с наименьшей текущей загрузкой сети.
👉 @BackendPortal
Нашел для вас мощный инструмент — Apidog
Бесплатная платформа для полного цикла разработки API, объединяющая дизайн, отладку, тестирование, документацию и мокирование в одном месте.
Визуальный редактор для проектирования и отладки API с поддержкой JSON Schema. Автоматизация тестирования и генерация документации — легко
Интеграция на всех этапах разработки API, обеспечивая синхронизацию спецификаций и изменений. 👍
👉 @BackendPortal
Файл содержит вопросы и ответы для собеседований по Git и GitHub.
В нем рассматриваются основные концепции, такие как контроль версий, создание и управление репозиториями, работа с ветками, команды для коммитов, пушей, пулов и мерджей, а также различия между Git и SVN. 📰
⚡Также затрагиваются вопросы управления доступом, разрешения конфликтов и использования стэша
👉 @BackendPortal
Безсерверные вычисления имеют множество преимуществ, таких как отсутствие необходимости вручную управлять или масштабировать серверы.
И в этом подробном руководстве Ифеани обучит вас созданию безсерверного CRUD REST API.
Вы будете использовать Serverless Framework, Node.js и GitHub Actions.
⏩Держи гайд: ссылка
👉 @BackendPortal
Принёс вам удобную шпаргалку по Python 😍
На quickref.me/python всё чётко и по делу — команды, примеры, быстрые подсказки. Никакой воды, только полезный контент.
Учишь Python? Сохраняй, пригодится.
👉 @BackendPortal
Kafka vs Bufstream — В чем разница?
Kafka — это распределенная система обмена сообщениями в модели pub-sub (издатель-подписчик), позволяющая приложениям публиковать и подписываться на потоки данных в реальном времени.
Благодаря высокой пропускной способности, масштабируемости, отказоустойчивости, долговечности и развитой экосистеме, Kafka стала популярным выбором для задач, требующих обработки данных в реальном времени.
Однако Kafka — это сложная и дорогостоящая система.
Bufstream — это полноценная замена Kafka, которая в 8 раз дешевле, гораздо проще в масштабировании и ориентирована на облачную инфраструктуру.
Как и Kafka, Bufstream является распределенной системой pub-sub.
Но в отличие от Kafka, которая требует управления состоянием брокеров, использования реестров схем, выделенных команд администраторов и значительных расходов, Bufstream реализует другой подход, который дает ряд преимуществ:
⏩ Вместо брокеров с хранением состояния и локальных дисков Bufstream использует облачное хранилище объектов, такое как S3 и Apache Iceberg. Это снижает операционные расходы на 800%.
⏩ Встроенная валидация схем на уровне брокера предотвращает попадание некорректных данных в систему.
⏩ gRPC используется для более эффективной сериализации и транспортировки данных.
🟡 Когда Bufstream лучше:
Если критичны низкие затраты, простота управления, масштабируемость и соответствие требованиям безопасности, Bufstream — отличный выбор.
🟡 Когда Kafka лучше:
Если ключевое требование — ультранизкая задержка, и вы готовы платить больше за сложность и операционные расходы, тогда Kafka подойдет лучше.
Ключевые особенности и преимущества Bufstream:
☑ Протестирован Jepsen — единственная облачная реализация Kafka, прошедшая независимое тестирование Jepsen (золотой стандарт для распределенных систем).
☑ Архитектура с приоритетом конфиденциальности — в отличие от Warpstream, Bufstream полностью размещается в вашем облаке без общего метаданных.
☑ Значительное сокращение затрат — снижает операционные расходы и инфраструктурные издержки.
☑ Встроенная валидация схем — предотвращает попадание некорректных данных в систему.
☑ Поддержка Protobuf + gRPC — увеличивает эффективность сериализации и скорость передачи данных.
☑ Не требует внешнего реестра схем — уменьшает сложность системы.
👉 @BackendPortal
⚡️ Айтишник из «VISION» скупил курсы айти школ и выложил гигабайты материалов к себе
Каждый найдет что-то по душе:
1202 ГБ — Python
1811 ГБ — Frontend
1100 ГБ — C / C++ / C#
804 ГБ — Java
411 ГБ — SQL & БД
309 ГБ — DevOps
998 ГБ — ИБ & Хакинг
773 ГБ — Kotlin / Swift
189 ГБ — PHP
201 ГБ — GoLang
170 ГБ — Rust
167 ГБ — QA / Тестирование
310 ГБ — 1C + Лицензии
495 ГБ — Машинное обучение
704 ГБ — Аналитика Данных
991 ГБ — Дизайн
Материалы в закрепе, постоянно пополняются👆🏻
Карта ключевых команд Kubernetes
Она содержит команды kubectl, сгруппированные по категориям:
🟡Управление кластером (Cluster Management)
🟡Управление подами (Pod Management)
🟡Мониторинг ресурсов (Resource Monitoring)
🟡Управление сервисами (Service Management)
🟡Конфигурация и секреты (Configuration and Secrets)
🟡Управление деплойментами (Deployment Management)
🟡Управление пространствами имен (Namespace Management)
👉 @BackendPortal
Как создаются программы: Контроль версий Git, GitHub и Pull Requests
В этом видеоуроке автор объяснит, как создавать программы с нуля: что нужно делать и в какой последовательности. Также будет рассмотрен процесс работы с Git, GitHub и Pull Requests, а также их особенности.
⏩ Источник: смотреть
👉 @BackendPortal | #видео
Все надоело и пропал интерес, чувствуешь себя амебой и хочется только залипать в телефоне. Бывает?
Психолог взрослого человека - канал для айтишников, у которых периодически опускаются руки и отключается мозг, ибо переработки и постоянная тревожность не приводят к другим исходам.
✔️ Как научиться отвлекаться от работы и отдыхать?
✔️ Как совместить кучу рабочих задач и время с семьей?
✔️ Как справиться с прокрастинацией?
✔️ Как не растерять запал, даже если кажется, что ничего не выходит?
Подписывайтесь на канал @vadimpetrov_psy и научитесь работать без упахивания, выгорания и ущерба для личной жизни!
👨🏻💻 Псс. Заходите в закреп канала - там много полезного, и даже бесплатный мини-курс.
Что такое HTTP Downgrading, зачем его использовать и как это работает?
HTTP/2 является стандартом для большинства веб-приложений в наши дни, однако не редкость, когда серверы на бэкенде все еще используют HTTP/1.1, что может приводить к несоответствиям при разборе запросов между фронтендом и бэкендом.
И вот здесь и появляется HTTP downgrading! Но что это такое?
HTTP downgrading — это процесс принуждения запроса обрабатываться через HTTP/1.1 вместо HTTP/2.
Это позволяет манипулировать тем, как серверы на фронтенде и бэкенде интерпретируют запросы, а также использовать уязвимости, уникальные для разбора HTTP/1.1, такие как атаки Content-Length Transfer-Encoding (CL.TE).
Как понизить HTTP/2 до HTTP/1.1 с помощью Burp Suite 🤔
1️⃣ Откройте Burp Suite и перейдите в Proxy → HTTP History
2️⃣ Найдите запрос, который в данный момент использует HTTP/2.
3️⃣ Отправьте запрос в Repeater
4️⃣ В вкладке Repeater откройте панель "Inspector" → Request Attributes → Protocol
5️⃣ Измените версию HTTP на HTTP/1.1
6️⃣ Нажмите "Send" в Repeater.
Если все прошло успешно, вы получите валидный ответ, подтверждающий, что сервер принимает HTTP/1.1.
Вот и все! Вы только что понизили протокол HTTP и подтвердили, что сервер на фронтенде принимает HTTP/1.1!
👉 @BackendPortal
Что такое предметно-ориентированное проектирование (DDD) и как оно работает?
Программное обеспечение, которое органично интегрируется с бизнес-доменами, приносит организации значительные преимущества.
Оно может оптимизировать операции, улучшать пользовательские функции и предоставлять заинтересованным сторонам актуальную аналитику для быстрого и продуманного принятия решений.
Это подход к разработке ПО, который обеспечивает согласованность между бизнес-экспертами и разработчиками, связывая функциональность программного обеспечения с потребностями бизнеса. 🔥
Основные концепции DDD: 👇
⏩Ограниченные контексты (Bounded Contexts)
Это логическая граница, в пределах которой термины остаются последовательными. Универсальный язык (Ubiquitous Language) служит мостом между технической и бизнес-коммуникацией в этом контексте, позволяя всем участникам говорить на одном языке — это одно из самых мощных преимуществ DDD.
⏩Сущности и объекты-значения (Entities & Value Objects)
Оба играют ключевую роль в точном моделировании бизнес-домена:
🟡Сущности (Entities) — это объекты с уникальной идентичностью, которая сохраняется во времени и в разных состояниях.
🟡Объекты-значения (Value Objects) описывают характеристики, но не имеют концептуальной идентичности. Они неизменяемы (в отличие от сущностей, которые могут менять свое состояние).
⏩Агрегаты (Aggregates)
Это группы взаимосвязанных объектов (сущностей и объектов-значений), которые рассматриваются как единое целое. Они обеспечивают механизм управления и поддержания согласованности внутри набора связанных объектов.
Преимущества DDD:
☑ Согласованность: DDD соединяет бизнес-домены и программное обеспечение, обеспечивая их тесную интеграцию.
☑ Гибкость: Четкие модели домена позволяют легче вносить изменения в соответствии с развивающимися бизнес-требованиями.
☑ Улучшенное взаимодействие: Универсальный язык способствует лучшему пониманию между разработчиками и бизнес-экспертами.
Когда применять DDD:
— Сложные системы: DDD особенно эффективен в сложных доменах с детализированными бизнес-правилами.
— Крупные команды: Обеспечивает единое понимание домена для междисциплинарных команд.
— Быстро развивающиеся бизнесы: Позволяет гибко адаптировать программное обеспечение к изменениям в бизнесе.
Недостатки DDD:
❌ Затраты на внедрение: Проектирование правильных контекстов, сущностей и объектов-значений требует времени.
❌ Сложность: Для простых доменов может оказаться избыточным, требует высокой дисциплины и значительного обучения.
❌ Риск рассинхронизации: Без регулярных консультаций с бизнес-экспертами модель может отдалиться от реальных потребностей бизнеса.
Brain fog - это настоящая эпидемия нашего времени, но есть вещество, которое способно пробудить даже мертвеца..
Alpha GPC + CDP Choline = увеличение скорости и объема электрических импульсов в синапсах головного мозга🧠
Добавка повышает концентрацию внимания и скорость реакции, а так же действует как очень мягкий антидепрессант 🧘♂️
Не оказывает сильный стимулирующий эффект и не нарушает качество сна 💤
Ты не можешь сделать 36 часов в сутках, но ты можешь увеличить скорость своего мышления ⚡️
👇👇👇
ЗАКАЗАТЬ НА WILDBERRIES
Что такое Cross-Origin Resource Sharing (CORS)?
Браузеры используют CORS, чтобы предотвратить загрузку данных с других доменов. Когда браузер делает запрос, он добавляет в заголовок origin (источник запроса). Если запрос идёт на сервер того же источника, браузер его разрешает. Если нет — блокирует.
Как решить проблемы с CORS?
Настроить CORS можно на сервере. Сервер должен добавлять заголовок Access-Control-Allow-Origin в ответ. Этот заголовок должен совпадать с origin из запроса, чтобы браузер разрешил загрузку.
Есть два способа исправить ошибки CORS:
🍩 Настроить сервер для поддержки CORS
Можно разрешить доступ ко всем доменам с Access-Control-Allow-Origin: *
, но это небезопасно. Лучше разрешить запросы только с определённого домена, например:
Access-Control-Allow-Origin: https://somedomain.com
6 ключевых видов тестирования API
⏩ Тестирование рабочих процессов – проверяет, корректно ли работают последовательности API-запросов (например, процесс покупки в интернет-магазине).
⏩ Тестирование производительности – оценивает скорость, стабильность и отзывчивость API под разной нагрузкой.
⏩ Тестирование безопасности – выявляет уязвимости, защищая API от атак и утечек данных (используются penetration testing, fuzz testing).
⏩ Тестирование на основе данных – проверяет API на разных входных данных, чтобы убедиться в корректности работы.
⏩ Тестирование конечных точек – проверяет, правильно ли API-эндпоинты возвращают ответы, коды состояния и ошибки.
⏩ Контрактное тестирование – гарантирует, что взаимодействие между API и его потребителями соответствует установленным соглашениям и не ломается при обновлениях.
Эти методы помогают создать надежное, безопасное и эффективное API!
👉 @BackendPortal
Понимание заголовков REST
Протокол передачи гипертекста (HTTP) включает в себя заголовки, которые передают дополнительную информацию во время HTTP-запросов и ответов.
Сервер и браузер используют HTTP-заголовки для обмена метаданными о документе и данных, передаваемых веб-сервером запрашиваемого сайта.
Различные данные в REST-заголовках могут помочь в поиске и устранении проблем по мере их возникновения. Так как они содержат метаданные, относящиеся к API-запросу и ответу, HTTP-заголовки играют важную роль в этих процессах. Заголовки включают информацию о:
⏩Теле запроса и ответа
⏩Авторизации запроса
⏩Кэшировании ответа
⏩Cookies в ответе
Кроме перечисленных категорий, HTTP-заголовки содержат информацию о различных типах HTTP-соединений, прокси-серверах и других аспектах.
Большинство этих заголовков предназначены для поддержания соединений между клиентами, серверами и прокси, поэтому их тестирование часто не требуется.
В общем случае существуют заголовки запроса и ответа. Мы устанавливаем заголовок запроса при отправке запроса к API и получаем заголовки в ответе.
Общая структура заголовка выглядит как Имя: значение, но может включать несколько значений, разделенных запятыми.
Некоторые распространенные заголовки:
🟡 Authorization – содержит информацию об аутентификации клиента для запрашиваемого ресурса.
🟡 Accept-Charset – сообщает серверу, какие наборы символов поддерживает клиент. Этот заголовок передается вместе с запросом.
🟡 Content-Type – указывает тип медиа-данных в ответе (например, text/html или application/json), что помогает клиенту обработать содержимое ответа.
🟡 Cache-Control – определяет правила кэширования для ответа. Клиент может хранить и повторно использовать кэшированный ответ в течение указанного времени.
Таким образом, заголовки HTTP играют ключевую роль в обеспечении взаимодействия между клиентом и сервером, влияя на авторизацию, обработку данных и кэширование.
👉 @BackendPortal
Нашёл удобный способ анализировать сетевой трафик в Kubernetes — Kubeshark
Открываешь сайт или выполняешь kubectl krew install kubeshark
, и сразу можешь следить за запросами в реальном времени
Полезно для отладки, мониторинга и поиска багов. Работает прямо в кластере и показывает всю сетевую активность между подами.
Удобно для DevOps и тестирования ❌
👉 @BackendPortal
Grafana — это платформа для визуализации и мониторинга данных из разных источников с гибкими дашбордами и оповещениями.
👉 @BackendPortal
Если вы пользуетесь Pandas — ловите шпаргалку по Data Wrangling.
В хорошем качестве тут
👉 @BackendPortal
Хотите прокачать свои навыки в Backend-разработке?
- Самые свежие новости о серверных технологиях, базах данных и облачных решениях.
- Полезные статьи и советы для создания масштабируемых и надежных систем.
- Эксклюзивные материалы, которые помогут вам стать экспертом в Backend.
Не тратьте время на поиск — всё, что нужно для роста в Backend, уже собрано в Цифровая кухня. Подпишитесь сейчас и начните получать ценную информацию каждый день!
👉 Подписаться
Примеры Dockerfile для frontend и backend приложений
🟡Frontend Dockerfile: Использует node:18-alpine, устанавливает зависимости и запускает приложение.
🟡Backend Dockerfile: Использует python:3.11-slim-buster, устанавливает зависимости из requirements.txt и запускает app.py
.
🟡Команды для сборки образов: docker build -t frontend . и docker build -t backend .
🟡Команды для запуска контейнеров: docker run -d --name frontend -p 8080:3000 frontend и docker run -d --name backend -p 8081:5000 backend.
Это базовый пример развертывания веб-приложения с фронтендом на Node.js и бэкендом на Python в Docker.
👉 @BackendPortal
Если ещё не видел Learn Anything, то зря – штука реально полезная
Это интерактивный сервис, который помогает найти лучшие ресурсы по любой теме. Не нужно капаться в тысячах статей – тут всё красиво разложено по мапам: хочешь вкатиться в нейросети, программирование или философию? Заходишь, выбираешь тему – и перед тобой топовые книги, статьи, курсы и инструменты. 🔥
Работает как коллективный разум: комьюнити дополняет карты, улучшает их, добавляет годные ссылки.
⏩Сайт: learn-anything.xyz
⏩GitHub: github.com/learn-anything
👉 @BackendPortal
Нашёл на GitHub интересный репозиторий — awesome-console-services, где собран список полезных консольных сервисов, доступных через HTTP, HTTPS и другие протоколы!
В этом репозитории можно найти утилиты для различных задач, таких как:
🟡 Узнать IP-адрес и геолокацию
🟡 Сократить URL
🟡 Отправить файл через консоль
🟡 Создать QR-код
🟡 Получить погоду, новости, курсы валют
🟡 Проверить онлайн-статус Twitch-канала
🟡 Сделать Whois-запрос и многое другое!
Попробуй сам: тык
👉 @BackendPortal
Топовый репо — DevOps-Roadmap. Он под завязку набит материалами по DevOps и заслуженно собрал уже тысячи звезд на GitHub.
Внутри — полный гайд по DevOps: CI/CD, мониторинг, контейнеризация, безопасность, облака, базы данных и многое другое. Если хочешь разобраться в теме — это мастхэв!
Сохраняйте годноту. Это база 🕺
👉 @BackendPortal