SlideShare uma empresa Scribd logo
1 de 39
Андрей Завадский
Levi9
Беcсерверная архитектура
1.
Экскурс в прошлое
Монолиты и микросервисы
Web Server
Монолитные приложения
Web Application
Web Layer
Service/Business Layer
Data/Persistence Layer
Catalog
Customer
Order
Микросервисы
Service container
API Gateway
Catalog Order Order Customer
REST
AMQP
Service
Container
Сложности
Настраивая сервера мы должны:
▷Подготовить конфигурацию и
расчитать начальную мощность.
▷Обеспечить маштабируемость.
▷Обеспечить отказоустойчивость.
▷Мониторинг.
▷Логирование.
Вопросы при подготовке
окружения...
Сколько серверов?
Насколько хватит начальной мощьности?
Какую OS использовать?
Как разворачивать приложения?
Безопасноть?
Как часто обновлять софт?
Как вовремя узнать если сервер взломан?
Стоимость окружения?
И тд...
2.
Бессерверная архитектура
Serverless Computing
“Serverless - это подход, с помощью
которого, вы можете строить свои
приложения без необходимости в
прямом управлении серверами или
контейнерами.
Пример приложения
API
Gateway
Customer
Service
Template
Service
Download
Service
PDF
Service
Абстрагируемся от
бизнесс задач...
Event Bus
Function
Function
Function
Function
Event
Source
Serverless Architecture
Event
Bus
Function
Function
Function
Function
Event
Source
Event
Source
Event
Source
Функции
Основу бессерверной архитектуры составляют,
так называемые “функции”
Функции – это
микропрограмы, которые:
▷Не хранят своего состояния.
▷Выполняются по событию / http
запросу / любому другому тригеру.
▷Обладают быстрым временем
холодного старта.
▷Хранят постоянные данные вне
своего контейнера.
Действительно ли serverless
приложения не зависят от
серверов?
Upload
Container
Container
Container
Function as a Service
Провайдеры предоставляющие FaaS
решения:
▷AWS Lambda
▷Azure Functions
▷Google Cloud Functions
▷IBM Open Whisk
3.
AWS Lambda Service
Возможности AWS Lambda:
▷Поддержка Java, NodeJS, Python и C#.
▷Подготовка, выполнение и
маштабирование контейнеров
обеспечивается провайдером.
▷API для запуска выполнения функций.
▷Обеспечение дополнительных
возможностей по логированию и
мониторингу.
▷Большой перечень источников
событий.
Amazon S3:
Amazon API Gateway:
Пример приложения в AWS
инфраструктуре
REST APIWeb Site
HTML, JS,
static content
Amazon
S3
API
Gateway
Template HTML Doc
HTML -> PDF
Download
S3
S3
+ PHP =
Не хранит состояния:
Request – Response:
Один поток:
PHP
Бессовестная архитектура
Vendor lock-in
Усложнение:
Тестирования и отладки
Задержки после простоя
Не для долгих задач
Молодая технология
Положительные стороны:
Провайдер обеспечивает:
масштабируемость,
поддержку и мониторинг.
Быстрое время вывода на рынок.
Гибкая ценовая политика.
Serverless framework
Возможности Serverless
Framework:
▷Развертывание вашего приложения в облаке.
▷Позволяет описывать конфигурацию REST API
и других источников событий.
▷Предлагает базовую структуру приложения,
помогая управлять кодом, ресурсами и
событиями.
▷Имеет интеграцию с крупными FaaS
провайдерами.
▷Open source проект с большим комьюнити.
Serverless и PHP
Не поддерживает PHP.
Вы можете реализовать NodeJS функцию, которая
вызовет ваше PHP приложение, с помощью заранее
подготовленного PHP интерпретатора.
Предоставлят поддержку PHP.
4.
Lambda на PHP
Телеграм бот
phpfwdays17bot
Структура проекта
config/
src/
vendor/
composer.json
handler.js
handler.php
php
serverless.yml
serverless.yml
handler.js
handler.php
HelloHandler.php
Отладка
[Xdebug]
...
zend_extension="path/to/ext/php_xdebug.dll"
xdebug.idekey = "PHPSTORM"
xdebug.remote_autostart = 1
xdebug.remote_enable = 1
xdebug.remote_handler = "dbgp"
xdebug.remote_host = "localhost"
xdebug.remote_log = "none"
xdebug.remote_mode = "req"
xdebug.remote_port = 9000
...
Deploy
https://github.com/araines/serverless-php
FROM amazonlinux
ARG PHP_VERSION
RUN yum install ...
RUN curl -sL https://github.com/php... | tar -zxv
WORKDIR /php-src-$PHP_VERSION
RUN ./buildconf --force
RUN ./configure ...
RUN make -j 5
Deploy
FROM amazonlinux
RUN yum -y install nodejs
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY <all_dependencies> /usr/src/app/
RUN chmod 777 ./php
RUN npm install serverless -g
RUN serverless config credentials 
--provider aws 
--key <key> 
--secret <secret>
RUN serverless deploy
Спасибо!
github.com/araines/serverless-php
github.com/ZeroSharp/serverless-php
read.acloud.guru/serverless-php-630bb3e950f5
cwhite.me/hosting-a-laravel-application-on-aws-lambda
Andy Raines Robert Anderson

