오픈소스 게임 서버 엔진 스터디 캠프 - cloudbread

140
CloudBread http://aka.ms/cbp

Upload: dae-kim

Post on 08-Jan-2017

981 views

Category:

Software


0 download

TRANSCRIPT

Page 1: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread

http://aka.ms/cbp

Page 2: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Facebook CloudBread 그룹가입

http://aka.ms/cbfb

또는”CloudBread”로페북검색후가입

Page 3: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

1회 Unity 개발자를위한CloudBread Camp Hands-on 콘텐트

https://github.com/CloudBreadProject/1st-D.Camp-Offline-Camp

Page 4: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Welcome to CloudBread!

Page 5: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

무료오픈소스프로젝트 - CloudBread

- 앱 개발에 집중

- 파라미터에 맞춰 호출

- 예제 테스트 앱 제공

- REST 호출 함수 만들 필요 없음

- 앱의 코드는 바뀌지 않음

- IaaS보다 진화한 PaaS 클라우드

- Scale Up – Out 선택은 자유

- 서비스 구조에 맞는 기능 선택

- 보안 구조 / 데이터 암호화 선택 가능

- GM 관리자 도구 제공

- 기본 배치(DAU, HAU, DARPU) 제공

- 무료 기술 교육 제공(헤카톤/캠프)

(대부분이미다만들어진)무료오픈소스(MIT) 프로젝트모바일게임과앱에최적화된게임서버엔진

Page 6: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

목표CloudBread 연동!!!

Page 7: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

제가참좋아하는“국민게임”

Page 8: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

게임데이터처리

Page 9: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

공지사항 - Notice

Page 10: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

이벤트 - Event

Page 11: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

선물 - Gift

Page 12: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

게임정보-GameInfo, 랭킹-Rank, 아이템-Item

Page 13: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

멤버아이템-memberitem

Page 14: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

게임내아이템추가+상태변경

Page 15: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

게임후아이템추가+상태변경

Page 16: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

아이템앱내구매 - Purchase

Page 17: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Push

Page 18: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

인증 - 3rd party authentication

Page 19: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

서버정보+리소스 - serverinfo

Page 20: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Imagine

어떻게서버와통신을?

Page 21: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread Unity AppDEMO

Page 22: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

클라이언트디바이스와CloudBread 게임서버의

은밀한~ 통신

Page 23: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

HTTPREST APIJSON

Page 24: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

이벤트 조회 API : SelGameEvents 를 호출한다.

HTTP Request 요청 구조

{

memberID = “member1”

}

HTTP Response 응답 구조

{

EventID =“eventID1”, EventName=“크리스탈1”, 기간=…

EventID =“eventID2”, EventName=“좋은템1”, 기간=…

EventID =“eventID13, EventName=“보너스아이템”, 기간=…

}

Unity App에서본그대로~!

Page 25: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

이벤트 조회 API : SelGameEvents 를 호출한다.

HTTP Request 요청 구조

{

memberID = “member1”

}

HTTP Response 응답 구조

{

EventID =“eventID1”, EventName=“크리스탈1”, 기간=…

EventID =“eventID2”, EventName=“좋은템1”, 기간=…

EventID =“eventID13, EventName=“보너스아이템”, 기간=…

}

Unity App에서본그대로~!

API ???

Page 26: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

API 리스트Game Logic = Behavior

Game Logic -> APIAPI 추가, 수정이간편!

Page 27: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Behavior 리스트http://aka.ms/cbp

-> wiki –> Behavior 리스트문서

Page 28: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Behavior = 행위Object = 대상

데이터베이스!

Page 29: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

회원 : Member

관리자 : Admin

구매 : Purchase

아이템 : Item

멤버아이템 :

MemberItem

게임정보 : GameInfo

스테이지 : Stage

선물 : Gift

공지사항 : Notice

이벤트 : Event

쿠폰 : Coupon

Page 30: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread DB 디자인http://aka.ms/cbp

-> wiki –> database 디자인문서

Page 31: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Postman 데모

