Рубрики
Uncategorized

Смертный: Кто устанавливает вашу среду? 🤔 Дайвинг в то, как работает Serverless Environment Setup.

Если вы приедете в мир без сервера, особенно если вы работали в сервере, находящемся на сервере, … с меткой безвесочных, облаком, AWS, DEVOPS.

Если вы приедете в мир без сервера, особенно если вы работали в сервере на основе сервера, вы можете в конечном итоге запутаться о том, кто именно «устанавливает окружающую среду в Serverless», а также о том, как среда в неверных работах.

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

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

Чтобы понять безмерно, вам нужно подойти к идее с «свежим умом». Если у вас есть какие-либо существующие представления о том, как работают приложения/серверы, попробуйте игнорировать эти идеи на сегодня. Давайте попробуем свой разум в «безреслушный» способ делать вещи. Между сервером и архитектурами без серверов, некоторые вещи одинаковы, но многие вещи нет.

Давайте взглянем…

Примечание: В этой статье мы поговорим о теме в контексте AWS … Но идеи, представленные здесь, будут очень похожи, независимо от того, какой поставщик облака вы используете!

Но во-первых, что такое безвестен?

Прежде чем мы начнем говорить о том, как настроена наша сервесная среда без сервезна, а что мы делаем (и не), имеем доступ, давайте быстро попадем на той же странице и определим, что мы подразумеваем под «безрезультатно».

У меня недавно было полезное обсуждение в Твиттере, о различных условиях, которые придумывают в мире без сервеса, и какие из них являются предпочтительными, поэтому я убедитесь на протяжении всей этой статьи, чтобы быть вполне точными в отношении терминов, которые я использую!

Сегодня мы разговариваем конкретно о: «Функции без сервеса».

Функции без сервеса — это то, что большинство людей значит, когда они используют слово «безверенно». Термин «Serverless» запутается, так как это означает любой сервис (не просто вычислять функции I.E), где вы не беспокоитесь о базовом сервере. Например, базы данных могут быть неверными, Dynamodb это хороший пример.

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

Функции без сервера являются моделью вычислительной модели выполнения, которая позволяет пользователю облачной платформы запускать код приложений, упруго, по требованию, без учета таких факторов, как: масштабирование или предоставление сервера (I.e Сколько серверов вам нужно запустить в любой момент времени).

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

Безвесовые функции лучше всего определяются его характеристиками: вы (пользователь) не беспокоится о сервере, ваш код соответствует требованию автоматически, и вы не платите за неиспользуемые или безданные ресурсы.

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

С неверном: какая у вас ответственность против облачных поставщиков?

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

AWS разделял модель ответственности

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

TL; DR: DR: Ваш поставщик облака управляет физическими серверами, хранением, охлаждением, физической безопасностью. В некоторых случаях облачный провайдер заботятся о запуске правильных версий программного обеспечения на управляемых услугах. Но вы, как пользователю, будут управлять вещами, такими как ваши данные, и версии программного обеспечения вы работаете на не управляемых службах и т. Д.

Модель общей ответственности довольно большая тема, поэтому, если вам интересно попасть в детали, вы можете проверить все детали на AWS Общая ответственность Модель страница.

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

Какие части функции безвесовой могут вы можете получить доступ/контроль?

Что вы можете получить доступ в aws lambda?

Итак, как мы знаем сейчас, даже в мире без сервера есть где-то сервер. Что поднимает вопрос: какие части этого сервера у вас есть доступ?

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

Какая информация принимает ваша безвесованная функция?

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

Итак, как дела инициируются в мире без прослушивания? По событиям в облачной экосистеме. Например, вы можете вызвать AWS Lambda в расписании или через Gateway API, вы можете прочитать Полный список AWS Lambda Triggers здесь Отказ

Когда эти события/триггеры случаются, вам дают некоторые данные, чтобы помочь вам понять и обращаться с этими запросами/событиями. С aws lambda, вам дают два аргумента для вашей функции: a событие объект и а контекст объект.

событие Объект содержит свойства, связанные с этим конкретным вызовом/событием, обычно деталей о запросе или асинкому событию. контекст Держит информацию о самой среде AWS Lambda.

Надеюсь, он начинает становиться немного более яснее сейчас, как модель без сервера отличается сервером. Если вы хотите создать HTTP API, а не настроить веб-сервер, вы используете один из множества облачных услуг веб-сервера, таких как API Gateway или AWS ALB Чтобы направить трафик к вашей функции AWS Lambda.

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

