31
‹#› Артём Коломеец Проектирование сетевой инфраструктуры под SOA проекты ASP.NET ASP .NET Day 28.02.15

Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

  • Upload
    gosharp

  • View
    220

  • Download
    5

Embed Size (px)

Citation preview

Page 1: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

‹#›

Артём Коломеец

Проектирование

сетевой инфраструктуры

под SOA проекты ASP.NET

ASP.NET Day

28.02.15

Page 2: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

2Go

# C

on

fere

nce

s

Service Oriented Architecture

Page 3: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

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

Технологии

Page 4: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

4Go

# C

on

fere

nce

s

Решение бизнес задачи

Поддержка

Расширяемость

Нефункциональные требования

Требования к архитектуре проекта

Page 5: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

5Go

# C

on

fere

nce

s

Архитектура простого проекта

Frontend

Backend

Data Access InternalFacade

Contract

ExternalFacade

Page 6: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

6Go

# C

on

fere

nce

s

Публикация простого сервиса

HTTPS HTTP

TCPMSSQL

The best service

Database Internal

Client External

Page 7: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

7

Page 8: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

8Go

# C

on

fere

nce

s

Организация сети внутри компании

Internet

DEMILITARIZED

LAN

Page 9: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

9Go

# C

on

fere

nce

s

Аутентификации и авторизация

Безопасность

Доступность

Мониторинг

Требования к инфраструктуре

Page 10: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

10Go

# C

on

fere

nce

s

Инфраструктура - аутентификация

Использовать аутентификацию на стороне сервера

Page 11: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

11Go

# C

on

fere

nce

s

Инфраструктура - аутентификация

Использовать аутентификацию на стороне сервера

Опираться на доступные в IIS способы аутентификации

Page 12: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

12Go

# C

on

fere

nce

s

KerberosNTLM

Поддерживаемые типы Локальная аутентификация

Аутентификация домена

Аутентификация домена

Инфраструктура - аутентификация

Не использовать Windows NT LAN Manager

Способ аутентификации Запрос - ответ Концепция доверенной

третьей стороны (TTP)

Совместимые платформы Все платформы Windows Windows 2000 и поздние

UNIX

Взаимная аутентификация

Делегировании

аутентификации

Поддержка регистрации с

помощью смарт-карт

-

-

-

+

+

+

Page 13: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

13Go

# C

on

fere

nce

s

Configuration locking

Page 14: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

14Go

# C

on

fere

nce

s

Аутентификация сервиса

HTTPS HTTP

TCPMSSQL

The best service

Database Internal

Client External

Windows NTLM Windows Kerberos

Page 15: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

15Go

# C

on

fere

nce

s

Инфраструктура - авторизация

Внутри домена для выдачи прав использовать группы

Active Directory

Для авторизации внешних пользователей использовать

сертификаты

INTERNET DEMILITARIZED LAN

Page 16: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

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

Разделение способов авторизации

Page 17: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

17Go

# C

on

fere

nce

s

Инфраструктура - безопасность

Внешние сервисы должны быть защищены от DDOS

Для Web-сервисов не использовать настройки прокси,

распространяемые групповыми политиками

Page 18: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

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

Page 19: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

19Go

# C

on

fere

nce

s

Подключение proxy в приложении

<system.net>

<defaultProxy useDefaultCredentials="true">

<proxy proxyaddress="proxyAddress" />

</defaultProxy>

</system.net>

Page 20: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

20Go

# C

on

fere

nce

s

Инфраструктура - доступность

Доступность сервиса 99.9%

Network Loading Balancing

High Availability

Page 21: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

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

Page 22: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

22Go

# C

on

fere

nce

s

Инфраструктура - доступность

Доступность сервиса 99.9%

Network Loading Balancing

Stateless

Не хранить жёсткую привязку к ресурсам

Не хранить очереди

Page 23: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

23Go

# C

on

fere

nce

s

Shared configurations

Page 24: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

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

Page 25: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

25Go

# C

on

fere

nce

s

Инфраструктура - доступность

Приложения должны уметь автоматически

переключаться на зеркало базы данных

<connectionStrings>

<add connectionString=“

Data Source=ServerAddress;

Failover Partner=MirrorServerAddress;

Initial Catalog=DataBase;

Integrated Security=True;“ />

</connectionStrings>

Page 26: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

26Go

# C

on

fere

nce

s

Инфраструктура - мониторинг

GeoDNS сервисы должны иметь механизм, позволяющий

проверить сервис на работоспособность по всем

регионам

Мониторинг агенты разносить вместе с сервисом

DNS для мониторинга

Page 27: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

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

Публикации для мониторинга

Page 28: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

28Go

# C

on

fere

nce

s

Инфраструктура - мониторинг

Клиентские сертификаты должны быть открыты для

возможности мониторинга их валидности

Local machine container

Page 29: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

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

Page 30: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

30Go

# C

on

fere

nce

s

1 ответственность – 1 владелец

Способность к расширению

Общение по средствам публикаций

Независимость от деталей реализации

Важные аспекты

Page 31: Проектирование сетевой инфраструктуры под SOA проекты ASP.NET

‹#›

Go

# C

on

fere

nce

s

Артём Коломеец

Вопросы?