По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Облачное хранилище позволяет хранить ваши данные на чужом жестком диске в дата-центрах по всему миру. Вам не нужно беспокоиться о потере ваших данных, и вы можете получить к ним доступ из любого места. И, хотите верьте, хотите нет, но многие из этих сервисов имеют довольно щедрые бесплатные предложения. Так что стоит учитывать, что базовое бесплатное хранилище можно бесплатно ненамного увеличить, путем выполнения различных условий от хранилища – например, можно получить дополнительное место за реферальные ссылки, пост соцсетях или что-то в этом роде. В этой статье мы расскажем о главных поставщиках облачных хранилищ, чтобы вы могли решить, какие из них вы хотите использовать. Для чего нужно облачное хранилище? Вот наиболее распространенные варианты использования: Расширение вашего локального хранилища У вас может быть ноутбук или телефон с ограниченным объемом памяти. Конечно можно установить дополнительный жесткий диск SSD или SD-карту, но это может быть дорого. Кроме того, некоторые устройства не имеют дополнительного слота для жесткого диска. Резервное копирование ваших данных Большинство поставщиков облачных хранилищ устойчивы к потере данных. Когда вы загружаете данные в облако, поставщик хранит копии ваших данных до шести раз на шести разных жестких дисках в отдельных изолированных центрах обработки данных. С вашей точки зрения, будет казаться, что существует только один файл, но эти копии существуют. Эта облачная стратегия избыточных копий называется высокой доступностью и гарантирует возможность восстановления данных в случае виртуальных или физических катастроф. Так что, если у вас есть ценные фотографии, которые вы не хотите потерять, облако - лучшее место для них. Совместное использование и сотрудничество Облачное хранилище позволяет вам обмениваться файлами по вашему выбору с друзьями и коллегами. При обмене файлами по электронной почте, вы ограничены около 20 МБ на электронную почту. Облачное хранилище позволяет вам делиться терабайтами по размеру. Защита ваших данных Когда вы загружаете ваши данные в облачное хранилище, они шифруют ваши данные при сбросе. Некоторые провайдеры позволяют вам защитить паролем, требуют ключ шифрования или применяют многофакторную аутентификацию, требующую дополнительного шага проверки для получения доступа. Бесплатные облачные хранилища Существует множество провайдеров облачных хранилищ, и большинство из них имеют бесплатный уровень в несколько гигабайт. Используя различные облачные провайдеры, вы можете получить терабайты бесплатного хранилища. Мы разделили бесплатные облачные хранилища на две категории: одни для обычного потребителя и дополнительные опции для разработчиков. Бесплатное удобное облачное хранилище для обычных пользователей Dropbox - 2 ГБ Dropbox - один из старейших и самых популярных поставщиков облачных хранилищ для широкого потребителя. Dropbox имеет простой интерфейс, и синхронизация файлов с вашим локальным компьютером - это без проблем. Базовый бесплатный аккаунт предоставляет вам 2 гигабайта облачного хранилища. Также, возможно, вам будет интересно узнать, что в Dropbox используется AWS S3(Amazon Simple Storage Service). Amazon Drive - 5 ГБ с основной подпиской Amazon более известна своим хранилищем для разработчиков AWS S3, чем Amazon Drive, однако у нее предложение для обычных пользователей. Если вы хотите получить бесплатные 5 ГБ, вам необходимо приобрести подписку Amazon Prime. OneDrive - 5 ГБ Если вы работаете в Windows 10, то у вас уже есть предустановленный OneDrive, что имеет смысл, поскольку OneDrive является службой облачного хранения Microsoft. Базовый аккаунт дает вам 5 гигабайт облачного хранилища. Google Drive - 15 ГБ Если у вас есть Gmail или телефон или планшет на Android, то вы в одном клике от доступа к Google Диску. По умолчанию вы получаете 15 гигабайт облачного хранилища. У него отличные тарифы, а интерфейс очень прост в использовании. iCloud - 5 ГБ Если вы используете Mac или iPhone или iPad, то при настройке учетной записи Apple вас спросили, хотите ли вы использовать iCloud. Кстати, вам не нужно владеть продуктами Apple, чтобы воспользоваться преимуществами хранилища iCloud. Базовый аккаунт дает 5 бесплатных гигабайт. Box - 10 ГБ Однажды Box был так же популярен, как Dropbox, особенно когда предлагал новым пользователям 100 гигабайт бесплатно. Но в какой-то момент Box изменил свою направленность, добавив несколько функций, подходящих для профессиональных отраслей. Но них по-прежнему есть индивидуальный аккаунт, который дает 10 гигабайт хранилища. Яндекс.Диск – 10 ГБ Яндекс.Диск - это облачный сервис, принадлежащий компании Яндекс, позволяющий пользователям хранить пользователям бесплатно 10 гигабайт. Облако Mail.ru – 8 ГБ Облако Mail.ru - облачное хранилище данных компании Mail.ru Group, предоставляющее 8 гигабайт бесплатного места всем пользователям при регистрации. Бесплатное облачное хранилище для разработчиков Эти облачные решения для хранения предназначены для разработчиков, создающих веб-приложения и мобильные приложения. Чтобы получить доступ к этим облачным хранилищам, вам необходимо предоставить кредитную карту, которая может взимать плату за проверку. Эти тарифы не предусматривают жестких ограничений, то есть, если вы внезапно выйдете за пределы бесплатного уровня, с вас будет спишется плата. Поэтому требуется тщательный мониторинг, чтобы избежать больших счетов. Amazon S3 - 5 ГБ Amazon создала дочернюю компанию под названием AWS (Amazon Web Services), и они предлагают более 175 услуг, среди которых S3. В настоящее время AWS является самым популярным провайдером среди технических стартапов. S3, если вам интересно, расшифровывается как Simple Storage Service. Amazon S3 дает бесплатно 5 гигабайт. AWS предлагает более 200 облачных сервисов. Когда вы запускаете облачную службу, вы получаете полную инфраструктуру, специально настроенную для конкретной цели - базу данных, диспетчер очереди сообщений, службу контейнеризации. Из числа облачных провайдеров, представленных на рынке, AWS предлагает самый большой выбор услуг. AWS имеет 66 зон доступности, которые обеспечивают глобальное присутствие и обеспечивают 99,99% доступности в любое время и в любом месте. Зоны доступности гарантируют достаточную избыточность и устойчивость, чтобы противостоять возможным сбоям и поддерживать бесперебойное обслуживание. Google Cloud Storage – 5 ГБ У Google есть Google Drive для обычно потребителя и Google Cloud Storage для разработчиков. В отличие от Google Drive, где вы получаете 15 ГБ бесплатно с Google Cloud Storage, вы получаете только 5 ГБ. Разработка GCP опирается на высокие технологии, такие как ИИ и машинное обучение, анализ данных и другие передовые технологии. GCP предоставляет полную среду для создания AI, ML и других подобных продуктов. Живая миграция выделяет GCP, поскольку другие облачные провайдеры не предлагают такой функции. В GCP вы можете перенести виртуальную машину на другой хост без остановки и перезагрузки. Таким образом, ваша служба будет работать непрерывно, даже если требуются какие-либо обновления. Azure Blob Storage – 5 ГБ Azure - компания облачных сервисов Microsoft. Вы можете быть удивлены, почему он называется Blob Storage. Blob означает большой двоичный объект и представляет собой набор двоичных данных, хранящихся в базе данных как один объект. В Azure вы можете запустить рабочий стол Windows с остальными вашими любимыми продуктами Microsoft - Windows Server, Office и другими. Microsoft Azure очень хорошо подходит для создания масштабируемых и безопасных гибридных облаков. Гибридное облако сочетает в себе функции общедоступного облака и частного облака, легко интегрируя внутреннюю инфраструктуру с общедоступными ресурсами. Object Storage Service (Alibaba Cloud) - 5 ГБ Alibaba – азиатский Amazon, и у Alibaba также есть собственная компания облачных сервисов под названием Alibaba Cloud. Их предложение находится на одном уровне со всеми облачными хранилищами. Но, возможно, в ближайшие годы они станут более известными, поскольку будут продолжать добавлять больше дата-центров по всему миру. Поставщик уделяет большое внимание обслуживанию предприятий и малого и среднего бизнеса в Китае, что делает его предпочтительным выбором для компаний или филиалов, расположенных в Китае и азиатском регионе. Несмотря на то, что список облачных сервисов Alibaba далеко не похож на список сервисов AWS, он быстро пополняется десятками доступных продуктов и не только. Кроме того, Alibaba активно инвестирует в разработку передовых облачных инструментов и платформ, таких как AI, машинное обучение и большие данные.
img
Если вы специалист по безопасности, то вам потребуется часто анализировать хосты, если будет замечена подозрительная активность. Чтобы дольше оставаться незамеченными, злоумышленники зачастую используют совершенно легитимные инструменты и процессы, которые можно найти в любой ОС Microsoft Windows. Поэтому важно понимать, как Windows обрабатывает процессы и какие встроенные инструменты может использовать специалист по безопасности для анализа активностей на хосте. Процессы, потоки и службы В Windows, когда приложение запущено, оно создает процесс. Обычно приложение может иметь один или несколько выделенных ему процессов. Процесс - это все ресурсы, необходимые для обеспечения возможности выполнения/запуска приложения в операционной системе хоста. Представьте, что вы открываете диспетчер задач, чтобы проверить производительность вашего компьютера. Операционная система создаст процесс со всеми необходимыми ресурсами для этого приложения. На следующем рисунке показаны текущие процессы на компьютере с Windows 10: Как показано на предыдущем рисунке, диспетчер задач - это служебная программа, которая предоставляет информацию о процессах, службах и производительности устройства. На вкладке «Процессы» вы увидите список всех запущенных в данный момент приложений в операционной системе хоста, список фоновых процессов и ресурсы, которые выделяются каждому приложению (ЦП, память). Фоновые процессы в Windows выполняются как службы. Служба - это программа, которая выполняется в фоновом режиме операционной системы, обеспечивая поддержку приложения и/или операционной системы. Эти службы можно настроить на автоматический запуск при загрузке Windows. Вы можете запускать, останавливать и перезапускать службу вручную. На следующем снимке экрана показано окно панели управления службами в операционной системе Windows 10: На предыдущем рисунке показан список служб в операционной системе хоста. Здесь вы можете настроить свойства службы в Windows. Дважды щелкнув на службу, откроется окно свойств. На следующем рисунке показано окно свойств службы: Как показано на предыдущем рисунке, вы можете настроить тип запуска службы. Каждое приложение создает родительский процесс с одним или несколькими дочерними процессами, иногда называемыми потоком. Каждый дочерний процесс или поток отвечает за функцию, обеспечивающую выполнение приложения. Когда приложение выполняется в операционных системах Microsoft Windows, родительский процесс использует системный вызов fork(), который позволяет родительскому процессу для запущенного приложения создать один или несколько дочерних процессов. Однако имейте в виду, что у дочернего процесса может быть только один родительский процесс, а у родительского процесса может быть несколько дочерних процессов. Когда приложение выполняется операционной системой или пользователем, операционная система задействует физическую память из оперативной памяти и создает виртуальную память для выделения запущенному процессу или дочернему процессу. Таким образом, процессы выполняются в виртуальном адресном пространстве операционной системы. Важное примечание! Операционная система Windows управляет выделением виртуальной памяти процессу. Иногда, когда приложение закрывается, родительский процесс и все дочерние процессы завершаются, тем самым высвобождая ресурсы обратно операционной системе. Однако родительский процесс может завершиться, пока дочерние процессы остаются активными. В этой ситуации виртуальная память и любые другие ресурсы по-прежнему выделяются каждому дочернему процессу. Дочерний процесс, у которого нет родительского процесса, называется сиротским процессом (orphan process). Пользователь может вручную завершить дочерний процесс в диспетчере задач или выполнить перезагрузку системы. Перезагрузка системы завершит все процессы и перезагрузит операционную систему. На следующем рисунке показан список всех запущенных процессов на вкладке «Подробности» в диспетчере задач: Как показано на предыдущем снимке экрана, мы можем видеть все процессы, идентификатор процесса (PID) для каждого процесса, статус, какой пользователь запускает процесс, и распределение ресурсов. Также в Microsoft Windows существует утилита Resource Monitor Монитор ресурсов предоставляет более подробную информацию обо всех процессах и о том, как они используют ЦП, память диск и сеть на устройстве. На следующем рисунке показан интерфейс монитора ресурсов на компьютере с Windows 10: Еще одним инструментом, который поможет вам определить адресное пространство и распределение памяти в Microsoft Windows, является инструмент RAMMap, который входит в набор инструментов Windows Sysinternals от Microsoft. На следующем рисунке показан сводный список и список подкачки на хосте, использующем RAMMap: Как показано на предыдущем снимке экрана, RAMMap показывает сводную информацию о выделении виртуальной памяти и ее использовании. Кроме того, вкладка Процессы содержит полный список всех процессов: Как показано на предыдущем рисункеа, на этой вкладке вы можете увидеть каждый запущенный процесс и распределение виртуальной памяти. Этот инструмент действительно полезен для демонстрации того, как ваша операционная система распределяет физическую память и сколько памяти используется в качестве кэша для данных на устройстве. Файл подкачки Windows= По мере того, как в память загружается больше приложений, операционная система выделяет части физической памяти (ОЗУ) каждому процессу, используя виртуальную память. Каждый родительский процесс и его дочерние процессы выполняются в одном виртуальном адресном пространстве в операционной системе хоста. Как уже упоминалось, за выделение памяти отвечает операционная система, однако есть некоторые приложения, которым для бесперебойной работы требуется намного больше памяти, чем другим, и это может создать нехватку доступной памяти для других приложений. Операционная система Windows использует часть памяти из другой области, с жесткого диска или SSD. Windows берет небольшую часть памяти с локального диска и преобразует ее в виртуальную память. Это называется файлом подкачки. Файл подкачки позволяет операционной системе хоста использовать эту часть памяти для загрузки приложений и, следовательно, снижает нагрузку на физическую память (ОЗУ) в системе. Чтобы получить доступ к настройкам файлов подкачки, выполните следующие действия: Щелкните значок Windows в нижнем левом углу экрана и выберете Система. Откроется окно «Система». Слева выберите пункт «Дополнительные параметры системы». Откроется окно «Свойства системы». Выберите пункт «Дополнительно» и нажмите «Параметры» в разделе «Быстродействие», как показано ниже: Откроется окно параметров быстродействия. Чтобы изменить размер файла подкачки, нажмите «Изменить…»: Вам будет предоставлена возможность настроить размер файла подкачки для всех дисков в локальной системе. Размер файла подкачки по умолчанию зависит от объема оперативной памяти хост-системы. Операционная система Windows 10 автоматически управляет размером файла подкачки в зависимости от конфигурации хоста и объема оперативной памяти в системе. Windows использует файл подкачки в качестве виртуальной памяти в случае, если в ОЗУ недостаточно физической памяти. Реестр Windows Вся информация о конфигурациях и настройках операционной системы Windows и ее пользователей хранится в базе данных, известной как реестр (registry). Самый высокий уровень реестра известен как куст. В реестре Windows есть пять кустов, и каждое значение данных хранится в разделе или подразделе куста. Древо (куст) реестра — это подмножество разделов, подразделов и параметров реестра, которому сопоставлен набор вспомогательных файлов, содержащих резервные копии этих данных. Часто для обозначения конкретных путей в реестре применяют термин ветка. Например ветка реестра HKEY_LOCAL_MACHINESYSTEM. Ниже перечислены пять кустов и их функции в Windows: HKEY_CLASSES_ROOT (HKCR): этот куст отвечает за правильное выполнение всех текущих приложений в проводнике Windows. Кроме того, этот куст содержит сведения о ярлыках и правилах перетаскивания в операционной системе хоста. HKEY_CURRENT_USER (HKCU): этот куст хранит информацию о текущей учетной записи пользователя в локальной системе. Эта информация будет включать настройки панели управления, настройки папок и настройки персонализации пользователя. HKEY_LOCAL_MACHINE (HKLM): этот куст отвечает за хранение специфичных для оборудования деталей операционной системы, таких как конфигурация системы и подключенные диски. HKEY_USERS (HKU): содержит данные конфигурации профилей пользователей в локальной системе. HKEY_CURRENT_CONFIG (HKCC): содержит подробную информацию о текущих конфигурациях системы. Для доступа к реестру используйте Registry Editor (regedit) в строке поиска Windows. На следующем рисунке показан редактор реестра Windows: Как показано на предыдущем рисунке, вы можете видеть, что каждый куст находится в верху своего уровня. Если вы развернете куст, вы увидите папки, а в каждой папке есть ключи, которые содержат сведения о конкретной функции или конфигурации в операционной системе. Реестр может предоставить ценную информацию во время расследования. В каждом реестре есть значение, известное как LastWrite, которое просто указывает время последнего изменения объекта или файла. Эта информация может использоваться для определения времени инцидента или события, связанного с безопасностью. В реестре также содержатся сведения о приложениях, которые запускаются автоматически со стартом системы - AutoRun. Для закрепления в системе, злоумышленники часто модифицируют ветки реестра, которые отвечают за автоматический запуск процессов и сервисов и добавляют в них ссылки на вредоносные программы, чтобы они каждый раз запускались со стартом системы и могли пережить перезагрузку. Ниже приведены основные ветки, отвечающие за автоматический старт приложений и сервисов: [HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunOnce] [HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRun] [HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices] [HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServicesOnce] [HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWinlogonUserinit] [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun] [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce] [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServices] [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunServicesOnce] [HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionWindows] Например, чтобы при каждом старте Windows запускался блокнот, в ветку [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun] можно добавить новое значение и указать в нём ссылку на исполняемый файл на компьютере - "Notepad"="c:windows otepad.exe" Windows Management Instrumentation Управлять несколькими компьютерами с ОС Windows в небольшой сети очень просто. Однако по мере роста сети и подключения все большего числа устройств на базе Windows управление политиками и службами на уровне приложений может стать сложной задачей. Windows Management Instrumentation (WMI) - это инструмент, встроенный в операционную систему Windows, который позволяет системному администратору или специалисту по безопасности управлять многими системами на базе Windows в корпоративной сети. WMI - это функция администрирования Windows, которая обеспечивает единую среду для локального и удаленного доступа к системным компонентам Windows, а также позволяет собирать статистическую информацию об удаленных компьютерах в вашей сети. Вы сможете собирать статистику как по оборудованию, так и по программному обеспечению и даже отслеживать состояние каждого устройства. Чтобы открыть WMI на компьютере с Windows, выполните следующие действия: Откройте приложение Computer Management (управление компьютером) в Windows 10/Server 2019. Слева разверните «Службы и приложения». Щелкните правой кнопкой мыши элемент управления WMI и выберите «Свойства». На следующем рисунке показан интерфейс свойств элемента управления WMI: Злоумышленники могут использовать инструментарий управления Windows (WMI) для удаленного управления. WMI работает через протоколы SMB и службу удаленного вызова процедур (RPCS) для удаленного доступа. RPCS работает через порт 135. WMI управляется через утилиту командной строки WMI command-line (WMIC). Пример команды - wmic process call create. Использование WMI должно быть ограничено и ограничиваться только авторизованными пользователями, внимательно следя за его использованием. Инструменты мониторинга В операционной системе Windows существует множество инструментов мониторинга, которые специалист по безопасности может использовать для мониторинга различных ресурсов и действий на устройстве. Одним из таких инструментов является Performance Monitor, который позволяет пользователю собирать более подробные данные, чем ранее упомянутый Resource Monitor. Монитор производительности (системный монитор) - это основной инструмент, используемый как в Windows 10, так и в Windows Server. Специалист по безопасности может использовать этот инструмент для сбора статистики о системе за различные периоды времени, например, часы или дни. Затем собранные данные можно проанализировать на предмет любых аномалий. На следующем рисунке показан монитор производительности в системе Windows 10/Server 2019: Еще одним отличным инструментом, встроенным в Windows, является Монитор стабильности системы. Монитор стабильности системы позволяет специалисту по безопасности просматривать историю проблем, возникших в основной системе в течение нескольких дней или недель. Пользователь может нажать на событие в инструменте, чтобы получить подробную информацию о проблеме, и существует система оценок от 1 до 10, отражающая серьезность проблемы. На следующем рисунке показан Монитор стабильности системы на компьютере с Windows 10: Как показано на предыдущем рисунке, в системе произошел ряд критических событий за определенный период времени. Выбрав событие, монитор покажет подробную информацию о службе или приложении, вызвавшем событие, сводку и время его возникновения. Специалист по безопасности может использовать статистику и информацию, найденные здесь, чтобы лучше понять, вызвало ли вредоносное ПО или неавторизованные приложения нарушение безопасности в хост-системе. Инструменты мониторинга Когда в системе Windows происходит какое-либо событие, создается сообщение журнала о данном событии. Инструмент, позволяющий анализировать данные события - Event Viewer. Event Viewet содержит журналы безопасности, приложений и системных событий. Представьте, что злоумышленник пытается войти в учетную запись пользователя с неверными учетными данными. Для каждой попытки создастся событие сообщения журнала, и по этим данным можно будет обнаружить атаку. Существует 4 основных журнала событий: Security Безопасность - хранит события безопасности Application Приложение - хранит журналы приложений в ситстеме и установленного ПО Setup Установка - хранит сведения об установке ОС System Система - хранит сведения о работе самой системы На следующем рисунке показан инструмент просмотра событий в Windows (Event Viewer): Если вы развернете категорию, такую как Безопасность, вы увидите список всех журналов, связанных с безопасностью. На следующем снимке экрана показаны сведения в окне просмотра событий входа в систему безопасности: Информация, содержащаяся в сообщениях журнала, помогает специалисту по безопасности определить, что, когда и как произошел инцидент в системе. Обратите внимание на код события - 4624. Этот код соответствует успешному входу в системе Windows. В случае неуспешного входа сгенерируется событие с кодом 4625. Данные события также будут содержать другую полезную информацию, такую как: имя пользователя, осуществляющего вход, информацию о системе с которой осуществляется вход, тип входа (интерактивный, удаленный, сетевой, вход сервиса), процесс входа, ID входа и другое. Другие важные коды событий в системах Windows, хранящиеся в журнале Безопасности/Security (начиная с версии 7): 4725 - Отключение Учетной записи 4723 - Изменение пароля учетной записи 4724 - Сброс пароля для учетной записи 47204726 - Созданиеудаление пользователя 4648 - вход с явным указанием учетных данных 4698 - Создание задачи через планировщик задач 4697 - Создание службы в системе 46884689 - Созданиезавершение процесса
img
gRPC — это мощная платформа для работы с удаленными вызовами процедур (Remote Procedure Calls). RPC позволят писать код так, как будто он будет выполняться на локальном компьютере, даже если он может выполняться на другом компьютере. Что такое RPC? RPC — это форма взаимодействия клиент-сервер, в которой используется вызов функции, а не обычный вызов HTTP. Идея в том, что мы можем вызвать и выполнить функцию где-то на удаленной системе, как если бы это была локальная функция. Он использует IDL (Interface Definition Language - язык описания интерфейса) как форму контракта на вызываемые функции и тип данных. RPC — это протокол "запрос-ответ", т.е. он следует модели "клиент-сервер": Клиент делает запрос на выполнение процедуры на удаленном сервере. Как и при синхронном локальном вызове, клиент приостанавливается до тех пор, пока не будут возвращены результаты процедуры. Параметры процедуры передаются по сети на сторону сервера. Процедура выполняется на сервере и, наконец, результаты передаются обратно клиенту. gRPC воспроизводит этот архитектурный стиль взаимодействия клиент-сервер через вызовы функций. Таким образом, gRPC технически не является новой концепцией. Скорее, он был заимствован из этой старой техники и улучшен, что сделало ее очень популярной. Что такое gRPC? В 2015 году Google открыл исходный код своего проекта, который в конечном итоге получил название gRPC. Но что на самом деле означает буква «g» в gRPC? Многие люди могут предположить, что это для Google, потому что Google это сделал, но это не так. Google меняет значение «g» для каждой версии до такой степени, что они даже сделали README, чтобы перечислить все значения. С момента появления gRPC он приобрел довольно большую популярность, и многие компании используют его. Есть много причин, по которым gRPC так популярен: простая абстракция, он поддерживается во многих языках и он очень эффективный. И помимо всех вышеперечисленных причин, gRPC популярен потому, что очень популярны микросервисы и имеется большое количество взаимодействий между ними. Именно здесь gRPC помогает больше всего, предоставляя поддержку и возможности для решения типичных проблем, возникающих в таких ситуациях. А поскольку разные сервисы могут быть написаны на разных языках, gRPC поставляется с несколькими библиотеками для их поддержки. Архитектура gRPC Мы сказали что производительность gRPC очень высока, но что делает ее такой хорошей? Что делает gRPC намного лучше, чем RPC, если их дизайн очень похож? Вот несколько ключевых отличий, которые делают gRPC столь эффективным. HTTP/2 HTTP был с нами очень долго. Сейчас почти все серверные службы используют этот протокол. HTTP/1.1 долгое время оставался актуальным, затем в 2015 году, появился HTTP/2, который фактически заменил HTTP/1.1 как самый популярный транспортный протокол в Интернете. Если вы помните, что 2015 год был также годом выхода gRPC, и это было вовсе не совпадение. HTTP/2 также был создан Google для использования gRPC в его архитектуре. HTTP/2 — одна из важных причин, почему gRPC может работать так хорошо. И в следующем разделе вы поймете, почему. Мультиплексирование запроса/ответа В традиционном протоколе HTTP невозможно отправить несколько запросов или получить несколько ответов вместе в одном соединении. Для каждого из них необходимо создать новое соединение. Такой вид мультиплексирования запроса/ответа стал возможен в HTTP/2 благодаря введению нового уровня HTTP/2, называемого binary framing. Этот двоичный уровень инкапсулирует и кодирует данные. На этом уровне HTTP-запрос/ответ разбивается на кадры (они же фреймы). Фрейм заголовков (HEADERS frame) содержит типичную информацию заголовков HTTP, а фрейм данных (DATA frame) содержит полезные данные. Используя этот механизм, можно получить данные из нескольких запросов в одном соединении. Это позволяет получать полезные данные из нескольких запросов с одним и тем же заголовком, тем самым идентифицируя их как один запрос. Сжатие заголовка Вы могли столкнуться со многими случаями, когда заголовки HTTP даже больше, чем полезная нагрузка. И HTTP/2 имеет очень интересную стратегию под названием HPack для решения этой проблемы. Во-первых, все в HTTP/2 кодируется перед отправкой, включая заголовки. Это помогает повысить производительность, но это не самое важное в сжатии заголовков. HTTP/2 сопоставляет заголовок как на стороне клиента, так и на стороне сервера. Из этого HTTP/2 может узнать, содержит ли заголовок одно и то же значение, и отправляет значение заголовка только в том случае, если оно отличается от предыдущего заголовка. Как видно на картинке выше, запрос № 2 отправит только новый путь, так как другие значения точно такие же как и были. И да, это значительно сокращает размер полезной нагрузки и, в свою очередь, еще больше повышает производительность HTTP/2. Что такое Protocol Buffer (Protobuf)? Protobuf — это наиболее часто используемый IDL для gRPC. Здесь вы храните свои данные и функциональные контракты в виде так называемого прото-файла. По сути это протокол сериализации данных, такой как JSON или XML. Выглядит это так: message Person { required string name = 1; required int32 id = 2; optional string email = 3; } Так мы определили сообщение Person с полями name, id и email Поскольку это форма контракта то и клиент, и сервер должны иметь один и тот же прото-файл. Файл proto действует как промежуточный контракт для клиента, чтобы вызвать любые доступные функции с сервера. Protobuf также имеет собственные механизмы, в отличие от обычного REST API, который просто отправляет строки JSON в виде байтов. Эти механизмы позволяют значительно уменьшить полезную нагрузку и повысить производительность. Что еще может предложить gRPC? Метаданные Вместо обычного заголовка HTTP-запроса в gRPC есть то, что называется метаданными (Metadata). Метаданные — это тип данных «ключ-значение», которые можно установить как на стороне клиента, так и на стороне сервера. Заголовок может быть назначен со стороны клиента, в то время как серверы могут назначать заголовок и трейлеры, если они оба представлены в виде метаданных. Потоковая передача Потоковая передача (Streaming) — это одна из основных концепций gRPC, когда в одном запросе может выполняться несколько действий. Это стало возможным благодаря упомянутой ранее возможности мультиплексирования HTTP/2. Существует несколько видов потоковой передачи: Server Streaming RPC: когда клиент отправляет один запрос, а сервер может отправить несколько ответов. Например, когда клиент отправляет запрос на домашнюю страницу со списком из нескольких элементов, сервер может отправлять ответы по отдельности, позволяя клиенту использовать отложенную загрузку. Client Streaming RPC: когда клиент отправляет несколько запросов, а сервер отправляет обратно только один ответ. Например, zip/chunk, загруженный клиентом. Bidirectional Streaming RPC: клиент и сервер одновременно отправляют сообщения друг другу, не дожидаясь ответа. Перехватчики gRPC поддерживает использование перехватчиков для своего запроса/ответа. Они перехватывают сообщения и позволяют вам изменять их. Это звучит знакомо? Если вы работали с HTTP-процессами в REST API, перехватчики очень похожи на middleware (оно же промежуточное ПО). Библиотеки gRPC обычно поддерживают перехватчики и обеспечивают простую реализацию. Перехватчики обычно используются для: Изменения запроса/ответа перед передачей. Это можно использовать для предоставления обязательной информации перед отправкой на клиент/сервер. Позволяет вам манипулировать каждым вызовом функции, например, добавлять дополнительные логи для отслеживания времени отклика. Балансировки нагрузки Если вы еще не знакомы с балансировкой нагрузки, это механизм, который позволяет распределять клиентские запросы по нескольким серверам. Но балансировка нагрузки обычно делается на уровне прокси (например, nginx). Так причем это здесь? Дело в том, что gRPC поддерживает метод балансировки нагрузки клиентом. Он уже реализован в библиотеке Golang и может быть легко использован. Хотя это может показаться какой-то магией, это не так. Там есть что-то типа преобразователя DNS для получения списка IP-адресов и алгоритм балансировки нагрузки под капотом. Отмена вызова Клиенты gRPC могут отменить вызов gRPC, когда им больше не нужен ответ. Однако откат на стороне сервера невозможен. Эта функция особенно полезна для потоковой передачи на стороне сервера, когда может поступать несколько запросов к серверу. Библиотека gRPC оснащена шаблоном метода наблюдателя, чтобы узнать, отменен ли запрос, и позволить ей отменить несколько соответствующих запросов одновременно.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59