Бессерверная система выведет инженеров на «дорогу, из которой нет возврата»!

Архитектура Serverless

Оригинал: Miss Sister Taste (идентификатор публичной учетной записи WeChat: xjjdog), добро пожаловать, пожалуйста, сохраните источник для перепечатки.

Не обманывайтесь названием.

Развитие технологий никогда не основывается на личной воле, и некоторое разделение труда между программистами неизбежно исчезнет с развитием технологий.

Прежде чем мы начнем, давайте сначала посмотрим, что такое концепция Serverless.

Serverless буквально переводится как «бессерверный», что не означает, что для запуска кода не нужно запускать его на сервере. Это означает, что будущее развитие, не нужно обращать внимание服务器С помощью этого относительно низкоуровневого средства код будет выполняться напрямую. Эти ресурсы станут невидимыми.

Опасный! Основной эксплуатационный и обслуживающий персонал.

Представьте себе процесс разработки Java-приложения. Вам необходимо пройти разработку, тестирование и развертывание, прежде чем вы сможете нормально работать в сети. Если это приложение с высокой степенью параллелизма, необходимо оценить пиковое значение. Например, для поддержки запросов пользователей требуется 100 серверов. Некоторые продакт-менеджеры имеют горячую голову и добавляют функцию seckill, тогда ваше пиковое значение нужно проектировать в соответствии с пиковым значением seckill, даже если пиковый процесс длится менее 10 секунд, все ресурсы после содрогания будут простаивать. То есть, если сервер есть, даже если вы им не пользуетесь, вы за него платите.

Начальник прикрыл ему сердце и сказал, что ему было больно, и он внезапно умер.

Дальше все будет сложнее.По мере увеличения количества серверов нужно думать, как быстро развернуть, конфигурация каждой машины требует подробных расчетов, в т.ч.JVMСколько памяти выделить, как настроить политику сетевой безопасности, высокая доступность, несколько действий в разных местах... многие детали требуют большой подготовительной работы и инфраструктуры.

Этот статус-кво нравится многим из наших нынешних программистов.

Возьмем, к примеру, базовые компоненты и некоторое промежуточное ПО, какая подтаблица подбазы данных, кеш, синхронизация данных, мониторинг, виртуализация, CI/CD.... Содержание почти одинаковое, но у каждой крупной компании в основном свой набор. Это кормит большое количество практикующих, но это неразумно с точки зрения вклада и выхода всего общества.

Зачем нужно строить ракеты для собеседований, ведь на данном этапе эта штука иногда бывает действительно полезной.

все меняется

Когда компания разовьется до определенного этапа, будет большое количество внутренних систем. Такие как системы эксплуатации и обслуживания, финансовые системы, системы управления персоналом и т. д. За исключением небольшого числа разработчиков, которые продолжают итерации в этих системах, последующие пользователи фактически действуют как роли «эксплуатации и обслуживания» в замаскированной форме.

Вам нужно подать заявку на машину. ок, заполните заказ-наряд. После утверждения заказа на работу персонал «эксплуатация и техническое обслуживание» нажимает и нажимает в фоновом режиме, и создается виртуальная машина.

Вам нужно получить список пользователей системы. ок, заполните заказ-наряд. После того, как утверждение будет завершено, персонал по эксплуатации и обслуживанию откроет для вас токен и передаст токен в наш микросервис для извлечения информации.

Эти абстрактные серверы и пользовательские интерфейсы не требуют от вас подготовки оборудования или сети. Вам нужно только заполнить заказ на работу, и вы можете получить их на кончиках ваших пальцев. Он уже имеет немного бессерверный вид. Но это внутри предприятия, и масштаб тоже ограничен.

Здесь нам нужно понять несколько сокращенных существительных.

IaaSИнфраструктура как услуга (Infrastructure as a Service). Эта часть относится к инфраструктуре, такой как покупка и строительство серверов, которые тесно связаны с такими технологиями, как виртуализация и контейнеры.

PaaSПлатформа как услуга (Platform as a Service). Такие как операционные системы, виртуальные машины и базовые компоненты, предоставляемые поверх них, которые слабо связаны с бизнесом. Обычно к этой колонке относятся некоторые знакомые термины, такие как непрерывная интеграция, промежуточное ПО, общедоступные компоненты, микросервисы и т. д.

SaaSSoftware-as-a-Service (программное обеспечение как услуга). В жизни мы контактируем с облачными сервисами SaaS почти каждый день, но обычно это относится к поставщикам услуг централизованного развертывания. В этой модели бизнес-модель становится формой лизинга, продажи становятся операциями, а проекты становятся продуктами.