Page 32: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

공지사항 - Notice

Page 33: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

공지사항CBSelNotices

Page 34: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

이벤트 - Event

Page 35: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

이벤트CBSelGameEvents

Page 36: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

선물 - Gift

Page 37: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

이벤트CBSelGiftItemToMe

Page 38: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

게임정보-GameInfo, 랭킹-Rank, 아이템-Item

Page 39: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

게임정보CBComSelMemberGameInfoes

랭킹GetMemberRankbyMeberID

GetRangeRankerInfoCBRank-GetTopXRanker

Page 40: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

멤버아이템-memberitem

Page 41: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

멤버아이템CBSelMemberItems

Page 42: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

게임내아이템추가+상태변경

Page 43: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

게임후아이템추가+상태변경

Page 44: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

아이템사용AddUseMemberItem

Page 45: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

아이템앱내구매 - Purchase

Page 46: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

구매CBComSelMemberItemPurc

hase

Page 47: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

PostmanHands on

Page 48: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread Unity App “CODING"

Page 49: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

HTTP Request 실습

Page 50: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

유니티 WWW 클래스사용UnityEngine.WWW

Page 51: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Unity HTTP Request 실습

Page 52: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

HTTP Request 실습

Page 53: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

HTTP Request 실습

Page 54: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Unity Demo

홍윤석

Page 55: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread SocketDemo

한바환

Page 56: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

WEB APPS

How to install CloudBread-Socket.IO

Type

Page 57: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

About Socket.IO

한바환

Page 58: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Web Socket

Page 59: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

WEB APPS

Allow web-socket

Connect to Redis

How to install CloudBread-Socket.IO

Page 60: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread Admin-Web 데모김대우

Page 61: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Front-End API 서버Socket 서버AdminWeb 서버

Page 62: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBreadservice architecture

Page 63: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread – (2) “Cumulonimbus” project architecture design - Full PaaS – most “flexible” & wide range of game & app service

Transactional Data

Azure SQL Database – Elastic #N

Or SQL VM #N

Game log data

Azure Table storage #N

Azure Mobile App #1

Azure Mobile App #N

Log & schedule queue

Azure Queue storage #

Redis cache #N

Scheduler + Worker

Azure Web Job #1

Log processor + Scheduled Job

Scheduler + Worker

Azure Web Job #N

Log processor + Scheduled Job

Socket Auth, Leader

board(Ranking), Data Cache

Redis cache #N

CDN

AdminWeb

Socket Server #1

Realtime communication

Socket Server #N

Realtime communication

Page 64: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

직접다클라우드에만들자한방에!

Page 65: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

ARM 배포소개김정현

Page 66: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Your application code

Required resources Your infrastructure code

Page 67: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Azure: Resources (IaaS, PaaS)You: Code (application, infrastructure)

Page 68: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

How to deployment

Fork the Cloudbread-ARM project

Click the [Deploy to Azure] button

Input parameters and Create resource group 주의사항● postfix app name

- 오직소문자또는숫자

- 16자이내

● SQL server login ID

- admin 이란 ID 사용불가

● SQL server login password

- 최소 8자

- 하나이상의특수문자필수

Page 69: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

ARM DEMO & Hands on

김정현

Page 70: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Authentication 인증

Page 71: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

인증 - 3rd party authentication

Page 72: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Azure Mobile App 인증이란?

Azure 에서제공하는회원아이디관리, 회원인증관리등의편리한기능

Page 73: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

어떻게회원인증처리를할까?

HTTP Rest Request 를할때마다

암호화된 Token 를같이보내자!

CloudBread on Azure가발급하는

Token 을가지고있을때만대답하자!

(Response)

컨셉Request Header 에올바른 Token을넣었을때

”Hello”

정상적인응답을받음!

Page 74: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

어떻게회원인증처리를할까?

HTTP Rest Request 를할때마다

회원 ID (Token) 를같이보내자!

CloudBread on Azure 가발급하는

Token 을가지고있을때만대답하자!

