Chủ đề
-
Tìm hiểu các kịch bản remote access(truy cập từ xa) chính và khi nào áp
dụng chúng.
-
Cung cấp remote access cho Microsoft® Visual Studio® 2005 Team
Foundation Server (TFS) của bạn qua Internet.
- Cải thiện việc thực hiện truy cập từ xa bằng cách sử dụng Team Foundation Server Proxy.
Xem trước
Chương này giải thích làm thế nào để
cung cấp truy cập từ xa(remote access) đến TFS qua Internet. Bạn có thể chọn từ một trong ba
tùy chọn sau để cung cấp remote access:
-
Bạn có thể cung cấp truy cập đến TFS qua một virtual private network
(VPN).
-
Bạn có thể cung cấp việc truy cập đến TFS thông qua một reverse proxy
như là Microsoft Internet Security và Acceleration (ISA) Server.
-
Bạn có thể đặt TFS server trên một extranet.
Các phiên bản của TFS trước Service
Pack 1 (SP1) chỉ hỗ trợ truy cập VPN. TFS SP1 thêm hỗ trợ cho Basic
authentication. Điều này cho phép các giải pháp extranet và reverse proxy cũng như
VPN.
Sử dụng chương này như thế nào
Sử dụng chương này để thiết lập TFS
server của bạn cho việc remote access qua Internet. Để đạt được những lợi ích tốt
nhất từ chương này, bạn nên:
-
Sử dụng danh sách các kịch bản(scenarios
list). Tham khảo danh sách các kịch bản để xác định một cách nhanh chóng
phương pháp nào bạn nên áp dụng để cung cấp việc truy cập ở bên ngoài Internet
đến server của bạn.
-
Sử dụng các walkthrough tham khảo.
Sử dụng các walkthrough trong chương này qua việc hướng dẫn từng bước về cài đặt
và cấu hình các certificates và Secure Sockets Layer (SSL) access được sử dụng
với Basic và Digest authentication.
-
Sử dụng phần "Improving Remote
Access Performance(Nâng cao hiệu suất truy cập từ xa)" . Đọc phần "Improving Remote Access Performance" để xác
định phương pháp để giảm số lượng lưu lượng truy cập mà cần phải được gửi qua
Internet.
Các chiến thuật chính
Sau đây là các giải pháp chiến lược
cho việc cung cấp truy cập từ xa(remote access) đến một TFS server:
-
Sử dụng một kết nối VPN connection.
TFS của bạn nằm bên trong internal network(mạng nội bộ), và các user ở bên ngoài truy cập vào nó qua một
VPN. Những user ở bên trong truy cập TFS một cách trực tiếp.
-
Publish TFS của bạn thông qua một
reverse proxy. TFS của bạn nằm bên trong internal network(mạng nội bộ), và một hay nhiều reverse proxy machines, như
là ISA Server, đem lại các client request từ Internet đến TFS của bạn.
-
Locate your TFS in the extranet
("hosted scenario"). Chỉ các external clients truy cập vào TFS của bạn, và
nó được đặt bên ngoài tường lửa trên một extranet.
Các kịch bản thông thường
-
Remote office. Nếu bạn đang hỗ
trợ remote users với truy cập VPN, sử dụng giải pháp VPN. Đây là giải pháp dễ
nhất để khuyến khích, cung cấp sự bảo mật dễ thực hiện, cho phép truy cập từ
xa(remote access) đến tất cả các chức năng của TFS, và cho phép bạn sử dụng TFS
Proxy để nâng cao khả năng thực thi.
-
Offshore team. Nếu bạn đang hỗ
trợ remote users mà không có truy cập VPN hoặc không truy cập đến domain, hãy sử
dụng các kịch bản reverse proxy scenario. Giải pháp này khó khăn hơn để cài đặt,
nhưng nó cho phép các remote users truy cập vào một vị trí bên trong TFS mà
không cần đến VPN.
-
Hosted community. Nếu bạn
đang hỗ trợ một tập hợp có nhiều remote user mà đang được sử dụng một TFS cài đặt
dành riêng cho họ sử dụng, như là một community development site(trang phát triển
giao tiếp), sử dụng các kịch bản extranet. Giải pháp này đem lại cho bạn sự
phân chia tốt nhất giữa các remote users và các internal network resources của
bạn.
Sử dụng một VPN connection
Hình 17.1 trình bày kiến trúc của
exposing TFS qua một VPN.