Как Бесплатные функции обрабатывают в процессе процесса памяти?

В пределах AWS Lambda вы можете назначить свойства в память, для временного хранения. Это особенно интересно, поскольку эта память может быть повторно использована между «средами выполнения» в AWS Lambda. Но что я имею в виду, что память передается между средами исполнения?.

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

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

Можете ли вы получить доступ к дискому пространству В неверном?

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

Каждая функция AWS Lambda имеет 500 МБ не постоянного дискового пространства в /TMP каталог. В этом каталоге вы можете написать любые файлы, которые вам нужны. Просто помните, что любые файлы, хранящиеся в Temp, не передаются с любыми другими средами выполнения, и они не будут сохраняться со временем, после окончания среды выполнения.

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

Как вы распределите ресурсы в функции без сервера?

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

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

Например, в AWS Lambda вы можете увеличить количество процессора, но это поставляется на шаге блокировки с объемом памяти, которую вы выделяете. Эти две метрики связаны с соображениями простоты.

AWS Lambda Power VS Стоимость компромисса ( Источник )

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

Вы можете использовать инструменты, такие как AWS-LAMBDA-POWER-TUNING Чтобы помочь вам выяснить лучший баланс между затратами и мощностью для ваших функций AWS Lambda. Больше мощности может означать лучшую производительность, но по стоимости.

Библиотека тюнинга AWS Lambda

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

Таким образом, мы накрыли несколько вещей, которые у вас есть доступ к вашей среде без сердца: аргументы, память и постоянное дисковое пространство. Есть много больше, чтобы копать, мы могли бы провести весь день!

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

Какие части функции безвесочной могут вы не можете получить/контролировать?

Таким образом, мы говорили сейчас о нескольких вещах, которые вы контролируете, а как насчет вещей, которые не являются вашим контролем, когда вы работаете с AWS Lambda?

Можете ли вы SSH в функцию безвесочной?

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

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

На самом деле, идея, которую вы не можете SSH в AWS Lambda как ограничения, действительно заставляет функцию инвестировать в другие инструменты, такие как мониторинг, оповещение и регистрацию, которые помогут вам «понять» ваше запущенное программное обеспечение, а не SSH входящий. Я никогда не забуду, как потные мои ладони были SSH’инг в производство, и звонили с живым кодом. Никогда больше!

Можете ли вы управлять агентом в функции без сервеса?

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

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

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

AWS недавно выпустил функцию, которая может помочь вам реализовать агент-подобное поведение, но изнутри делая вещи AWS Lambda Way, называется « лямбда наращивание ». И есть такие другие функции, как это, где типичное поведение сервера было перенесено на миру AWS Lambda.

Чтобы узнать больше о растяжении лямбда, а что они подразумевают для вас, вы, возможно, захотите проверить эту статью, которую я писал: Лямбда Расширения: что они, и вы должны заботиться?

Как вы просмотреете файлы журнала В функции без сервеса?

Подобно SSH’ing на сервере, большинство инженеров программного обеспечения с фоном, работающим с серверами, могут быть знакомы с рабочим процессом падения на сервер, в анализе файлов журналов GREP. Но, как мы упоминали, идея SSH не встроена в AWS Lambda или рекомендуется.

Так что же предпочтителен, новый подход? Подход с AWS LAMBDA, заключается в использовании внешней службы, например Cloudwatch Отказ CloudWatch — это управляемая служба AWS, и вы можете настроить AWS Lambda для доставки журналов. Но вам не нужно, как мы упоминали ранее, есть много других вариантов, включая сторонние инструменты или самообъектив на выбор.

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

Переезд в серверусный разум

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

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

Чтобы узнать больше о Severless, проверить: Смертный: Ultimate Guide или если вы действительно хотите попасть в облако и без промежуток времени, проверить: Мой (весьма!) Рекомендуемые книги/курсы Отказ

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

Говорите в ближайшее время облако инжиниринг друг!

Пост В серверу, который устанавливает окружающую среду? Что вы делаете и не имеете доступа к появился первым на DEV тренер Отказ

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

Оригинал: «https://dev.to/aws-builders/serverless-who-sets-up-your-environment-diving-into-how-the-serverless-environment-setup-works-3kmp»