2014 년 4 월 IaaS 는기본, PaaS 로도약. Microsoft Azure! Session 1 웹사이트운영, 이보다쉬울수없다! Microsoft Azure 를이용한웹사이트의구축 - 한국마이크로소프트이건복이사
목차 Azure Web Sites의정의아키텍처구성규모조정 / 배포 / 디버깅 / Web Jobs
About Me? 이건복 kblee@microsoft.com Senior Program Manager TED (Technical Evangelism & Development) Microsoft Twitter: @Keonlee
웹사이트? 시스템업데이트 <HTML> </HTML> Web Sites (.NET, PHP, Java, NodeJs) Web Server (IIS, Apache, WAS) Server (Windows, Linux) H/W (Core, CPU, Memory) Network (DNS, SSL, LB) Code + Configuration Infrastructure 트래픽관리 소스관리 부하분산 비용 + 시간 + IT 자원 보안
Microsoft Azure Website 호스팅기본구조 Application Load Balancer 서버 Site Site Site 서버 Site Site Site 콘텐트 Config 정보 저장소 FTP Web Deploy
Demo Hello World! WebMatrix 를이용한 간단한웹사이트의구현과코드의배포
Azure Web Sites 웹사이트구축을위한강력한기반플랫폼서비스제공 Start Simple 무료사용인스턴스제공, 스케일조정, 웹개발내용에만집중 Be Brilliant ASP.NET, Python, PHP, Node.js, Java 지원 Windows, OSX 및 Linux 에서개발가능 Go Live 빠른배포 성능모니터링 빠른진단과수정
Start Simple
Be Brilliant
Go Live
웹사이트의동작방식 클라우드디자인컨셉 SQL 기반의구성정보동적프로비저닝네트워크저장공간 (Azure xdrive, SMB, NAS, SAN) Stateless 웹서버 ( 동기화불필요 ) 동적부하분산모델
IIS ARR (LB) 웹서버 1. 웹사이트요청을 LB 에서처리 2. 런타임 DB 로부터정보를 ARR 이가져오고어떤웹서버가호스팅을할것인지확인 (WebSites 는웹팜을모니터링 ) Azure LB Runtime DB Web Site DB 3. ARR 이해당요청을지정된웹서버로전달 4. 웹서버는사이트를프로비저닝 저장소 Controller 5. 웹서버는사이트 DB 에요청을처리 * ARR(Application Request Routing) http://www.iis.net/downloads/microsoft/application-request-routing
IIS ARR (LB) 웹서버 1. foo.com 에대한요청이 LB 로부터도달하면 ARR 이처리 2. ARR 은 foo.com 를기억하고있다가해당웹서버로요청을전달 Azure LB Web Site DB 3. 웹서버사이트 DB 와사이트의내용을처리 저장소 Controller
IIS ARR (LB) 웹서버 모든 DB 는 SQL Database 에서운영 Azure Blob Azure LB Runtime DB Web Site DBs Azure Worker Roles API Frontend 배포서버 저장소 Controller Cloud Drive
IIS ARR (LB) 웹서버 모든 DB 들은 SQL Databa se 에서처리 Site (W3WP.exe) Azure Blobs 저장소 Azure LB Runtime DB Metering DWAS Web Site DB Windows Azure Worker Roles 리소스모니터링 API Frontend Dynamic Web Activation Service 배포서버 저장소 Controller Cloud Drive W3WP.exe IIS Application Pool Process
웹사이트크기조정 Scale Out 공유인스턴스 (Shared Instances) 다른클라우드서비스상에서여러인스턴스추가되어실행 공유인스턴스의경우용량의한계를가지고있음 Scale Up 지정인스턴스 (Reserved Instances) 특정할당된시스템기반에서수행 공유자원에대한제한이없음 다수의 HTTP 요청에대한처리 지역상태정보를가지고있는응용프로그램에적합
web sites SHARED INSTANCES
web sites SHARED INSTANCES
web sites SHARED INSTANCES RESERVED INSTANCE
web sites RESERVED INSTANCE
web sites RESERVED INSTANCE RESERVED INSTANCE
웹프레임워크
Demo Node.js 를이용한웹사이트의구축
배포방식의선택
Demo TFS와 Git을이용한코드의배포와관리 - TFS - Git - Visual Studio Online
진단및모니터링
디버깅 Visual Studio 에서 Azure 에게시된웹사이트를원격에서디버깅가능 절차 1. Visual Studio 웹사이트선택 2. Azure로배포 (Debug모드로 Publish) 3. Azure포털에서디버그모드로설정 4. Visual Studio에서원격디버깅프로세스
Web Job 특정프로그램을실행하거나웹사이트내의스크립트를실행 로그파일정리또는특정명령의수행 이미지파일처리큐처리 RSS 수집파일관리기타오랜시간수행되는프로세스 ( 이메일전송 ) 지원가능한스크립트.cmd,.bat,.exe (using windows cmd).ps1 (using powershell).sh (using bash).php (using php).py (using python).js (using node) 스크립트의실행 : 항상, 일정에따라, 요청시 Web Jobs SDK: Install-Package Microsoft.WindowsAzure.Jobs.Host -pre
Demo Web Jobs SDK 를이용한 Blob 작업수행
Microsoft Azure Traffic Manager
Demo Traffic Manager 를이용한고가용성웹사이트
웹을위한 Azure 서비스의선택 모던웹프로그램 클라이언트스크립트와콘텐트그리고간단한 DB 접근의내용으로구성된웹페이지를제공하고자할때 지속적인개발방법 TFS 또는 Git 을이용하여소스코드의관리와배포를동시에하고자할때 다계층웹응용프로그램 Web 과 Worker Role 을이용하여비동기처리를할수있으며백그라운드에서작업을처리하고로직과 UI 를구분하여처리하는경우 추가적인관리기능 원격데스크톱연결과추가적인권한관리기능이필요한경우 기업용프로그램 기존에운영중인기업용프로그램의사용하는웹프로그램 (ISQL 서버, SharePoint, 또는 AD) 기존 LOB 성업무 App 의전환 프로그램을수정하지않고 VHD 만을업로드하여시스템을구성하는경우 오픈소스의사용 단순한몇번의클릭으로인기있는오픈소스기반의엔진을이용하여 CMS 사이트구축 WordPress, Joomla!, Drupal, DotNetNuke Umbraco 네트워크기능이필요한경우 분리된네트워크환경구성이필요한클라우드응용프로그램을운영하는경우 (VPN, 가상네트워크 ) Windows 또는 Linux 운영체제 특정운영체제의기능을활용하는경우. Windows Server 또는특정버전의 Linux. 를사용하는경우
Web Sites 와 Web Role 의기능비교
Microsoft Azure 웹갤러리
Azure Web Sites 서비스 10 개 무료 공유 저장소 : 1GB 공유모드 100개 저장소 1GB 공유 \11,607 기본 표준 무제한 저장소 10GB 전용, SSL, 무중단, SLA 99.9% 무제한 저장소 : 50GB \66,960 \89,280 전용,SSL, 무중단, SLA 99.9%, Backup, Auto Scale, Production/Stage
Portal.Azure.Com
Q&A www.facebook.com/groups/krazure