Mais conteúdo relacionado

Mais procurados

Лицензирование TrueConf Server
Лицензирование TrueConf ServerЛицензирование TrueConf Server
Лицензирование TrueConf Server
TrueConf
 
Выбор backend для messaging в 2016 году
Выбор backend для messaging в 2016 годуВыбор backend для messaging в 2016 году
Выбор backend для messaging в 2016 году
Voximplant
 
AntonSaburov (Gemini-Systems) @ CodeCamp2011
AntonSaburov (Gemini-Systems) @ CodeCamp2011AntonSaburov (Gemini-Systems) @ CodeCamp2011
AntonSaburov (Gemini-Systems) @ CodeCamp2011
CodeCamp
 
Building corporate portals with liferay add-2011
Building corporate portals with liferay   add-2011Building corporate portals with liferay   add-2011
Building corporate portals with liferay add-2011
Alexey Kakunin
 
Cross-platform syncing: BaaS best practices - Sergey Kukurudzyak - Backendless
Cross-platform syncing: BaaS best practices - Sergey Kukurudzyak - BackendlessCross-platform syncing: BaaS best practices - Sergey Kukurudzyak - Backendless
Cross-platform syncing: BaaS best practices - Sergey Kukurudzyak - Backendless
Sociality Rocks!
 
Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"
Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"
Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"
Provectus
 

Mais procurados (20)

Разработка high load системы на .NET Core
Разработка high load системы на .NET CoreРазработка high load системы на .NET Core
Разработка high load системы на .NET Core
 
Лицензирование TrueConf Server
Лицензирование TrueConf ServerЛицензирование TrueConf Server
Лицензирование TrueConf Server
 
Александр Афенов
Александр АфеновАлександр Афенов
Александр Афенов
 
Ара Исраелян "Как ускорить разработку приложений"
Ара Исраелян "Как ускорить разработку приложений"Ара Исраелян "Как ускорить разработку приложений"
Ара Исраелян "Как ускорить разработку приложений"
 
Микросервисный фронтенд
Микросервисный фронтендМикросервисный фронтенд
Микросервисный фронтенд
 
Архитектурные решения при создании облачного сервиса на Asp.Net
Архитектурные решения при создании облачного сервиса на Asp.NetАрхитектурные решения при создании облачного сервиса на Asp.Net
Архитектурные решения при создании облачного сервиса на Asp.Net
 
Выбор backend для messaging в 2016 году
Выбор backend для messaging в 2016 годуВыбор backend для messaging в 2016 году
Выбор backend для messaging в 2016 году
 
Сергей Орлов
Сергей ОрловСергей Орлов
Сергей Орлов
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
 
AntonSaburov (Gemini-Systems) @ CodeCamp2011
AntonSaburov (Gemini-Systems) @ CodeCamp2011AntonSaburov (Gemini-Systems) @ CodeCamp2011
AntonSaburov (Gemini-Systems) @ CodeCamp2011
 
