2011-08-18 24 views
6

Một số nền ....Làm cách nào để lưu trữ vai trò của nhân viên Azure cục bộ/trên tiền đề?

Lần đầu tiên chúng tôi mạo hiểm vào Azure và đang cố gắng thực hiện nó trong các bước nhỏ. Hiện tại, các ứng dụng đầu tiên của chúng ta sẽ là các hàng đợi giám sát vai trò của nhân viên để xử lý các yêu cầu (chẳng hạn như gửi email hoặc thực hiện một số màn hình) và chúng tôi sẽ chèn vào hàng đợi từ ứng dụng MVC và WCF tại chỗ của chúng tôi. Sau đó, chúng tôi sẽ chuyển ứng dụng MVC và dịch vụ WCF sang Azure.

công việc phát triển của chúng tôi chủ yếu đi như thế này (hơi điều chỉnh theo cách không quan trọng):

  1. Phát triển tại địa phương và trên một số máy chủ chia sẻ. Kiểm tra vào kiểm soát nguồn.
  2. Cứ sau 15 phút, xây dựng máy chủ được xây dựng và triển khai với môi trường "phát triển" (gấp đôi CI và bao gồm trong trường hợp chúng ta cần nhấn vào môi trường "phát triển" ngoài địa phương)
  3. Trình kiểm tra kỹ thuật kích hoạt thủ công máy chủ xây dựng để triển khai "Dev" thành công cuối cùng xây dựng cho môi trường Test (hoặc luân phiên, bản dựng thử nghiệm đã triển khai trước đó, bao gồm/không bao gồm cơ sở dữ liệu).
  4. Người thử nghiệm kỹ thuật và người thử nghiệm kinh doanh tự kích hoạt máy chủ xây dựng để triển khai xây dựng "Thử nghiệm" thành công cuối cùng (hoặc luân phiên, bản dựng thử nghiệm đã triển khai trước đó, bao gồm/loại trừ cơ sở dữ liệu) cho môi trường QA.
  5. Tại một thời điểm nào đó, chúng tôi hợp nhất các thay đổi mà QA phê duyệt để triển khai.
  6. Sau đó máy chủ xây dựng sản xuất của chúng tôi triển khai phiên bản này để dàn dựng và sau đó đến môi trường sản xuất của chúng tôi (chúng tôi lưu trữ N lần trong môi trường song song/độc lập).

Như bạn có thể nói, chúng tôi có một số phiên bản được lưu trữ nội bộ của ứng dụng để người hỗ trợ nội bộ đạt được trước khi tiếp cận sản xuất. Tôi muốn cho những điều này để có mức độ phụ thuộc hợp lý thấp vào Azure. Tôi không cần phải hoàn thành sự phụ thuộc của sever vì vậy chúng tôi sẽ tiếp tục sử dụng Azure Queues và có lẽ một số cơ chế khác chỉ vì chúng dễ tiếp tục sử dụng, nhưng chúng tôi không muốn máy chủ xây dựng của chúng tôi phải triển khai Azure cho mỗi một trong những môi trường này (và cách khác phải trả cho tất cả các lưu trữ đó).

Vậy làm cách nào chúng tôi có thể lưu trữ hợp lý Vai trò của nhân viên tại chỗ theo cách chúng tôi thực sự kiểm tra mã được triển khai cho Azure?

Một tùy chọn được đề xuất là chúng tôi tạo vai trò công nhân làm trình bao bọc/mặt tiền và thực hiện tất cả công việc thực tế bên trong thư viện lớp, đó là kế hoạch của chúng tôi. Tuy nhiên, việc theo dõi để cho phép chúng tôi "lưu trữ" điều này là tạo ứng dụng bao bọc/mặt tiền thứ hai thực hiện công việc giống như vai trò của nhân viên, theo cách chúng tôi có thể chạy nó dưới dạng tác vụ theo lịch hoặc cửa sổ máy chủ. Cuối cùng, tôi không thích tùy chọn này bởi vì toàn bộ dự án sẽ không bao giờ được thử nghiệm cho đến khi nó phát triển.

Có thể làm điều tương tự khi chúng ta tạo ứng dụng bao bọc/mặt tiền thứ hai thay vì gọi thư viện lớp mà nó thực sự tham chiếu và gọi hàm Run() trong vai trò của nhân viên?

