В чем заключается ценность участия в одной из партнерских программ Qrator Labs?
Мы твердо верим — работая вместе, можно добиться лучшего результата, нежели по отдельности. Это основная причина, по которой мы годами прикладывали усилия к построению осмысленных партнерских отношений с самыми разнообразными компаниями. Но на верхнем уровне все наши партнеры делятся на два типа. Первые хотят предоставить собственному потребителю первоклассную технологию защиты от DDoS-атак, разрабатываемую в Qrator Labs, вместе со всеми экосистемными продуктами и услугами. Вторые заинтересованы в том, чтобы предоставить продукт собственной разработки клиентам Qrator Labs, интегрировавшись в нашу сеть фильтрации.
В начале 2021 года Qrator Labs отмечает собственный десятилетний юбилей. 19 января наша компания пройдет через формальную отметку 10 лет деятельности, войдя во вторую декаду существования.
Хотя, на самом деле, все началось несколько ранее - когда в возрасте десяти лет Александр первый раз увидел Robotron K 1820 - в 2008 году, когда Александр Лямин - основатель и директор Qrator Labs, пришел с идеей к начальникам в МГУ, где на тот момент времени он работал сетевым инженером, о создании исследовательского проекта по нейтрализации DDoS-атак. Сеть МГУ тогда была одной из крупнейших в стране и, как мы знаем сейчас, это было лучшее место для того, чтобы посеять зерно будущей технологии.
Тогда администрация МГУ согласилась, и Александр перенёс собственное оборудование в университет, одновременно с этим собирая команду. Через два года, летом 2010, стало ясно, что проект успешен. Он принял на себя DDoS-атаку, превышающую емкость вышестоящего поставщика МГУ. И 22 июня боссы выдвинули ультиматум г-ну Лямину - закрываться или уходить.
Александр Лямин решил инкорпорироваться на свои собственные средства, что буквально значило за свои строить инфраструктуру с нуля. При этом изначальная архитектура сети должна быть распределенной вместо концентрированной, так как ресурсы последней бы точно не справились со столь специфической задачей.
В сентябре 2010 года первая площадка была введена в эксплуатацию.
На первом в истории полностью виртуальном мероприятии РИТ++, прошедшем в конце мая, инженер Qrator Labs — Георгий Тарасов, рассказал публике про веб-скрейпинг, он же парсинг, популярным языком. Мы решили предоставить вашему вниманию транскрипцию выступления.
Стоит оговориться, что нижеследующая история во многом уникальна.
И вот как она начиналась. В течение примерно одного часа, начиная с 19.28 UTC вчера, 1 апреля 2020 года, крупнейший российский интернет-провайдер — Ростелеком (AS12389) — начал анонсировать сетевые префиксы крупнейших игроков интернета: Akamai, Cloudflare, Hetzner, Digital Ocean, Amazon AWS и других известных имен. До того момента как проблема была решена пути между крупнейшими облачными провайдерами планеты были нарушены - Интернет "моргнул".
Данная утечка маршрута вполне успешно распространялась через провайдера Rascom (AS20764), откуда через Cogent (AS174) и, спустя еще несколько минут, через Level3 (AS3356) распространилась по всему миру. Утечка была настолько серьезной, что почти все Tier-1 операторы были задеты аномалией.
Основанная в 2009 году, компания Qrator Labs предоставляет услуги нейтрализации DDoS-атак и является
признанным экспертом в отрасли обеспечения непрерывной сетевой доступности. Команда Qrator Labs проводит исследования в области защиты от DDoS-атак с 2006 года и постоянно совершенствует алгоритмы, технологии и методы нейтрализации различных распределенных атак на отказ в обслуживании (DDoS).
В 2010 году компания запустила в работу собственную сеть фильтрации трафика Qrator в качестве технологической основы для коммерческой услуги, предлагающей защиту сетевых сервисов и ресурсов от подобных угроз. Алгоритмы и технологии, используемые для нейтрализации распределенных атак на отказ в обслуживании, являются фокусом и специализацией компании.
«В 1665 году Кембриджский университет закрылся из-за эпидемии чумы. Исааку Ньютону пришлось работать из дома. Он открыл дифференциальное и интегральное исчисление, а также закон всемирного тяготения».
К сожалению, мы живем в выдающееся время. С наступлением 2020 года и эпидемией COVID-19 сотрудники по всему миру закрываются дома на карантин, стараясь изо всех сил поддерживать нормальное течение жизни, а значит, и продолжать работать. Но есть одно отличие от всех предыдущих инфекционных пандемий, которые пережило человечество — в этот раз у нас есть Интернет.
Есть у нас в Qrator Labs такая традиция — в начале, а февраль это точно не конец, каждого года публиковать отчет о годе предыдущем.
Как и любая многолетняя сущность, она обрастает множеством сопутствующих историй. К примеру, уже стало «доброй» приметой, когда в начале января на наши корпоративные страницы заходит очередная DDoS-атака, которую мы не успеваем разобрать в отчете. 2020 год стал наполовину исключением — вектор атаки мы успели описать (TCP SYN-ACK-амплификация), но именно к нам, на qrator.net, гость пожаловал (и не один) только 18 января, зато сразу с гостинцами: 116 Gbps при 26 Mpps.
Стоит признаться, что пересказывать события ушедшего года — жанр специфический. Поэтому мы решили в процессе рефлексии сосредоточиться и на том, что будет происходить — в первую очередь с нашей командой и продуктом — в текущем году, так что не удивляйтесь читая о наших планах по разработке.
Начнём мы с двух самых интересных нам тем прошлого года: SYN-ACK-амплификации и BGP-«оптимизации».
(если вы все знаете — опуститесь до секции «Перечисления в стандартной библиотеке»)
Представьте, что вам нужно описать набор всех возможных состояний сущностей в собственной модели базы данных. Скорее всего, вы возьмёте пачку констант, определенных прямо в пространстве имен модуля:
class MyModelStates:
INITIAL = 0
PROCESSING = 1
PROCESSED = 2
DECLINED = 3
RETURNED = 4
Такой подход поможет сослаться на эти состояния по мнемоническим именам, в то время как в вашем хранилище они будут представлять собой обычные целые числа. Таким образом вы одновременно избавляетесь от магических чисел, разбросанных по разным участкам кода, заодно делая его более читабельным и информативным.
Однако, и константа модуля, и класс со статическими атрибутами страдают от внутренней природы объектов Python: все они изменяемы (мутабельны). Можно случайно присвоить значение своей константе во время выполнения, а отладка и откат сломанных объектов — отдельное приключение. Так что вы можете захотеть сделать пачку констант неизменяемыми в том смысле, что количество объявленных констант и их значения, на которые они отображаются, не будут изменяться во время выполнения программы.