Upload
gosharp
View
220
Download
5
Embed Size (px)
Citation preview
‹#›
Артём Коломеец
Проектирование
сетевой инфраструктуры
под SOA проекты ASP.NET
ASP.NET Day
28.02.15
2Go
# C
on
fere
nce
s
Service Oriented Architecture
3Go
# C
on
fere
nce
s
Веб-сервис ИнструментыИнфраструктура
ASP.NET
Backend Services
Frontend (Api/Handler)
Facade (Pattern)
Contract (Interface)
Windows Server
IIS
Azure
HTTP (HTTPS)
TCP (WCF)
DMZ - Demilitarized
Zone
NLB - Network Load
Balancing
HA - High Availability
Cluster
TMG - Microsoft
Forefront Threat
Management Gateway
Fortigate
Технологии
4Go
# C
on
fere
nce
s
Решение бизнес задачи
Поддержка
Расширяемость
Нефункциональные требования
Требования к архитектуре проекта
5Go
# C
on
fere
nce
s
Архитектура простого проекта
Frontend
Backend
Data Access InternalFacade
Contract
ExternalFacade
6Go
# C
on
fere
nce
s
Публикация простого сервиса
HTTPS HTTP
TCPMSSQL
The best service
Database Internal
Client External
7
8Go
# C
on
fere
nce
s
Организация сети внутри компании
Internet
DEMILITARIZED
LAN
9Go
# C
on
fere
nce
s
Аутентификации и авторизация
Безопасность
Доступность
Мониторинг
Требования к инфраструктуре
10Go
# C
on
fere
nce
s
Инфраструктура - аутентификация
Использовать аутентификацию на стороне сервера
11Go
# C
on
fere
nce
s
Инфраструктура - аутентификация
Использовать аутентификацию на стороне сервера
Опираться на доступные в IIS способы аутентификации
12Go
# C
on
fere
nce
s
KerberosNTLM
Поддерживаемые типы Локальная аутентификация
Аутентификация домена
Аутентификация домена
Инфраструктура - аутентификация
Не использовать Windows NT LAN Manager
Способ аутентификации Запрос - ответ Концепция доверенной
третьей стороны (TTP)
Совместимые платформы Все платформы Windows Windows 2000 и поздние
UNIX
Взаимная аутентификация
Делегировании
аутентификации
Поддержка регистрации с
помощью смарт-карт
-
-
-
+
+
+
13Go
# C
on
fere
nce
s
Configuration locking
14Go
# C
on
fere
nce
s
Аутентификация сервиса
HTTPS HTTP
TCPMSSQL
The best service
Database Internal
Client External
Windows NTLM Windows Kerberos
15Go
# C
on
fere
nce
s
Инфраструктура - авторизация
Внутри домена для выдачи прав использовать группы
Active Directory
Для авторизации внешних пользователей использовать
сертификаты
INTERNET DEMILITARIZED LAN
16Go
# C
on
fere
nce
s
HTTP
HTTPS
TCPMSSQL
Database Internal
Client External
Windows NTLM Windows Kerberos
Best frontend
Best backend
Client Certificate Mapping
Windows Kerberos
Windows Kerberos
HTTPS
Разделение способов авторизации
17Go
# C
on
fere
nce
s
Инфраструктура - безопасность
Внешние сервисы должны быть защищены от DDOS
Для Web-сервисов не использовать настройки прокси,
распространяемые групповыми политиками
18Go
# C
on
fere
nce
s
Защита сервисов от внешней сети
HTTP
HTTPS
TCPMSSQL
Database Internal
Client External
Windows NTLM Windows Kerberos
Best frontend
Best backend
Proxy
HTTPS
Client Certificate Mapping
Windows Kerberos
Windows Kerberos
DDOS Prevention
19Go
# C
on
fere
nce
s
Подключение proxy в приложении
<system.net>
<defaultProxy useDefaultCredentials="true">
<proxy proxyaddress="proxyAddress" />
</defaultProxy>
</system.net>
20Go
# C
on
fere
nce
s
Инфраструктура - доступность
Доступность сервиса 99.9%
Network Loading Balancing
High Availability
21Go
# C
on
fere
nce
s
Network Loading Balancing
HTTPS
Client
Best frontend 1
Client Certificate Mapping
Windows Kerberos
DDOS Prevention
Balancer
Best frontend 2
22Go
# C
on
fere
nce
s
Инфраструктура - доступность
Доступность сервиса 99.9%
Network Loading Balancing
Stateless
Не хранить жёсткую привязку к ресурсам
Не хранить очереди
…
23Go
# C
on
fere
nce
s
Shared configurations
24Go
# C
on
fere
nce
s
High Availability
Best backend 1
Active DB
MSSQL
Mirror DB
MIRRORING
Balancer
Best backend 2
Windows Kerberos
Windows NTLM Windows NTLM
25Go
# C
on
fere
nce
s
Инфраструктура - доступность
Приложения должны уметь автоматически
переключаться на зеркало базы данных
<connectionStrings>
<add connectionString=“
Data Source=ServerAddress;
Failover Partner=MirrorServerAddress;
Initial Catalog=DataBase;
Integrated Security=True;“ />
</connectionStrings>
26Go
# C
on
fere
nce
s
Инфраструктура - мониторинг
GeoDNS сервисы должны иметь механизм, позволяющий
проверить сервис на работоспособность по всем
регионам
Мониторинг агенты разносить вместе с сервисом
DNS для мониторинга
27Go
# C
on
fere
nce
s
HTTP external-creams.com
Best backend
Proxy
external-creams.comeu.external-creams.com
external-creams.com
us.external-creams.com
external-creams.com
ai.external-creams.com
Публикации для мониторинга
28Go
# C
on
fere
nce
s
Инфраструктура - мониторинг
Клиентские сертификаты должны быть открыты для
возможности мониторинга их валидности
Local machine container
29Go
# C
on
fere
nce
s
Важные аспекты
HTTP
HTTPS
TCP
Internal
Client
Windows Kerberos
Proxy
HTTPS
Client Certificate Mapping
DDOS Prevention
Best backend 1
Active DBMirror DB
MIRRORING
Balancer
Best backend 2
Windows Kerberos
Windows NTLM Windows NTLM
Best frontend 1
Client Certificate Mapping
Windows Kerberos
Balancer
Best frontend 2
external-creams.com
external-creams.comeu.external-creams.com
external-creams.com
us.external-creams.com
external-creams.com
ai.external-creams.com
30Go
# C
on
fere
nce
s
1 ответственность – 1 владелец
Способность к расширению
Общение по средствам публикаций
Независимость от деталей реализации
Важные аспекты
‹#›
Go
# C
on
fere
nce
s
Артём Коломеец
Вопросы?