Trả lời

5

Bạn có cho rằng Azure emulator có thể giúp bạn? Đây là số differences giữa nhà cung cấp Azure thực và trình mô phỏng.

Có mặt tiền cho vai trò công nhân của bạn có vẻ hợp lý.Và sử dụng bộ điều hợp để thích nghi với bất kỳ công nghệ đám mây nào có thể (hoặc lưu trữ khác) cho mặt tiền đó? Chỉ cần cố gắng để ném vào một số ý tưởng. Tôi thực sự đã sử dụng cách tiếp cận này trước đây, nhưng là một dự án "cá nhân".

Sử dụng PowerShell để định cấu hình vai trò của bạn và không có gì. Định cấu hình trình giả lập Azure của bạn như this.

+0

Điều này nghe giống như những gì VS2010 sử dụng để gỡ lỗi ứng dụng Azure cục bộ. Đây có phải là cái gì tôi có thể thiết lập một cách rất hạn chế "máy chủ" (một lần nữa, chủ yếu là cho các nhà phát triển không có ứng dụng được lưu trữ để họ có thể kiểm tra nó)? Tôi cần một cái gì đó như TeamCity hoặc CruiseControl (cuối cùng nant/powershell/bạn-tên-nó script) để triển khai để giả lập Azure nếu nó là để làm việc cho tôi. – Jaxidian

+1

Tôi hy vọng tôi hiểu bạn: bạn chắc chắn có thể triển khai chúng thông qua các tập lệnh và để kiểm tra QA trên những máy đó. Bạn có thể sử dụng vỏ nguồn cho truy cập Azure VM từ xa. Bạn không cần VS2010 để triển khai hay gì đó. – Vladimir

+0

Nếu bạn có nghĩa là tôi có thể sử dụng tập lệnh để triển khai cho trình mô phỏng, thì có, bạn hiểu tôi. Nếu bây giờ bạn đang nói về Azure, đó không phải là câu hỏi của tôi. Một lần nữa, mục tiêu cấp cao ở đây là có thể "lưu trữ Azure" cho mục đích thử nghiệm. – Jaxidian

2

Cách tiếp cận mặt tiền là cách tốt nhất để áp dụng, thành thật mà nói.

Khi bạn có triển khai cuối cùng có phụ thuộc vào cơ sở hạ tầng hỗ trợ, đặc biệt khó kiểm tra đầy đủ cho đến khi bạn triển khai cơ sở hạ tầng giống hệt hoặc có thể so sánh. Đó chắc chắn là trường hợp với vai trò của Azure Worker.

Bằng cách tách các khía cạnh chức năng của ứng dụng của bạn từ cơ sở hạ tầng cảm ứng điểm, bạn có thể dành nỗ lực của bạn đảm bảo rằng đang bạn cư xử như nó nên, chứng minh rằng mặt tiền cư xử như bình thường, sau đó kiểm tra sự tự tin của kết hợp cuối cùng.

Luôn có một số yếu tố thỏa hiệp với hiệu ứng này trừ khi môi trường thử nghiệm của bạn giống hệt với môi trường sản xuất của bạn.

Và đó là những gì triển khai dàn dựng Azure dành cho; mức độ kiểm tra độ tin cậy cuối cùng trước khi bạn chuyển sang sản xuất.

Bạn có thể tạo triển khai cực nhỏ, hoàn toàn cho các giai đoạn thử nghiệm sau này của bạn. Bạn trả tiền cho thời gian mà vai trò được triển khai, vì vậy nếu bạn xóa triển khai của mình sau khi thử nghiệm của bạn hoàn tất, bạn có thể giảm thiểu chi phí.

Cuối cùng, và mẫu mặt tiền là một ví dụ, thiết kế để kiểm tra. Yếu tố mã của bạn để tối đa hóa số tiền có thể được kiểm tra trước khi triển khai và bạn giảm thiểu rủi ro trong các giai đoạn thử nghiệm sau này.

+0

Bất kể tôi thực sự tổ chức sự kiện này như thế nào, tôi đã làm hầu hết những gì bạn nói. Tổ hợp vai trò Worker của tôi về cơ bản chứa 2 dòng mã: 'var foo = new Bar(); foo.ProcessContinuously (someInfoAboutThisEnvironment); ' – Jaxidian

Các vấn đề liên quan