Với phương pháp này, nhóm phát triển
từ xa của bạn(remote development team) sử dụng kết nối trực tiếp đến một VPN
connection cho TFS của bạn trên mạng nội bộ(internal network). Nếu bạn có TFS
mà không có SP1, hoặc nếu bạn yêu cầu
Integrated Windows authentication, sau đó sử dụng một VPN connection chỉ là tùy
chọn của bạn. TFS được thiết kế để làm việc trên các tình huống có bandwidth thấp,
như là truy cập VPN , và cung cấp hiệu suất chấp nhận được khi sử dụng kịch bản
này.
Lợi ích
-
Tất cả các chức năng làm việc của TFS , gồm có TFS Proxy.
-
Phương pháp này hỗ trợ việc sử dụng Integrated Windows authentication và
cho phép bạn tận dụng cơ sở hạ tầng hiện
có.
-
Nếu bạn đã cài đặt một VPN, đây là giải pháp dễ nhất để chấp nhận.
Bất lợi
-
Một giải pháp VPN solution có thể không được thiết lập cho các cơ sở hạ
tầng của bạn, hoặc có thể không có sẵn cho các remote user của bạn.
Để có thêm thông tin về việc khởi tạo
một VPN, hãy xem http://support.microsoft.com/kb/324747
Publishing TFS thông qua một Reverse Proxy
Với phương pháp này, bạn install một
TFS server trên mạng nội bộ(internal network) của bạn và sử dụng chức năng ISA
Server Web publishing để biểu diễn nó tới external network. Các remote user
truy cập TFS qua SSL và sử dụng Basic authentication. Tùy chọn này sẽ không làm
việc nếu bạn không cài đặt TFS SP1.
Networks mà không có một domain controller trên perimeter
Hình 17.2 trình bày kiến trúc biểu
diễn TFS qua ISA với một domain controller trên internal network.

Nếu bạn không có một domain
controller trên perimeter network của bạn, bạn có thể mở một port trên firewall
để cho phép một Lightweight Directory Access Protocol (LDAP) connection từ ISA
Server đến internal domain controller của bạn, đặc biệt là đến các người sử dụng
xác thực ở bên ngoài TFS(authenticate external TFS users).
Networks có một domain
controller trên perimeter
Hình 17.3 trình bày kiến trúc biểu
diễn TFS qua ISA với một domain controller trong perimeter network.

Nếu bạn có một domain controller
trên perimeter network(mạng ngoại vi) của bạn, các remote users có thể xác nhận
là đúng một cách trực tiếp dựa vào perimeter domain controller. Một cách tin cậy
giữa internal và perimeter domain controllers là cho phép các external user
truy cập đến TFS server. Các internal user truy cập đến the TFS server một cách
trực tiếp, sử dụng Integrated Windows authentication.
Ưu điểm
-
Reverse proxies, như là ISA Server, xác minh các user và kiểm tra lưu lượng
truy cập.
-
Các remote user của bạn không cần truy cập đến domain.
-
Các remote user của bạn không cần truy cập đến VPN.
Nhược điểm
-
Bạn không thể sử dụng TFS Proxy tại các địa điểm từ xa
-
Các remote user của bạn không thêm các user vào các TFS group.
-
Các remote user của bạn không thêm các Microsoft Active Directory® group
vào các folder trong source control.
-
Các remote user của bạn sẽ không thể khởi động hay quản lý các build từ
xa.
-
Các remote user của bạn không thể tạo mới các team project.
-
Các remote user của bạn không thể công khai các kết quả kiểm thử với TFS
của bạn.
Note: Bất cứ khi nào bạn sử dụng Basic authentication, hãy sử
dụng SSL. Basic authentication transmits credentials trong clear text. Hảy sử dụng
SSL để bảo vệ thông tin này.
Đặt TFS trong một Extranet
("Hosted Scenario")
Hình 17.4 trình bày kiến trúc của
việc đặt TFS trong một extranet.

