Wiki


Wiki Table of Contents

Tags

Page Details

Published by:
This page has not yet been rated

Chương 17 - Truy cập đến Team Foundation Server bằng Internet

 

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

 

Recent Comments

Leave the first comment for this page.