(Response)

컨셉 Request Header 에틀린 Token을넣었을때

”[Error] ”

응답을못받음!

Page 75: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

이렇게편리한 Token 어떻게받지?

ID : LoveCloudBread

PW : **************

페이스북계정

Google + 계정

Microsoft 계정

CloudBread(MS Azure)

각사이트에서발급한토큰

자체인증… 구현…ㅠㅠ

어차피유저들이안써…

Page 76: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Azure Mobile App 인증

Page 77: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Facebook authentication in Unity Demo

홍윤석

Page 78: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

1. 열심히게임을만든다. (Unity로…)

2. 페이스북개발자페이지에서앱을 생성한다.

(http://developers.facebook.com)

3. Azure 에서생성된 Mobile App 에서페이스북인증등록을한다.

4. Facebook SDK for Unity 를다운받는다.

(https://developers.facebook.com/docs/unity)

5. 예제 Copy & Paste

6. 끝!

CloudBread회원인증

페이스북로그인 CloudBread 에서발급한토큰페이스북에서발급한토큰

Facebook SDK 유니티용없음…

Page 79: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

https://developers.facebook.com

Page 80: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

http://<your ID>.azurewebsites.net

Page 81: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Settings -> Advanced

http://<your ID>.azurewebsites.net/login/facebook

Page 82: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Azure Portal : https://portal.azure.com

Page 83: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

https://developers.facebook.com/docs/unity

Page 84: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Unity로응답하라!

CloudBread Coding

홍윤석

Page 85: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread 배포

1st-D.Camp-Offline-Camp리포지토리참조

Page 86: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread 배포데모

Page 87: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

데이터베이스연결문자열

(connection String)

1st-D.Camp-Offline-Camp리포지토리참조

Page 88: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

DB 설치

Page 89: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

DB 설치데모

Page 90: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread 설정

Page 91: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread Socket 배포/설정

Page 92: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread Scheduler 배포

Page 93: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread Scheduler 설정

Page 94: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread 관리자페이지Admin Web 배포

Page 95: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread 관리자페이지Admin Web 설정

Page 96: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread
Page 97: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Appendix

Page 98: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Why need Socket.IO?To enable servers real-time communicate with clients

Page 99: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

WEB APPS

How to install CloudBread-Socket.IO

Needs

Type

Page 100: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

WEB APPS

How to install CloudBread-Socket.IO

/tools/tasks/deploy.js

Match your web app credentials

Page 101: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Game server에왜필요할까?

Client game

developer Game server

Database

Cloud service

서버, 데이터베이스관리하는시간을절약

Page 102: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread –추상화디자인아키텍처

데이터저장소 – SQL

(암호화)

로그데이터저장소 – NoSQL

(암호화)

FE 모바일응답서버 #N

배치성작업(일배치/시배치/월배치)

및비실시간성데이터처리를위한큐(Queue) 저장소

중간작업자배치작업처리기어뷰징규칙 / 푸쉬알림로그라우팅처리기 #N

작업스케쥴러(Trigger)

데이터출력캐시랭킹서비스를위한캐시

관리자페이지

Page 103: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread – (2) “Cumulonimbus” project architecture design - CloudBread Front-End 서버, Socket 서버와Admin webpage 서버

Transactional Data

Azure SQL Database

Or SQL VM #N

Game log data

Azure Table storage #N

Azure Mobile App #1

Azure Mobile App #N

Log & schedule queue

Azure Queue storage #

Redis cache #N

Scheduler + Worker

Azure Web Job #1

Log processor + Scheduled Job

Scheduler + Worker

Azure Web Job #N

Log processor + Scheduled Job

Socket Auth, Leader

board(Ranking), Data Cache

Redis cache #N

CDN

AdminWeb

Socket Server #1

Realtime communication

Socket Server #N

Realtime communication

Page 104: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread – (2) “Cumulonimbus” project architecture design - Transactional Data 처리

Transactional Data

Azure SQL Database

Or SQL VM #N

Game log data

Azure Table storage #N

Azure Mobile App #1

Azure Mobile App #N

Log & schedule queue

Azure Queue storage #

Redis cache #N

Scheduler + Worker

Azure Web Job #1

Log processor + Scheduled Job

Scheduler + Worker

Azure Web Job #N

Log processor + Scheduled Job

Socket Auth, Leader

board(Ranking), Data Cache

Redis cache #N

CDN

AdminWeb

Socket Server #1

Realtime communication

Socket Server #N

Realtime communication

Page 105: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread – (2) “Cumulonimbus” project architecture design - DB 캐시

Transactional Data

Azure SQL Database

Or SQL VM #N

Game log data

Azure Table storage #N

Azure Mobile App #1

Azure Mobile App #N

Log & schedule queue

Azure Queue storage #

Redis cache #N

Scheduler + Worker

Azure Web Job #1

Log processor + Scheduled Job

Scheduler + Worker

Azure Web Job #N

Log processor + Scheduled Job

Socket Auth, Leader

board(Ranking), Data Cache

Redis cache #N

CDN

AdminWeb

Socket Server #1

Realtime communication

Socket Server #N

Realtime communication

Page 106: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread – (2) “Cumulonimbus” project architecture design -게임로그저장

Transactional Data

Azure SQL Database

Or SQL VM #N

Game log data

Azure Table storage #N

Azure Mobile App #1

Azure Mobile App #N

Log & schedule queue

Azure Queue storage #

Redis cache #N

Scheduler + Worker

Azure Web Job #1

Log processor + Scheduled Job

Scheduler + Worker

Azure Web Job #N

Log processor + Scheduled Job

Socket Auth, Leader

board(Ranking), Data Cache

Redis cache #N

CDN

AdminWeb

Socket Server #1

Realtime communication

Socket Server #N

Realtime communication

Page 107: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread – (2) “Cumulonimbus” project architecture design -실시간통신 – Socket 서버

Transactional Data

Azure SQL Database

Or SQL VM #N

Game log data

Azure Table storage #N

Azure Mobile App #1

Azure Mobile App #N

Log & schedule queue

Azure Queue storage #

Redis cache #N

Scheduler + Worker

Azure Web Job #1

Log processor + Scheduled Job

Scheduler + Worker

Azure Web Job #N

Log processor + Scheduled Job

Socket Auth, Leader

board(Ranking), Data Cache

Redis cache #N

CDN

AdminWeb

Socket Server #1

Realtime communication

Socket Server #N

Realtime communication

Page 108: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread – (2) “Cumulonimbus” project architecture design -대량로그저장

Transactional Data

Azure SQL Database

Or SQL VM #N

Game log data

Azure Table storage #N

Azure Mobile App #1

Azure Mobile App #N

Log & schedule queue

Azure Queue storage #

Redis cache #N

Scheduler + Worker

Azure Web Job #1

Log processor + Scheduled Job

Scheduler + Worker

Azure Web Job #N

Log processor + Scheduled Job

Socket Auth, Leader

board(Ranking), Data Cache

Redis cache #N

CDN

AdminWeb

Socket Server #1

Realtime communication

Socket Server #N

Realtime communication

Page 109: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

CloudBread – (2) “Cumulonimbus” project architecture design - Scheduler / Batch 서비스

Transactional Data

Azure SQL Database

Or SQL VM #N

Game log data

Azure Table storage #N

Azure Mobile App #1

Azure Mobile App #N

Log & schedule queue

Azure Queue storage #

Redis cache #N

Scheduler + Worker

Azure Web Job #1

Log processor + Scheduled Job

Scheduler + Worker

Azure Web Job #N

Log processor + Scheduled Job

Socket Auth, Leader

board(Ranking), Data Cache

Redis cache #N

CDN

AdminWeb

Socket Server #1

Realtime communication

Socket Server #N

Realtime communication

Page 110: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Azure App ServiceBuild and scale great cloud apps

Web Apps

Mobile Apps

Logic Apps

API Apps

Page 111: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

App Service - one integrated offering

Web Apps

Web apps that scale with your business

Mobile Apps

Build Mobile apps for any device

Page 112: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Develop apps with….NET | Node.js | PHP | Python | Java

Page 113: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Benefits of App Services

Automatic OS patching

Enterprise-grade security

High availability

Automated scale out/in

Built-in load balancing

Supports many languages and platforms

.NET, Node.js, Python, Ruby and many more

Easy continuous deployment

Continuous delivery from third-party source control providers

Built-in Git repo

Page 114: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Mobile Apps

Page 115: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

New capabilities for Mobile apps:

• Webjobs for long running tasks

• CI with GitHub, BitBucket, VSO

• Auto-load balance, Autoscale, Geo DR

• Virtual networking and hybrid connections

• Site slots for staged deployments

Mobile services plus

a whole lot more

MOBILE APPS

Page 116: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Azure Mobile Services

Storage

Authentication

Logic

Push

Scheduler

Page 117: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Structured Storage

Powered by SQL Database

Supports rich querying capabilities

Dynamic Schematization

Data management in: Azure Portal

SQL Portal (Silverlight)

SQL Management Studio

REST API

Azure CLI Tools

SQL CLI

Microsoft Azure

Page 118: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Server Side Table Scripts

Node.js scripts

Intercept CRUD requests

to tables

Passes through to SQL by

default

Fully customizable

.NET Web API

backend in

Visual Studio

MongoDB, Table Storage,

SQL out of the box

Page 119: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Custom API

Non-table based endpoints

Accessible from GET

POST

PUT

PATCH

DELETE

For node.js logic in scripts like table endpoints

For .NET delivered through a WebAPI

Expose any functionality you want

120Microsoft Azure

Page 120: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Web Apps

Page 121: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

WEB APPS

Full capability set available including:

• .NET, Node.js, Java, PHP, and Python

• WebJobs for long running tasks

• Integrated VS publish, remote debug…

• CI with GitHub, BitBucket, VSO

• Auto-load balance, Autoscale, Geo DR

• Virtual networking and hybrid connections

• Site slots for staged deployments

Web apps run as-is

no changes required

Page 122: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Azure App Service Web App

Public Site Extensions Private Site Extensions

Web Site Kudu Web Jobs

Monaco MSDeploy Build/Upload Your Own

Gallery

App Service Web App

Page 123: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

WebJobs

Page 124: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Light-weight CPU Intensive Tasks

run.cmd, run.bat run.exe run.ps1 run.sh run.php run.py run.js

BlobTrigger, TableTrigger, QueueTrigger, ServicebusTrigger

Scale: Singleton, Multi-instance

Job Type: On-Demand, Scheduled, Continuous

WebJobs SDK Feature:

Deployment: Portal, Visual Studio, CLI, Git

Page 125: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

WebJobs

Page 126: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

WebJobs

Page 127: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Logic Apps

Page 128: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Continous Delivery with App Service

Page 129: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Continuous integration

Page 130: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Continuous Deployment for Web Apps

Web App

Production Slot

Source Control / Code Repo Web App

Staging Slot

Commits

Agility through Continuous Deployment

Auto-Swap

Changes

Hooks

Git pull

Developer

Page 131: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

GitHubVisual Studio

Online

Git BitBucketCodePlex DropBox FTP

Choose your own adventure!

Source Control for Web/API/Mobile Apps

Page 132: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

AutoScale

Page 133: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

AutoScale

Page 134: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

AutoScale

Page 135: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

AutoScale

Page 136: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

App Service Environment

Page 137: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

New Premium Tier Feature

Dedicated compute resources and network resources

Increased Scaling Options

Directly created in a Virtual Network

Support all Web App features and capabilities

Support Web, Mobile and API Apps

Global Scale

App Service Environment (ASE)

Page 138: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread
Page 139: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

Presenter

Page 140: 오픈소스 게임 서버 엔진 스터디 캠프 - CloudBread

App Service Environment