Với phương pháp này, bạn install
toàn bộ cơ sở hạ tầng của TFS -cả tầng application và tầng data -bên trong
perimeter network của bạn, off của internal intranet của bạn. Tất cả các kết nối
đến TFS của bạn thông qua Internet, dù là từ các người dùng bên ngoài hay bên
trong. TFS có thể làm việc với một domain controller (DC) hoặc không có DC. Nếu
perimeter network của bạn không truy cập đến một DC, các chức năng của Active
Directory service features của TFS sẽ không làm việc. Thí dụ, việc thêm các
user đến các TFS group, hay thêm một Active Directory group đến các folder
trong source control, sẽ không làm việc nếu không có một DC. Tùy chọn này sẽ
không làm việc nếu bạn không cài đặt TFS SP1.
Ưu điểm
-
Các TFS user của bạn được phân
chia rõ ràng từ internal network của bạn.
-
Các remote user của bạn không cần truy cập đến domain.
Nhược điểm
-
Bạn không thể sử dụng TFS Proxy từ các vị trí từ xa.
-
Các remote user của bạn không thể khởi động hay quản lý các build.
-
Các remote user của bạn không thể tạo mới các team project.
-
Các remote user của bạn không thể công khai các kết quả kiểm thử đến
TFS.
-
Các internal user phải kết nối đến extranet TFS thông qua SSL giống như
các external user.
Note: Bất cứ khi nào bạn sử dụng Basic authentication, hãy sử
dụng SSL. Basic authentication transmits credentials trong clear text. Hảy sử dụng SSL để bảo vệ thông tin này.
Basic Authentication / SSL
Nếu bạn đang sử dụng TFS SP1 và muốn
support các extranet hay reverse proxy scenario, bạn cần cho phép Basic
authentication over SSL by configuring IIS trên tầng TFS application của bạn. Với
Basic authentication, logon credentials được truyền qua Internet sử dụng một
unprotected Base64 encoded format. Để bảo vệ các client's credentials, chỉ cần
sử dụng Basic authentication qua một Secure HTTP (HTTPS) connection có sử dụng
SSL.
Sử dụng một Internet Server API
(ISAPI) filter để các remote client kết nối bằng cách sử dụng Basic
authentication over SSL, trong khi các local client vẫn kết nối bằng cách sử dụng
Integrated Windows authentication. The ISAPI filter tìm kiếm các client mà bạn
đã cấu hình như là "external/Internet"
và các strips out NTLM authentication trên 401 response để buộc các client này
sử dụng các phương pháp xác thực khác, như là Basic authentication.
Thông tin bổ sung
Team Foundation Server Proxy
Hình 17.5 trình bày kiến trúc của
việc sử dụng Team Foundation Server Proxy.