Звонки в браузере уже реальность
Звонки в браузере уже реальностьЗвонки в браузере уже реальность
Звонки в браузере уже реальность
 
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVMKNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
KNOCKOUTJS КАК РЕАЛИЗАЦИЯ MVVM
 
1
11
1
 
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
Эволюция клиентской разработки: от веба ко "всеобщей мобилизации” или mobile-...
 
Как повысить доступность ЦОД? Введение в балансировщики трафика. Часть 1
Как повысить доступность ЦОД? Введение в балансировщики трафика. Часть 1Как повысить доступность ЦОД? Введение в балансировщики трафика. Часть 1
Как повысить доступность ЦОД? Введение в балансировщики трафика. Часть 1
 
Минисервисы или микросервисы в условия цейтнота, Руслан Каримов, UWDC 2015
Минисервисы или микросервисы в условия цейтнота, Руслан Каримов, UWDC 2015Минисервисы или микросервисы в условия цейтнота, Руслан Каримов, UWDC 2015
Минисервисы или микросервисы в условия цейтнота, Руслан Каримов, UWDC 2015
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Building corporate portals with liferay add-2011
Building corporate portals with liferay   add-2011Building corporate portals with liferay   add-2011
Building corporate portals with liferay add-2011
 
Cross-platform syncing: BaaS best practices - Sergey Kukurudzyak - Backendless
Cross-platform syncing: BaaS best practices - Sergey Kukurudzyak - BackendlessCross-platform syncing: BaaS best practices - Sergey Kukurudzyak - Backendless
Cross-platform syncing: BaaS best practices - Sergey Kukurudzyak - Backendless
 
Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"
Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"
Тимофей Лавренюк (Provectus): "Progressive Web Apps in Production"
 

Semelhante a Андрей Завадский "Бессерверная архитектура"

Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
Cisco Russia
 
Cisco ScanSafe. Защита web-доступа как услуга “из облака”
Cisco ScanSafe. Защита web-доступа как услуга “из облака”Cisco ScanSafe. Защита web-доступа как услуга “из облака”
Cisco ScanSafe. Защита web-доступа как услуга “из облака”
Cisco Russia
 
Тенденции в развитии сетей операторов связи
Тенденции в развитии сетей операторов связиТенденции в развитии сетей операторов связи
Тенденции в развитии сетей операторов связи
Cisco Russia
 
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...
CodeFest
 
Cisco ACI - инфраструктура, ориентированная на приложения: решаемые задачи, п...
Cisco ACI - инфраструктура, ориентированная на приложения: решаемые задачи, п...Cisco ACI - инфраструктура, ориентированная на приложения: решаемые задачи, п...
Cisco ACI - инфраструктура, ориентированная на приложения: решаемые задачи, п...
Cisco Russia
 

Semelhante a Андрей Завадский "Бессерверная архитектура" (20)

Jelastic для разработчиков ПО
Jelastic для разработчиков ПОJelastic для разработчиков ПО
Jelastic для разработчиков ПО
 
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
 
Cisco ScanSafe. Защита web-доступа как услуга “из облака”
Cisco ScanSafe. Защита web-доступа как услуга “из облака”Cisco ScanSafe. Защита web-доступа как услуга “из облака”
Cisco ScanSafe. Защита web-доступа как услуга “из облака”
 
Тенденции в развитии сетей операторов связи
Тенденции в развитии сетей операторов связиТенденции в развитии сетей операторов связи
Тенденции в развитии сетей операторов связи
 
Микросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс РоссияМикросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс Россия
 
Решения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущегоРешения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущего
 
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
Анна Якубенко, Татьяна Лебедева - SAP ERP в качестве backend для HTML5 прилож...
 
SDN в корпоративных сетях
SDN в корпоративных сетяхSDN в корпоративных сетях
SDN в корпоративных сетях
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, Skype
 