Первые буквы этих четырех существительных указывают на изменение рабочей среды. Например,IaaSполнота, так что специализируясь на基础设施服务инженеров, постепенно исчерпавших возможности для развития;PaaSполным, так что огромное平台开发工程师Возможности трудоустройства сужаются. За исключением немногих, кто может пользоваться дивидендами платформы, большинство из них могут перейти только на более высокий уровень абстракции.

Эти три всем знакомы, но есть две аббревиатуры, которые являются ключом к Serverless.

BaaSБэкенд как услуга. Относится к предоставлению компанией граничных услуг, которые интегрируют облачные серверные части для разработчиков мобильных приложений.

Это слово очень страшное. Согласно нашей вышеприведенной логике, когда он станет популярным, большинство бэкенд-разработчиков вымрет. Стек внутренних технологий, который был стабильным в течение стольких лет, наконец-то убивает сам себя.​

FaaSФункционирует как услуга. В широком смысле это можно понимать как сервитизацию функций, а можно интерпретировать как сервитизацию функций. При использовании FaaS необходимо сосредоточиться только на логике бизнес-кода и не нужно обращать внимание на серверные ресурсы, поэтому FaaS также тесно связан с тем, что разработчикам не нужно обращать внимание на бессерверные решения. Можно сказать, что FaaS предоставляет более разрозненные и абстрактные сервис-ориентированные возможности.

Вполне возможно, что, если средства будут завершены, для завершения разработки на уровне предприятия потребуются только обычные интеграторы внешнего интерфейса.

Суть информационной революции заключается в самообновлении и самозамещении, а пути, которые могут выбирать программисты, будут становиться все уже и уже. Компьютерные технологии вернутся к сути инструментов, каждый сможет их использовать, и это уже не патент некоторых людей.

Вы можете подумать, какая разница между этой штукой и нынешней облачной средой? Отличия все-таки есть, иначе бы не прет столько крупных производителей. На данном этапе бессерверные решения — это дело поставщиков облачных услуг, а не обычных разработчиков. Но, в конце концов, эти новые вещи будут медленно разрушать нашу традиционную территорию.

эластичность! Стоимость!

Мы уже приводили пример выше: текущая разработка серверного программного обеспечения должна быть спроектирована в соответствии с пиковым значением. После покупки сервера, даже если это облачный хост, большую часть времени он пустует. Также существует плата за порожний ход, из-за чего ИТ-расходы предприятий настолько высоки, что приходится тратить деньги на многие вещи, которые совсем не нужны.

Бессерверные услуги оплачиваются по запросу в зависимости от того, сколько вы используете. Например, когда QPS вашего сервиса составляет 10 Вт, вам будет выделено 10 машин, а когда оно упадет до 2 Вт, вам будет выделено 2 машины, что может сэкономить 4/5 денег.

Такая эластичность может показаться волшебной, но она также основана на некоторых современных технологиях. Напримерkube,dockerЖдать. Но это дело производителей облачных сервисов, то есть для предприятий сервис имеет огромную эластичность и экономит много средств. Ждут, пока начальство вкусит сладость этой функции, что они делают с кучей людей, у которых в глазах только технологии?

время! гибкий!

Бессерверная форма — это, безусловно, большая экология, то есть множество совершенных функциональных строительных блоков, которые могут быть собраны разработчиками.

Облачные вендоры обеспечат нормальную работу функциональных функций, а также итерации апгрейда, обратную совместимость и др. Предприятия вообще не будут вкладывать силы в некоторые существующие функции.

Например, создание инфраструктуры прямых трансляций очень дорого и требует много времени. Если Serverless предоставляет такие функциональные модули, предприятия могут использовать их напрямую.

Такой способ аренды не только дешевый, но и быстрый. Раньше на разработку идеи продукта уходило полтора года, а теперь на запуск уходит всего несколько дней. Это магия повторного использования.

некоторые изменения

Видно, что в этом режиме многие профессии будут меняться.

Инженер по эксплуатации и ремонту? Это больше не нужно, вам нужно только работать с фоном конфигурации, чтобы получить стабильный, безопасный и дешевый хост.

Инженер промежуточного программного обеспечения? Спрос сократился. Предприятия больше не будут нанимать этих дорогих и труднодоступных людей для создания этих инфраструктур. Вам нужно только управлять фоновой конфигурацией и использовать функции, предоставляемые поставщиком облачных услуг, чтобы красиво завершить работу.

