Архитектура за скалируема платформа за уеб хостинг с ...
-
Upload
jordan-grant -
Category
Documents
-
view
85 -
download
0
description
Transcript of Архитектура за скалируема платформа за уеб хостинг с ...
Архитектура за скалируема платформа за уеб хостинг с IIS
Владимир ЧалковCEOCrossroad Ltd.
Дата
За какво ще говорим
− Проблемът с уеб хостинг− Какво предлага IIS7 & 7.5
платформата− Добри практики− Полезни връзки
2
Проблемите
− Трябва да може да се стартира нетестван, пълен с бъгове и чуплив код по ефективен начин
− Изисквания:− Да се предотврати монополизирането
на съвръра от едно приложение− Да се изолират всички приложения
едно− Да се минимизират разходите− Да може да се скалира добре
3
Какво предлага IIS 7
− Подобрен модел на изпълнение− “on-demand” архитектура,
оптимизирана за хостинг− Гъвкава система за конфигуриране− Множество опции за
администриране− Command-line, scripts, APIs
− Много добри възможности за анализ на проблеми
4
Service Host (SVCHost.EXE)
HTTP.SYS Kernel-Mode Listener
Windows Process Activation Service
(WAS)
World Wide Web Service (W3SVC)
Configuration (applicationhost.
config)
Архитектура на IISWorker Process (W3WP.EXE)
Static File Handler
PHP
ASP.Net
Read Configuration
Authenticate
Authorize
Map Request
Handle Request
Send Response
Log Request
Worker Process (W3WP.EXE)
Static File Handler
PHP
ASP.Net
Read Configuration
Authenticate
Authorize
Map Request
Handle Request
Send Response
Log Request
Worker Process (W3WP.EXE)
Static File Handler
PHP
ASP.Net
Read Configuration
Authenticate
Authorize
Map Request
Handle Request
Send Response
Log Request
Worker Process (W3WP.EXE)
Static File Handler
PHP
ASP.Net
Read Configuration
Authenticate
Authorize
Map Request
Handle Request
Send Response
Log Request
Service Host (SVCHost.EXE)
HTTP.SYS Kernel-Mode Listener
Windows Process Activation Service
(WAS)
World Wide Web Service (W3SVC)
Worker Process (W3WP.EXE)
Applicationhost.config Static File Handler
PHP
ASP.Net
HTTP Protocol Host
Request Queue
HTTP Listener
Channel
Response Cache
Bindings: http://*:80:site1
Log Request
Send Response
Handle Request
Map Request
Resolve Cache
Authorize Request
Authenticate Request
Read Configuration
Обработка на една заявка
Какво предлага този модел− Хостинг на хиляди сайтове
− Ефективно управление на ресурсите− Активация при необходимост− Работните процеси спират при липса на заявки към
тях− Мониторинг на приложенията
− Рециклиране на application pools− Базирано на параметри (продължителност, брой заявки и
др.).− Може да се ограничи броя на процесите, които може да
са активни в даден момент.
− Изолация на уеб сайтовете− IIS 7.5 по подразбиране стартира всеки pool във
отделен виртуален акаунт.
7
Конфигурация
− Няма вече метабаза− Конфигурационната система е:
− Делегирана− Конфигурацията на IIS опциите става в същия
web.config файл, чрез който се настройва и самото приложение.
− Лесна за използване− Добре структуриран и четим XML файл− Прехвърлянето между сървъри става с копиране
− Гъвкава− Цели секции или отделни атрибути може да се
заключват− Промените влизат в сила веднага
8
Конфигурация
− Глобална конфигурация: ApplicationHost.config− Съдържа всички сайтове, appPools, настройки по
подразбиране и др.…− Пътя към този файл се определя от redirection.config− Позволява заключване на определени опции− Поддържа XCOPY прехвърляне на настройките на друг
сървър.− Разпределена конфигурация: Web.config
− Намира се при съдържанието на сайтовете− Може да е локално или на мрежата− Може да променя настройки, които не са заключени
− Метабазата я има като опционален компонент− Съвместимост− Не поддържа новите настройки9
Споделена конфигурация
− Позволява:− Пренасочване на пътя на
конфигурационния файл към мрежата− Бързо преместване на приложения или
сървъри− Поддържане на синхронизирана
конфигурация между няколко сървъра− Лесно управляване на промените
между различните среди (продукционна, тестова)
10
Администрация
− Потребителски интерфейс− Може да се разширява с допълнителни модули− Отдалечен достъп през HTTP(S)− Може да се делегира
− Command-line− APPCMD command-line tool, заменя ADSUTIL.VBS− PowerShell Snap-In and commandlets
− Скрипт− WMI Provider− PowerShell Snap-In and commandlets
− AhAdmin − COM interfaces
− Microsoft.Web.Administration (.NET API)
11
Анализ на проблеми
− Какво се случва в IIS? − Request Tracing
− Генерира детайлна информация за всяка заявка
− Run-time State and Control− Какво се случва в момента на сървъра
− Детайлни грешки− За локалния потребител има повече
информация
12
Разширения− Web Deployment Tool
− Пакетиране на приложения − Application Request Router 2.0
− Fail-over и хост базирано решение за рутиране на заявки
− FTP Server 7 and 7.5− Подобрена поддръжка на FTP
− Множество FTP сайтове без необходимост от отделни IP адреси− Интегрирано управление
− Разширяема идентификация и логове− Database Manager
− Олекотено срество за локална или отдалечена администрация на бази данни
Web Deployment Tool− Опростява управление на множество
инсталации− Синхронизира сървъри или сайтове на IIS 6.0, IIS 7.0,
7.5− Differential Sync
− Актуализира само промените
− Създава снимка на текущото състояние на сайт или сървър− Автоматизира инсталацията, може да се ползва за
възстановяване в последствие− Поддържа множество конфигурации
− IIS 6 and 7− Файлове и директории− SSL сертификати− .NET Assemblies,− Registry keys .,.
− Миграция IIS 6->7
Application Request Router 2.0− Рутиране на HTTP заявки, базирано на proxy− Решенията за рутиране се взимат на 7 ниво
(HTTP протокол)− Позволява повишаване на скалируемостта и
надеждността на уеб приложенията− Поддържа SSL-offloading − Не поддържа SSL tunneling− Може да работи на Server Core
ARR Hostname Affinity − ARR заявките от една сесия отиват
към един и същи сървър− Предварителни изисквания:
− Shared Configuration− Shared Content
Без hostname affinity
User
DNS
Internet
Web server
Content
Config
Web server
Content
Config
Web server
Content
Config
10.10.10.10:www.site1.com…www.site10.com
10.10.10.11www.site11.com…www.site20.com
10.10.10.12www.site21.com…www.site30.com
www.site1.com
10.10.10.10www.site2.com
10.10.10.10www.site3.com
10.10.10.11
С използването на ARR
User
DNS
Internet
Web server
Shared Content
Shared Config
Web server
Web server
10.10.10.10:10.10.10.11 10.10.10.12
www.site1.com
10.10.10.1www.site2.com
10.10.10.1www.site3.com
10.10.10.1
ARR
www.site1 to www.site30.com
Ползи от ARR Hostname Affinity− Заявките динамично се рутират− Лесно се добавят нови сървъри− Ресурсите се използват по-
равномерно− По-висока надеждност− Само една конфигурация трябва да
се управлява
Добри практики
− Ограничаване на консумацията на ресурси
− Изолация на уеб сайтовете− Подобряване на скалируемостта
Constraining Resource Consumption− Процесор
− Конфигурация на AppPool− WSRM
− Памет− Рециклиране− DynamicIdleThreshold
− Трафик− Media Pack Bandwidth Throttling
− Дисково пространство− In W2K8: квотите се дефинират вече на
ниво директория
Изолация− Винаги използвайте отделен
appPool за всеки сайт− Виртуални идентичности за Application
Pool− По подразбиране в IIS 7.5, има го и в
Windows Server 2008 SP2 (IIS 7.0)− Потребителя, който се ползва е “IIS
AppPool\<AppPool identity>”− Не работи, ако съдържанието на сайта е
на мрежово устройство
− Няма нужда от отделен анонимен потребител за всеки сайт
Скалируемост
− DynamicIdleThreshold− Динамично ще намали „idle timeout“ за
ako свободната памет намалее драстично
− 32-Bit Application Pools върху 64-битов сървър− По-малко памет− Настройва се чрез
Enable32BitAppOnWin64− Включването на динамичната
компресия може много да намали трафика
И на края− IIS 7 и 7.5 предоставят една
отлична платформа за ефективен хостинг на хиляди сайтове
− Разширенията, които можете да сложите допълнително допринасят много и заслужават да им обърнете внимание
25
Щанд „Технологични общества“
− Станете част от нашите технологичните общества
− Връзка с колеги и експерти
− Ask the Experts сесии
Изложбена залаНиво -1Photo (cc-by-sa) Chris Radcliff @ Flickr