이세션은제목부터화끈하다. 서버리스대규모리얼타임웹 시스템구축하기 김태영부장 / taeyo Senior Technical Evangelist OCP, Microsoft Korea
Senior Technical Evangelist Taeyo.NET( 태오사이트 ) 운영 기술서적집필 / 번역
응용프로그램플랫폼의진화
Serverless 컴퓨팅정의 Amazon Serverless computing allows you to build and run applications and services without thinking about servers. Serverless applications don't require you to provision, scale, and manage any servers. You can build them for nearly any type of application or backend service, and everything required to run and scale your application with high availability is handled for you. Microsoft With serverless computing, developers rely on cloudbased servers, infrastructure, and operating systems. The fact is, even though it s called serverless, servers are still involved. But, as a fully managed service, the setup, capacity planning, and server management are invisible to you because they re handled by the cloud provider. In a traditional environment, developers must provision and configure servers, install operating systems, and continually manage the infrastructure. With a serverless architecture, you re free to create, manage, and deploy apps that scale on demand without worrying about infrastructure. Google Serverless lets you write and deploy code without the hassle of managing the underlying infrastructure. It enhances developer productivity by helping focus on what matters the most building great applications and abstracting away the rest. Zero server management, no upfront provisioning, auto-scaling to meet traffic demands, and paying only for the resources used are just some of the benefits of serverless computing. Wikipedia Serverless computing is a cloud-computing execution model in which the cloud provider acts as the server, dynamically managing the allocation of machine resources. Pricing is based on the actual amount of resources consumed by an application, rather than on pre-purchased units of capacity. It is a form of utility computing.
Serverless 의의미 Serverless 컴퓨팅의개념 애플리케이션을단일기능 (Function) 의클러스터로분리하여 자동으로관리되는컴퓨팅리소스상에서 On-Demand로실행하는것 Microservices의확장 Serverless 는사실서버가없지않다 실제로는워크로드를처리하기위해서버가필요 사용자가서버를관리, 유지보수, 프로비저닝할필요가없다는의미 클라우드공급자가모든인프라를관리해준다 Serverless 는새로운것이아니다 Public 하이퍼스케일클라우드가등장하면서인기를급끌어올렸다
공통적인특성 $
공통적인특성 $ 서버의추상화 딱! 쓴만큼만과금
If 풍선 == App 내가니앱이다
SCALE UP
SCALE OUT
공통적인특성 $ 서버의추상화 필요하면즉시확장
TAXI 사용시간 주행거리
Serverless CPU 사용시간 메모리사용량
서버리스시나리오 이벤트가발생할경우어떤로직을수행할필요가있는모든곳에활용?...
What is Azure Functions? 통합된프로그래밍모델 더욱개선된개발경험 유연한호스팅옵션기존개발경험에영향을주지않으면서비즈니스요구에더적합한개발모델을선택
Function? 트리거
Azure Function 을활용한효율적인개발방식
데모 https://docs.microsoft.com/ko-kr/azure/functions/tutorial-static-website-serverless-api-with-database
Serverless 데모아키텍처및사용리소스 기존업로드파일목록가져오기 Serverless Web Pages 웹페이지접근 $web HTTP 트리거 GetImages 업로드 image Blob 트리거 ResizeImages Database for Serverless thumbnail GetUploadUrl Upload URL + Auth token 파일업로드를위한경로및토큰가져오기 HTTP 트리거 Serverless Backend A.I for Serverless
나는리얼타임 Web 에낚여서 아직앉아있는데그건언제이야기함?
Azure SignalR Service GA! https://azure.com/signalr 11 개리전에서현재사용가능 US: US East, US East 2, US Central, US West, US West 2 Canada: Canada East Europe: West Europe, North Europe APAC: Southeast Asia, Australia East, Japan East
SignalR 은리얼타임 HTTP 를가능하게하는추상화를제공하는오픈소스라이브러리 ( 매직이라고도불림 ) * 현재최대 100,000 connection 지원
SignalR 이란? 양방향서버 - 클라이언트통신 리얼타임웹기능을추가해주는오픈소스 WebSocket 연결관리
Azure SignalR 서비스의차별점 성능 (Performance) 확장성 (Scalability) 다양한백플레인 ( 예 : SQL Server, Redis Cache) 까지자동확장 필요한만큼 Unit 만추가하면된다 현재 Standard 기준 100,000 Connection 지원 가용성 (Availability) 99.9% Service-Level Agreement 그밖에 웹애플리케이션개발은필수조건이아니다 서버리스컴퓨팅활용가능 WebSocket 연결의부하분산도알아서척척
Flight Map: Realtime Monitoring Dashboard 비행지도 : 실시간모니터링대시보드 http://flightmap-demo1.azurewebsites.net/# https://github.com/aspnet/azuresignalr-samples/tree/master/samples/flightmap
Azure SignalR Service 여러분의앱과리얼타임통신을수행할수있게지원하는관리되는서비스 Client SignalR SignalR SignalR Client Client SignalR SignalR SignalR SignalR Azure SignalR Service SignalR App Server Client SignalR SignalR
예 #1 WebSocket SSE Long polling
데모시나리오
데모시나리오 Serverless Web Pages Store messages Serverless Backend Database for Serverless Send message Send messages Almost Serverless Realtime Messaging Real-time messages
데모 https://github.com/aspnet/azuresignalr-samples
Real-time 기술은어디에나필요합니다 쿨한애플리케이션에는리얼타임기술이필수!
마무리 Azure는훌륭한 Serverless 포트폴리오를제공한다 이제동접약 10만정도의 Realtime Web은이다 서버리스아키텍처는혼자서고민하기에는쉽지않다 전문가의도움이필요하다 가까운 Microsoft 직원과상의하세요
감사합니다