Бэкэнд-разработчик? Спрос сократился. Не нужно очень сложной логики, что делать с разделением фронтенда и бэкенда, что делать со сложными распределенными блокировками и синхронизацией данных и т.д. Просто сосредоточьтесь на бизнес-логике.

Фронтенд-инженер? В настоящее время передняя часть все еще называется передней частью? Должен называться полным стеком. Пока вы знаете блоки LEGO, вы можете сращивать детали по чертежам.При условии, что функциональные модули достаточно богаты, это не волшебство.

API программиста — это уже не Kafka, Redis и т. д., а большое количество пользовательских функций, предоставляемых облачными вендорами.

Это настоящий вызов для инженеров, которых устраивает статус-кво. На самом деле, по популярности облачного хостинга в последние годы видно, что некоторые профессии постепенно стали фоновыми администраторами. По сути, это ничем не отличается от предыстории операции Таобао Сяоэр.

Суть такова: понять правила (функции) платформы, и сделать соответствующие акции (интеграцию).

Бессерверное программирование действительно скучно.

На волне времени людей всегда легко бросить, и мы, несомненно, вступили в эпоху обучения на протяжении всей жизни — особенно трудолюбивых программистов.


Чем выше уровень абстракции инструментов, не означает, что требования к грамотности инженеров ниже. Поскольку для Serverless нет стандарта, это всего лишь концепция, поэтому методы реализации у разных производителей должны быть разными.

Как владелец бизнеса, у меня обязательно возникнет такая проблема: я не могу сложить яйца в одну корзину и быть похищенным одним производителем. Например, некоторые начальники сейчас используют Alibaba Cloud, а также рассматривают Tencent Cloud, Faith Cloud и т. д.

Приложения, разработанные с использованием функций, предоставляемых платформой А, трудно перенести на платформу Б. Все производители надеются монополизировать, но часто этого не делают, что увеличивает стоимость обучения инженеров.

Кроме того, возможности бессерверных поставщиков ограничены и не могут охватить все основные сценарии бизнес-функций. Определенно будут производители, которые используют платформы разработчиков для поглощения внешних функциональных компонентов. К разработчикам, разрабатывающим эту часть функциональных компонентов, также предъявляются более высокие требования.

Я предполагаю, что в будущем появится рынок подключаемых модулей облачных функций, чтобы обогатить эту экосистему.

Авторские права на различное программное обеспечение с открытым исходным кодом также должны измениться. Как и в случае с нынешним облачным хостом, совершенно неразумно использовать программное обеспечение с открытым исходным кодом, чтобы заработать много денег.

Так как же будут выглядеть программисты будущего?

Инженер-разработчик платформы. Создайте облачную бессерверную платформу, чтобы обеспечить совершенство инфраструктуры. Это то, с чем большие заводы только играют.

Инженер по работе с плагинами. По правилам платформы, разрабатывать соответствующие функции и получать комиссионные с продаж или быть нанятым конкретной компанией для разработки таких функций. Это относительный главный инженер.

инженер по развитию бизнеса. Из массивных функциональных компонентов находите строительные блоки и создавайте продукты. Это то же самое, что сейчас искать фичи на гейхабе и интегрировать их в проект. Это самая большая доля людей.

Как только бессерверные технологии станут популярными, большинство инженеров окажутся в точке невозврата. К счастью, поскольку крупные производители не монолитны, они конкурируют и нападают друг на друга, из-за чего процесс строительства будет длиться очень долго.

Конечно, если семья одна, волноваться не о чем. Есть три причины:

Во-первых, общая тенденция мира, если он давно разделен, он должен быть объединен, а если он надолго объединен, он должен быть разделен. Властность Дачанга приведет к предательству и разлуке. Вызывает определенный уровень регресса навыков.

Во-вторых, ностальгия может вызывать привыкание, и многие вещи не умирают. Я, например, до сих пор люблю Супер Марио.

В-третьих, давайте поговорим об этом, когда сможем дожить до этого дня. Он может прийти вместе с легендарным искусственным интеллектом.

Нечего сказать, я хочу учитьсяAWS Lambaшел.

Об авторе:Мисс сестра вкус(xjjdog), публичная учетная запись, которая не позволяет программистам идти в обход. Сосредоточьтесь на инфраструктуре и Linux. Десять лет архитектуры, десятки миллиардов ежедневного трафика, обсуждение с вами мира высокой параллелизма, дающие вам другой вкус. Мой личный WeChat xjjdog0, добро пожаловать в друзья для дальнейшего общения.​