The TFS Proxy không yêu cầu cho
phép kết nối từ xa(remote access) nhưng là một optional cache cho các source
control files. Để giúp cải thiện năng suất từ các remote team experiences của bạn,
bạn có thể install một TFS Proxy trong các remote offices mà kết nối đến TFS của
bạn thông qua một VPN. Điều này nâng cao năng suất bằng việc lưu trữ các source
control files trên remote office's proxy server. Bất cứ khi nào các remote
client cần truy cập đến source code trong source control repository, nó sẽ yêu
cầu source từ TFS Proxy. The proxy sau đó sẽ trả về một local version từ cache của
nó nếu nó có sẵn. Nếu source không có trong cache, the proxy sẽ yêu cầu source
từ remote TFS server. Điều này giảm thiểu
network traffic và cải thiện source control responsiveness tại các vị trí từ
xa(remote location).
Mẹo để nâng cao năng suất proxy
Hãy xem xét các lời khuyên sau cho
việc cải thiện hiệu suất proxy:
-
Hãy đảm bảo là bộ nhớ đệm được kích hoạt, và giám sát hiệu suất của bộ
nhớ đệm của bạn. Giám sát các performance counters (installed mặc định) và các
event logs (cho các error và warnings) trên proxy server thông thường của bạn, để
xem proxy của bạn được thực hiện như thế nào. Lưu ý là các TFS Proxy thống kê
hiệu suất tiết kiệm bộ nhớ cache đến một tập tin Extensible Markup Language
(XML) có tên là ProxyStatistics.xml, và bạn có thể thay đổi khoảng tiết kiệm của
các thống kê này. File ProxyStatistics.xml được đặt trong App_Data folder trong
thư mục cài đặt proxy.
-
Chạy một
scheduled task thông thường
để nhận các file mới nhất cho proxy server. Điều này giúp đảm bảo là các
version mới nhất của các file có sẵn trong proxy cache, và các yêu cầu của các
client tiếp theo cho các kết quả của các file này trong một cache hit.
-
Nếu bạn biết là các file lớn đang được download qua một mạng có bandwidth
thấp (< 3 megabits per second [Mbps]), hãy gán cấu hình executionTimeout có một giá trị thích hợp trong Web.config. Giá trị
mặc định trong một giờ <httpRuntime
executionTimeout="3600"/>.
-
Nếu proxy sắp bị down trong một thời gian dài, hãy disable proxy trên các client để ngăn chặn
reconnections không hiệu quả. Mặc định, các reconnection được lặp lại cứ 5
phút.
-
Hãy xem xét việc sử dụng workspace cloaking để ẩn các specific
workspaces từ view và ngăn chặn truyền các tập tin không cần thiết. Cloaking ẩn
các folder specified workspace từ from
view, tăng hiệu suất băng thông(performance bandwidth), và duy trì không gian
đĩa cục bộ(local disk space) bằng cách chặn copy các folder và các file mà bạn
hiện không cần từ các local workspace của bạn. Mặc dù bạn có thể cloak một
folder mapping đã có trong workspace của bạn, một phương pháp tốt hơn là tạo mới một folder mapping là
dự định cụ thể để được cloak.
Để có thêm thông tin về các hướng dẫn tối ưu hóa hiệu suất, hãy xem
"Distributed / Remote Development" tại "Hướng dẫn: Source Control Hướng dẫn" trong
tài liệu này.
Mirrored Accounts
The TFS Proxy được hỗ trợ trong các
remote offices chỉ qua một VPN connection. Tuy nhiên, nếu bạn triển khai TFS của
bạn sử dụng extranet hay reverse proxy scenario cho một remote team nhỏ mà yêu
cầu TFS Proxy, bạn có thể sử dụng các mirrored account để kích hoạt proxy.
Để kích hoạt proxy, bạn có thể sử dụng các workgroup
accounts với các username và password phù hợp trên TFS, TFS Proxy, và từng
remote client computers. Thực tế bạn cần duy trì chính xác username/password phù
hợp cho tất cả các user trong ba vị trí khác nhau tăng quản lý về thời gian và
hạn chế giải pháp thay thế này đến các remote team nhỏ.
Thông tin bổ sung
Build Server từ xa
Hình 17.6 trình bày kiến trúc của
việc sử dụng một remote build server.

Để cải thiện năng suất của các remote
teamhơn nữa, bạn có thể cài đặt một build server trong remote office. Nếu bạn
có cài đặt một TFS Proxy trong remote office, nó sẽ hoạt động giống như bất kì source
control client nào khác và nhận code từ các proxy trước mỗi build. Một remote build
server có các ích lợi sau:
-
Team build từ các remote team ảnh hưởng đến các team's build server, chứ
không phải tăng việc load trên các internal build server.
-
Các remote builds cung cấp các tập tin nhị phân(binary) cho các remote
team, mà không cần to truyền các tập tin
binary qua mạng.
Không sử dụng các remote build
server như là một sự thay thế hoàn toàn cho các build được khởi tạo trên internal
build server. Thậm chí nếu các remote build được khởi tạo từ các source code
version giống nhau như là các internal build, bạn phải thấy các trạng thái khác
nhau bởi vì cấu hình các build hay source khác nhau giữa các server. Như là một sự hướng dẫn, kiểm thử quan trọng
cơ bản trên các internal build, đặc biệt là khi bạn gần phát hành.
Note: Tầng application giao tiếp với các build server trên port
9191. Nếu bạn có một remote build server, hãy cài đặt firewall của bạn để tầng application
có thể connect trên port này.
Tóm tắt
Nếu bạn đang sử dụng TFS mà không
có SP1, hãy sử dụng một VPN để tạo các kết nối từ xa remote access. Nếu bạn
đang sử dụng TFS SP1, thì bạn có thể sử dụng Basic authentication over SSL để đặt
TFS của bạn trên extranet của bạn, hay bạn có thể cho các kết nối truy cập
thông qua một reverse proxy.
Nếu bạn muốn cải thiện hiệu suất
truy cập từ xa, đặc biệt là trên các VPN scenario, bạn có thể install và cấu
hình TFS Proxy để lưu trữ các file source control trong remote location.
Tài nguyên bổ sung