Микросервисы – это эволюция ориентированного на коммуникации конструктивного шаблона, который мы видим в структуре Unix и Интернета, а также в меморандуме Джеффа Безоса. Микросервисы определяются входящими и исходящими данными – тем, как они сообщаются с другими сервисами. Они могут быть написаны на разных языках и работать на множестве машин. Если они правильно спроектированы, любой из компонентов может быть заменен на улучшенный вариант, который выполняет ту же функцию, не требуя обновления остальной части приложения. Это то, что позволяет осуществлять непрерывное использование, при котором новые функции могут обновляться постоянно, а не одним мощным рывком, а также проводить А/Б-тестирование, во время которого альтернативные версии одной и той же функции можно протестировать на отдельных группах пользователей.
Необъяснимая эффективность данных
По мере увеличения количества и скорости разработки интернет-приложений характер работы в сфере программного обеспечения для множества людей также изменился. Это чем-то похоже на замену пропеллеров на реактивные двигатели в авиации. Для широкой категории приложений этот «реактивный двигатель» появился в виде первой прикладной статистики и теории вероятности, затем в виде машинного обучения и все более изощренных алгоритмов ИИ.
В 2006 году Роджер Магоулас, вице-президент O’Reilly Media по научным исследованиям, впервые ввел термин «большие данные» для описания новых инструментов управления данными в масштабе, который позволяет обслуживать такие компании, как Google. Бывший научный сотрудник корпорации Bell Labs Джон Маши использовал этот термин еще в 1998 году, но для описания растущего объема собираемых и хранимых данных, а не для каких-то управляемых этими данными услуг, основанных на статистике, и не для обозначения крупных достижений в области программного обеспечения и рабочих процессов, которые делают возможным предоставление этих услуг.
Большие данные означают не просто более масштабную версию реляционной базы данных, такой как Oracle. Это нечто совершенно иное. В своем докладе 2009 года «Необъяснимая эффективность данных» (своим названием он обязан классическому докладу Юджина Вигнера 1960 года «Необъяснимая эффективность математики в естественных науках») исследователи машинного обучения корпорации Google Алон Халеви, Питер Норвиг и Фернандо Перейра объяснили растущую эффективность статистических методов при решении сложных тогда проблем, таких как распознавание речи и машинный перевод.
Большая часть предшествующей работы была основана на грамматике. Смогли бы вы сконструировать, по сути, огромный поршневой двигатель, который использовал бы свои знания грамматических правил для распознавания человеческой речи? Успех был бы незначительным. Но по мере появления в Интернете все большего количества документов ситуация менялась. Несколько десятилетий назад исследователи полагались на тщательно отобранные фигуры человеческой речи и литературные произведения, которые в лучшем случае содержали несколько миллионов слов. Но в конечном итоге в Интернете стало настолько много контента, что правила игры сильно изменились. В 2006 году корпорация Google собрала базу из триллиона слов для исследователей языка и разработала «реактивный двигатель» для их обработки. С того момента прогресс пошел быстро и решительно.
Халеви, Норвиг и Перейра отмечали, что эта база, взятая из Интернета, во многом отличалась от курируемых версий, которыми пользовались предыдущие исследователи. В ней было полно незаконченных предложений, грамматических и орфографических ошибок, она не была привязана к грамматическим конструкциям и не содержала аннотацию. Но тот факт, что она была в миллион раз объемнее, перекрывал все эти недостатки. «База объемом в триллион слов – вместе с другими фигурами речи из Интернета, из миллионов, миллиардов или триллионов ссылок, видео, изображений, таблиц и взаимодействий пользователей – охватывает даже очень редкие аспекты человеческого поведения», – писали они. Вместо того чтобы создавать все более сложные языковые модели, исследователи начали «использовать лучшего имеющегося союзника: необъяснимую эффективность данных». Путем к пониманию языка были не сложные, основанные на правилах модели: нужно было просто воспользоваться статистическим анализом и позволить данным самим рассказать им, какой должна быть модель.
Читать дальше