Cisco ACI: концепция инфраструктуры, ориентированной на приложения
Cisco ACI: концепция инфраструктуры, ориентированной на приложенияCisco ACI: концепция инфраструктуры, ориентированной на приложения
Cisco ACI: концепция инфраструктуры, ориентированной на приложения
 
Инфраструктура Cisco для построения облачной платформы
Инфраструктура Cisco для построения облачной платформыИнфраструктура Cisco для построения облачной платформы
Инфраструктура Cisco для построения облачной платформы
 
Symfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork EnterpriseSymfony в архитектуре Upwork Enterprise
Symfony в архитектуре Upwork Enterprise
 
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияПрограмма Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
 
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использованияПрограмма Cisco Powered Service Providers. Типы сервисов, модели использования
Программа Cisco Powered Service Providers. Типы сервисов, модели использования
 
Подходы к мониторингу информационных систем
Подходы к мониторингу информационных системПодходы к мониторингу информационных систем
Подходы к мониторингу информационных систем
 
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...
CodeFest 2010. Гаджибалаев Н. — сlass Server::Cloud &lt; Server::Hardware // ...
 
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
Микросервисный фронтенд / Вячеслав Слинько (ЦИАН)
 
Cisco ACI - инфраструктура, ориентированная на приложения: решаемые задачи, п...
Cisco ACI - инфраструктура, ориентированная на приложения: решаемые задачи, п...Cisco ACI - инфраструктура, ориентированная на приложения: решаемые задачи, п...
Cisco ACI - инфраструктура, ориентированная на приложения: решаемые задачи, п...
 
Modern apps Windows Azure
Modern apps Windows AzureModern apps Windows Azure
Modern apps Windows Azure
 
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
Развитие решений Cisco для ЦОД глазами специалиста по серверам и приложениям...
 

Mais de Fwdays

Mais de Fwdays (20)

"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y..."How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
"How Preply reduced ML model development time from 1 month to 1 day",Yevhen Y...
 
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
"GenAI Apps: Our Journey from Ideas to Production Excellence",Danil Topchii
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets"What is a RAG system and how to build it",Dmytro Spodarets
"What is a RAG system and how to build it",Dmytro Spodarets
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi"Distributed graphs and microservices in Prom.ua",  Maksym Kindritskyi
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
 
"Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl..."Rethinking the existing data loading and processing process as an ETL exampl...
"Rethinking the existing data loading and processing process as an ETL exampl...
 
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T..."How Ukrainian IT specialist can go on vacation abroad without crossing the T...
"How Ukrainian IT specialist can go on vacation abroad without crossing the T...
 
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ..."The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
"The Strength of Being Vulnerable: the experience from CIA, Tesla and Uber", ...
 
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu..."[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
"[QUICK TALK] Radical candor: how to achieve results faster thanks to a cultu...
 
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care..."[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
"[QUICK TALK] PDP Plan, the only one door to raise your salary and boost care...
 
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"..."4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
"4 horsemen of the apocalypse of working relationships (+ antidotes to them)"...
 
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout", Anast...
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout",  Anast..."Reconnecting with Purpose: Rediscovering Job Interest after Burnout",  Anast...
"Reconnecting with Purpose: Rediscovering Job Interest after Burnout", Anast...
 
"Mentoring 101: How to effectively invest experience in the success of others...
"Mentoring 101: How to effectively invest experience in the success of others..."Mentoring 101: How to effectively invest experience in the success of others...
"Mentoring 101: How to effectively invest experience in the success of others...
 
"Mission (im) possible: How to get an offer in 2024?", Oleksandra Myronova
"Mission (im) possible: How to get an offer in 2024?",  Oleksandra Myronova"Mission (im) possible: How to get an offer in 2024?",  Oleksandra Myronova
"Mission (im) possible: How to get an offer in 2024?", Oleksandra Myronova
 
"Why have we learned how to package products, but not how to 'package ourselv...
"Why have we learned how to package products, but not how to 'package ourselv..."Why have we learned how to package products, but not how to 'package ourselv...
"Why have we learned how to package products, but not how to 'package ourselv...
 
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin..."How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
 

Андрей Завадский "Бессерверная архитектура"