Специалисты Microsoft планируют открыть исходный код Open Network Emulator, системы, которая имитирует всю сеть, обеспечивающую функционирование гипермасштабной «облачной» платформы компании. Microsoft использовала ее примерно в течение года для тестирования изменений, вносимых в сеть, прежде чем развернуть их в производстве.
Исследователи утверждают, что в предложенных изменениях удалось обнаружить сотни ошибок и предотвратить серьезные аварии. Вычислительные сети сложны и потому уязвимы. Чем больше сеть, тем больший ущерб может нанести единственная ошибка.
Проработав более года с системой, имитирующей всю глобальную сеть, обслуживающую «облако» Azure, компания Microsoft решила открыть исходный код эмулятора. Система Open Network Emulator (ONE) имитирует все аппаратные и программные устройства, составляющие сеть, и их межсоединения. Она выполняется в контейнерах Docker и на виртуальных машинах и предназначена для тестирования изменений, вносимых инженерами в сеть, перед их развертыванием в действующей сети.
«Передача технологии в общий доступ поможет крупным компаниям повысить время доступности сети и одновременно у исследователей появится инструмент для моделирования гипермасштабных сетей, подобных построенным Microsoft, Google и Amazon, и их совершенствования без соприкосновения с реальными сетями», —объясняет Виктор Баль, директор подразделения Microsoft Research по мобильности и сетевым технологиям.
Кроме того, поставщики сетевых продуктов получат возможность тестировать новое управляющее программное обеспечение для крупномасштабных применений.
Компания впервые представила систему в 2017 году, примерно спустя шесть месяцев после начала ее внутреннего использования.
В то время она называлась CrystalNet — хрустальный шар, в котором видно будущее сети, и специалисты Microsoft уже тогда думали о том, чтобы сделать технологию общедоступной. «Наша сеть разнородная, сложная и постоянно подвергается изменениям. В такой среде даже небольшие проблемы, вызванные отказами устройств, ошибками в программном обеспечении, ошибками в настройках и ненадежными инструментами управления, могут быстро привести к крупным авариям,— объясняется в описании ONE, представленном на конференции Sigcomm.— Поэтому способность оценить влияние каждого планируемого изменения, прежде чем оно внедрено в производство, критически важна для поддержания и повышения надежности сети».
Компании все больше зависят от «облачных» служб, в частности принадлежащих Microsoft, и добиться безотказной работы этих служб сегодня намного важнее, чем когда-либо раньше. Но независимо оттого, насколько хорошо спроектированы системы, насколько квалифицированы и бдительны обслуживающие их инженеры, время от времени человек совершает ошибки. Незначительная оплошность, допущенная в процессе изменения в гипермасштабной сети, может привести к гигантской аварии.
«Предположим, что все работает безупречно. Если нет аппаратных отказов, все должно быть превосходно,— комментирует Баль.— Но затем кто-то из участников вашей команды что-то где-то изменяет, и это изменение, как бывало в прошлом, может обрушить «облако» в целом регионе, поскольку, как известно, если сеть неисправна, ваши пакеты отправляются в никуда. В глобальном масштабе такое отключение может повлиять на миллионы людей, и я не хочу оказаться виновником такого происшествия».
Теперь, когда сетевые инженеры Azure вносят изменения, эти изменения применяются сначала к модели, но для них этот шаг не прозрачен. «Они даже не знают, вносят ли они изменение в сеть,— поясняет Баль.— В действительности они изменяют эмулятор. Он настолько удачно имитирует базовую сеть, что они не видят отличий».Если изменение не приводит ни к каким ошибкам в модели, то оно автоматически переносится в рабочую сеть.
Источник: журнал «Windows IT Pro/RE»