По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Когда мы, разговаривая по IP телефону, слышим голос собеседника в трубке, или, используя систему видеоконференцсвязи, общаемся со своими коллегами и родственниками, то обмениваемся непрерывным потоком данных. При передаче потоковых данных, таких как голос и видео через пакетную сеть, очень важно использовать такие механизмы, которые решали бы следующие задачи: Устранение эффекта потери пакетов Восстановление порядка и контроль поступления пакетов Сглаживание эффекта задержки (джиттера) Именно для этих целей был разработан RTP (Real-time Transport Protocol) - протокол передачи в реальном времени, о котором пойдет речь в сегодняшней статье. Протокол разрабатывался в IETF группой Audio-Video Transport Working Group и описывается в рекомендации RFC 3550. Как правило, RTP работает поверх протокола UDP (User Datagram Protocol), так как при передаче мультимедийных данных очень важно обеспечить их своевременную доставку. RTP включает возможность определения типа полезной нагрузки и назначения последовательного номера пакета в потоке, а также применение временных меток. На передающей стороне каждый пакет помечается временной меткой, принимающая сторона получает ее и определяет суммарную задержку, после чего вычисляется разница в суммарных задержках и определяется джиттер. Таким образом, появляется возможность установить постоянную задержку выдачи пакетов и тем самым снизить влияние джиттера. Ещё одна функция RTP связана с возможными потерями пакетов при прохождении по IP сети, что выражается в появлении кратковременных пауз в разговоре. Внезапная тишина в телефонной трубке, как правило, очень негативно действует на слушателя, поэтому возможностями протокола RTP такие периоды тишины заполняются, так называемым,“комфортным шумом” RTP работает в связке с еще одним протоколом IETF, а именно RTCP (Real - time Transport Control Protocol), который описывается в RFC 3550. RTCP предназначен для сбора статистической информации, определения качества обслуживания QoS (Quality of Service), а также для синхронизации между медиа потоками RTP-сессии. Основная функция RTCP – установление обратной связи с приложением для отчета о качестве получаемой информации. Участники RTCP сессии обмениваются сведениями о числе полученных и утраченных пакетов, значении джиттера, задержке и т.д. На основе анализа этой информации принимается решение об изменении параметров передачи, например, для уменьшения коэффициента сжатия информации с целью улучшения качества ее передачи. Для выполнения этих функций RTCP передает специальные сообщения определенных типов: SR - Sender Report - отчёт источника со статистической информацией о RTP сессии RR - Receiver Report - отчёт получателя со статистической информацией о RTP сессии SDES - содержит описание параметров источника, включая cname (имя пользователя) BYE – Инициирует завершение участия в группе APP - Описание функций приложения RTP является протоколом однонаправленного действия, поэтому для организации двусторонней связи необходимо две RTP сессии, по одной с каждой стороны. RTP-сессия определяется IP адресами участников, а также парой незарезервированных UDP портов из диапазона 16384 - 32767. Кроме того, для организации обратной связи с приложением необходимо также установить двустороннюю RTCP сессию. Для RTCP сессии занимаются порты с номером на единицу большим чем RTP. Так например, если для RTP выбран 19554 порт, то RTCP сессия займет 19555 порт. Наглядно формирование RTP/RTCP сессии представлено на рисунке ниже. Стоит также отметить, что сам протокол RTP не имеет механизмов для самостоятельного установления сессии, эта задачу выполняют протоколы сигнализации, такие как SIP,H.323,SCCP , которые мы подробно рассматривали в предыдущих статьях.
img
Не секрет, что на сегодняшний день Kubernetes стал одной из лучших оркестраторов контейнерных платформ. Более 80% организаций сегодня используют Kubernetes в тех или иных целях. Он просто автоматизирует конфигурирование и управление контейнерами. Но помимо простоты, безопасность также является одной из наиболее важных частей любого контейнерного приложения. Вы должны знать, как обеспечить надежную безопасность приложений, работающих в кластере Kubernetes. Вопросы безопасности в последние несколько лет экспоненциально возрастают, поэтому каждая организация сосредотачивает внимание на этой области. Если вы знакомы с Kubernetes, то вы знаете, что, по умолчанию, Kubernetes назначает IP-адрес каждому порту в кластере и обеспечивает безопасность на основе IP. Но он предоставляет только основные меры безопасности. Когда речь заходит о расширенном мониторинге безопасности и обеспечении соответствия нормативным требованиям, к сожалению, Kubernetes не обеспечивает нужного уровня безопасности. Но, к счастью, есть сторонние сканеры Kubernetes с открытым исходным кодом, которые могут помочь вам защитить ваши кластеры Kubernetes. Вот несколько преимуществ использования сканеров Kubernetes: Определение неправильных настроек и уязвимостей в кластере, контейнерах, модулях Предоставляет решения для исправления неправильных настроек и устранения уязвимостей Дает представление о состоянии кластера в реальном времени. Дает больше уверенности команде DevOps в необходимости разработки и развертывания приложений в кластере Kubernetes Помогает избежать сбоя кластера, выявляя проблему на ранней стадии. Рассмотрим следующие инструменты, которые помогут найти уязвимость и неправильную конфигурацию системы безопасности для обеспечения безопасности контейнерных приложений. 1. Kube Hunter Kube Hunter - это средство поиска уязвимостей от Aqua Security. Этот инструмент очень полезен для повышения уровня безопасности кластеров Kubernetes. Этот инструмент для выявления уязвимостей предлагает несколько стандартных вариантов сканирования, таких как удаленный, чересстрочный, сетевой. Он содержит список активных и пассивных тестов, которые могут идентифицировать большинство уязвимостей, присутствующих в кластере Kubernetes. Существует несколько различных вариантов использования этого инструмента. Можно загрузить архив, извлечь его или использовать pip для непосредственной установки Kube Hunter на машину с сетевым доступом к кластеру Kubernetes. После установки можно начать сканирование кластера на наличие уязвимостей. Второй способ использования Kube Hunter - в качестве контейнера Docker. Вы можете непосредственно установить Kube Hunter на машину в кластере, а затем проверить локальные сети для сканирования кластеров. И третий способ - запустить Kube Hunter как под внутри Kubernetes кластера. Это помогает находить уязвимости в любых модулях приложений. 2. KubeBench Kube Bench является одним из инструментов обеспечения безопасности с открытым исходным кодом, которые проверяют соответствие ваших приложений эталонному стандарту безопасности CIS (Center for Internet Security). Он поддерживает тесты для нескольких версий Kubernetes. Кроме того, он также указывает на ошибки и помогает в их исправлении. Этот инструмент также проверяет настройки авторизации и аутентификации пользователей, а также уровень шифрования данных. Это гарантирует, что приложение соответствует требованиям CIS. Возможности KubeBench: Написано как приложение Go Тест для мастеров и узлов Kubernetes Доступно как контейнер Тесты определены в YAML, что упрощает расширение и обновление Поддержка выходных данных формата JSON 3. Checkov Checkov - это средство безопасности, используемое для предотвращения неправильных настроек облака во время сборки Kubernetes, Terraform, Cloudformation, Serverless фреймворков и других сервисов типа Infrastructure-as-code-language. Он написан на языке Python и направлен на повышение эффективности внедрения безопасности и соответствия передовым практикам. Можно выполнить сканирование с помощью Checkov для анализа сервисов типа Infrastructure-as-code-language Функции Checkov: Открытый и простой в использовании Более 500 встроенных политики безопасности Передовые практики обеспечения соответствия для AWS, Azure и Google Cloud Поддержка нескольких форматов вывода - CLI, JUnit XML, JSON Интеграция сканирований в конвейеры ci/cd Выполняет сканирование входной папки, содержащей файлы Terraform & Cloudformation 4. MKIT MKIT означает управляемый инструмент проверки Kubernetes. Этот инструмент помогает быстро выявлять ключевые угрозы безопасности кластеров Kubernetes и их ресурсов. Он имеет быстрые и простые методы для оценки неправильных настроек в кластере и рабочих нагрузках. Инструмент поставляется с интерфейсом, который по умолчанию работает на http://localhost:8000. Инструмент дает представление о неуспешных и успешных проверках. В разделе «Затронутые ресурсы» вы получите подробные сведения о затронутых и не затронутых ресурсах. Функции MKIT: Создана с использованием всех библиотек и инструментов с открытым исходным кодом Простота установки и использования Поддержка нескольких поставщиков Kubernetes - AKS, EKS и GKE Хранение конфиденциальных данных внутри контейнера Предоставляет веб-интерфейс 5. Kubei Kubei используется для оценки непосредственных рисков в кластере Kubernetes. Большая часть Kubei написана на языке программирования Go. Он охватывает все эталонные тесты CIS для Docker. Он сканирует все образы, используемые кластером Kubernetes, прикладные и системные модули и т.д. Вы получаете несколько вариантов настройки сканирования с точки зрения уровня уязвимости, скорости сканирования, области сканирования и т.д. С помощью графического интерфейса можно просмотреть все уязвимости, обнаруженные в кластере, и способы их устранения. Основные характеристики Kubei: Сканер уязвимостей среды выполнения Kubernetes с открытым исходным кодом Проверяет общедоступные образы, размещенные в реестре Предоставляет состояние работоспособности кластера в режиме реального времени Веб-интерфейс пользователя для визуализации сканирований Предоставляет несколько пользовательских параметров для сканирования 6. Kube Scan Kube Scan - это сканер контейнера, который сам поставляется как контейнер. Вы устанавливаете его в новый кластер, после чего он сканирует рабочие нагрузки, выполняющиеся в данный момент в кластере, и показывает оценку риска и сведения о рисках в удобном веб-интерфейсе. Риск оценивается от 0 до 10, 0 означает отсутствие риска, а 10 - высокий риск. Формула и правила оценки, используемые Kube scan, основаны на KCCSS, общей системе оценки конфигурации Kubernetes, которая является фреймворком с открытым исходным кодом. Он аналогичен CVSS (Common Vulnerability Scoring System). Он использует более 30 параметров настройки безопасности, таких как политики, возможности Kubernetes, уровни привилегий и создает базовый уровень риска для оценки риска. Оценка риска также основана на простоте эксплуатации или уровне воздействия и масштабах эксплуатации. Функции KubeScan: Инструмент оценки рисков с открытым исходным кодом Веб-интерфейс пользователя с оценкой рисков и подробностями оценки рисков Выполняется как контейнер в кластере. Регулярные сканирование кластера каждые 24 часа 7. Kubeaudit Kubeaudit, как предполагает название, является инструментом кластерного аудита Kubernetes с открытым исходным кодом. Он находит неправильные настройки безопасности в ресурсах Kubernetes и подсказывает, как их устранить. Он написан на языке Go, что позволяет использовать его как пакет Go или средство командной строки. Его можно установить на компьютер с помощью команды brew. Он предлагает различные решения вроде запуск приложений от имени пользователя без рут прав, предоставление доступа только для чтения к корневой файловой системе, избегание предоставления дополнительных привилегий приложениям в кластере для предотвращения общих проблем безопасности. Он содержит обширный список аудиторов, используемых для проверки проблем безопасности кластера Kubernetes, таких как SecurityContext модулей. Особенности Kubeaudit: Инструмент аудита Kubernetes с открытым исходным кодом Предоставляет три различных режима - манифест, локальный, кластер, для аудита кластера Дает результат аудита на трех уровнях серьезности - ошибка, предупреждение, информация Использует несколько встроенных аудиторов для аудита контейнеров, модулей, пространств имен 8. Kubesec Kubesec - это инструмент анализа рисков безопасности с открытым исходным кодом для ресурсов Kubernetes. Он проверяет конфигурацию и файлы манифестов, используемые для развертывания и операций кластера Kubernetes. Вы можете установить его в свою систему с помощью образа контейнера, двоичного пакета, контроллера допуска в Kubernetes или плагина kubectl. Особенности Kubesec: Инструмент анализа рисков с открытым исходным кодом Он поставляется с объединенным HTTP-сервером, который по умолчанию работает в фоновом режиме и слушает порт 8080. Может запускаться как Kubesec-as-a-Service через HTTPS по адресу v2.kubesec.io/scan Может сканировать несколько документов YAML в одном входном файле. Заключение Указанные средства предназначены для обеспечения безопасности кластера Kubernetes и его ресурсов и затрудняют взлом хакерами приложений, работающих внутри кластера. Сканеры помогут более уверенно развертывать приложения на кластере.
img
Микросервисы – это шаблон сервис-ориентированной архитектуры, в котором приложения создаются в виде наборов небольших и независимых сервисных единиц. Такой подход к проектированию сводится к разделению приложения на однофункциональные модули с четко прописанными интерфейсами. Небольшие команды, управляющие всем жизненным циклом сервиса могут независимо развертывать и обслуживать микросервисы. Термин «микро» относится к размеру микросервиса – он должен быть удобным в управлении одной командой разработчиков (5-10 специалистов). В данной методологии большие приложения делятся на крошечные независимые блоки. Что такое монолитная архитектура? Если говорить простым языком, то монолитная архитектура – это как бы большой контейнер, в котором все компоненты приложения соединяются в единый пакет. В качестве примера монолитной архитектуры давайте рассмотрим сайт для электронной торговли. Например, онлайн-магазин. В любом таком приложении есть ряд типовых опций: поиск, рейтинг и отзывы, а также оплаты. Данные опции доступны клиентам через браузер или приложение. Когда разработчик сайта онлайн-магазина развертывает приложение, это считается одной монолитной (неделимой) единицей. Код различных опций (поиска, отзывов, рейтинга и оплаты) находится на одном и том же сервере. Чтобы масштабировать приложение, вам нужно запустить несколько экземпляров (серверов) этих приложений. Что такое микросервисная архитектура? Микросервисной архитектурой называется методика разработки архитектуры, позволяющая создавать приложения в виде набора небольших автономных сервисов для работы с конкретными предметными областями. Такой вариант структурированной архитектуры позволяет организовать приложения в множество слабосвязанных сервисов. Микросервисная архитектура содержит мелкомодульные сервисы и упрощенные протоколы. Давайте рассмотрим пример приложения для онлайн-торговли с микросервисной архитектурой. В данном примере каждый микросервис отвечает за одну бизнес-возможность. У «Поиска», «Оплаты», «Рейтинга и Отзывов» есть свои экземпляры (сервер), которые взаимодействуют между собой. В монолитной архитектуре все компоненты сливаются в одну модель, тогда как в микросервисной архитектуре они распределяются по отдельным модулям (микросервисам), которые взаимодействуют между собой (см. пример выше). Коммуникация между микросервисами – это взаимодействие без сохранения состояния. Каждая пара запросов и ответов независима, поэтому микросервисы легко взаимодействуют друг с другом. Микросервисная архитектура использует федеративные данные. Каждый микросервис имеет свой отдельный массив данных. Микросервисы и монолитная архитектура: сравнение Микросервисы Монолитная архитектура Каждый блок данных создается для решения определенной задачи; его размер должен быть предельно малым Единая база кода для всех бизнес-целей Запуск сервиса происходит сравнительно быстро На запуск сервиса требуется больше времени Локализовать ошибки довольно просто. Даже если один сервис сломается, другой – продолжит свою работу Локализовать ошибки сложно. Если какая-то определенная функция не перестает работать, то ломается вся система. Чтобы решить проблему, придется заново собирать, тестировать и развертывать приложение. Все микросервисы должны быть слабо связанными, чтобы изменения в одном модуле никак не влияли на другой. Монолитная архитектура тесно связана. Изменения в одному модуле кода влияет на другой Компании могут выделять больше ресурсов на самые рентабельные сервисы Сервисы не изолированы; выделение ресурсов на отдельные сервисы невозможно Можно выделить больше аппаратных ресурсов на самые популярные сервисы. В примере выше посетители чаще обращаются к каталогу товаров и поиску, а не к разделу оплат. Таким образом, будет разумнее выделить дополнительные ресурсы на микросервисы каталога товаров и поиска Масштабирование приложения – задача сложная и экономически не выгодная Микросервисы всегда остаются постоянными и доступными Большая нагрузка на инструменты для разработки, поскольку процесс необходимо запускать с нуля Федеративный доступ к данным, благодаря чему под отдельные микросервисы можно подбирать наиболее подходящую модель данных Данные централизованы Небольшие целевые команды. Параллельная и ускоренная разработка Большая команда; требуется серьезная работа по управлению командой Изменения в модели данных одного микросервиса никак не сказывается на других микросервисах Изменения в модели данных влияют на всю базу данных Четко прописанный интерфейс позволяет микросервисам эффективно взаимодействовать между собой Не предусмотрено Микросервисы делают акцент на продуктах (модулях), а не проектах Сосредоточены на проекте в целом Отсутствие перекрестных зависимостей между базами кода. Для разных микросервисов можно использовать разные технологии Одна функция или программа зависит от другой Сложности в работе с микросервисами Микросервисы полагаются друг на друга, поэтому необходимо выстроить коммуникацию между ними. В микросервисах создается больше модулей, чем в монолитных системах. Эти модули пишутся на разных языках, и их необходимо поддерживать. Микросервисы – это распределенная система, так что, по сути, мы имеем дело со сложной системой. В разных сервисах используются свои механизмы; для неструктурированных данных требуется больший объем памяти. Для предотвращения каскадных сбоев необходимо эффективное управление и слаженная командная работа. Трудно воспроизвести ошибку, если она пропадает в одной версии и вновь появляется в другой. Независимое развертывание и микросервисы – вещи слабо совместимые. Микросервисная архитектура требует большего количества операций. Сложно управлять приложением, когда в систему добавляются новые сервисы. Для поддержки всевозможных распределенных сервисов требуется большая команда опытных специалистов. Микросервисы считаются дорогостоящими решениями, поскольку для разных задач создаются и поддерживаются разные серверные пространства. Сервис-ориентированная архитектура (СОА) или микросервисы СОА-сервисы (SOA - Service-oriented architecture) поддерживаются через реестр, который считается перечнем файлов каталога. Приложения должны найти сервис в реестре и вызвать его. Иначе говоря, СОА похож оркестр: каждый музыкант играет на своем инструменте, а всеми артистами управляет дирижер. Микросервисы – это разновидность СОА-стиля. Приложения создаются в виде набора небольших сервисов, а не цельной программы. Микросервисы похожи на труппу артистов: каждый танцор знает свою программу и не зависит от других. Даже если кто-то забудет какое-то движение, вся труппа не собьется с ритма. Теперь давайте поговорим о различиях между СОА и микросервисах. Параметр СОА Микросервисы Тип проектирования В СОА компоненты приложения открыты для внешнего мира; они доступны в виде сервисов Микросервисы – это часть СОА. Такая архитектура считается реализацией СОА Зависимость Подразделения – зависимы Они не зависят друг от друга Размер приложения Размер приложения больше, чем у обычных программ Размер приложения всегда небольшой Стек технологий Стек технологий ниже, чем у микросервисов Стек технологий очень большой Сущность приложения Монолитная Полностековая Независимость и ориентированность СОА-приложения создаются для выполнения множества бизнес-задач Создаются для выполнения одной бизнес-задачи Развертывание Процесс развертывания растянут по времени Несложное развертывание, на которое тратится меньше времени Рентабельность Более рентабельно Менее рентабельно Масштабируемость Меньше, чем у микросервисов Высокая масштабируемость Бизнес-логика Компоненты бизнес-логики хранятся внутри одного сервисного домена. Простые проводные протоколы (HTTP с XML JSON). API управляется с помощью SDK/клиентов Бизнес-логика распределена между разными корпоративными доменами Микросервисные инструменты Wiremock – тестирование микросервисов WireMock – это гибкая библиотека для создания заглушек и сервисов-имитаций. В ней можно настроить ответ, который HTTP API вернет при получении определенного запроса. Также может использоваться для тестирования микросервисов. Docker Docker – это проект с открытым кодом для создания, развертывания и запуска приложений с помощью контейнеров. Использование такого рода контейнеров позволяет разработчикам запускать приложение в виде одного пакета. Кроме того, в одном пакете могут поставляться библиотеки и другие зависимости. Hystrix Hystrix – это отказоустойчивая Java-библиотека. Данный инструмент предназначен для разделения точек доступа к удаленным сервисам, системам и сторонним библиотекам в распределенной среде (микросервисах). Библиотека улучшает всю систему в целом, изолируя неисправные сервисы и предотвращая каскадный эффект от сбоев. Лучшие примеры использования микросервисной архитектуры Отдельное хранение данных для каждого микросервиса. Поддержание кода на едином уровне зрелости Отдельная сборка для каждого микросервиса. Заключение Микросервисы – это СОА-шаблон, в котором приложения создаются как набор малых и независимых серверных единиц. Микросервисная архитектура относится к стилям разработки архитектуры, позволяющим создавать приложение в виде небольших и автономных сервисов для определенных предметных областей. Монолитная архитектура похожа на большой контейнер, в котором все компоненты приложения собраны в один пакет. Каждый блок приложения в микросервисе имеет предельно малый размер и выполняет определенную функцию. Большая база кода в монолитной архитектуре замедляет процесс разработки. Выход новых версий может растянуться на месяцы. Поддерживать такую базу кода довольно сложно. Существует 2 типа микросервисов: Stateless (без сохранения состояния) и Stateful (с отслеживанием состояния) Микросервисы на Java полагаются друг на друга; они должны взаимодействовать между собой. Микросервисы позволяют в большей степени сконцентрироваться на определенных функциях или потребностях бизнеса. Сервисно-ориентированная архитектура, или СОА, – это усовершенствованные распределенные вычисления, основанные на проектной модели запроса/ответа в синхронных или асинхронных приложениях. Компоненты приложения в СОА открыты для внешнего мира и представлены в виде сервисов; микросервисы считаются частью СОА. Это реализация СОА. К популярным микросервисным инструментам относятся Wiremock, Docker и Hystrix.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59