Tự động hóa và .NET framework sử dụng công cụ nào?


8

Tôi nhận thức được các lựa chọn công cụ phổ biến và phổ biến cho các ngôn ngữ lập trình khác nhau như Go, NodeJS, Java, Python, v.v. Tuy nhiên, tôi không biết toolchain nào hợp lý hoặc thậm chí (nóng) trong thế giới .NET. Tôi đã nghe nói rằng mọi người sử dụng triển khai Octapus, đây có còn là một lựa chọn hợp lệ không? NuGet vẫn là người quản lý gói defacto? Điều gì về kiểm tra mã, QA tự động, vv?

Tôi muốn có được cảm giác về chuỗi công cụ hoàn chỉnh cho .NET và những gì phổ biến ngay bây giờ khi xem xét phát triển, kiểm tra tự động và phân phối.

Câu trả lời:


11

Phần nào đánh cắp câu trả lời của Ian Margett vì kiến ​​trúc là phổ biến trong hầu hết các tổ chức phát triển Microsoft / .NET, mô hình hoạt động mục tiêu cấp cao cho giao diện giống như thế này:

Mô hình hoạt động mục tiêu .NET

Mục tiêu là tạo ra một đường ống Triển khai liên tục, sử dụng phần mềm sẵn có, cụ thể là TeamCity , ProGet , SonarQubeOctopus Deployment :

  • GitHub là công cụ quản lý mã nguồn, tuy nhiên, nó có thể là BitBucket hoặc Visual Studio Team Services. Mô hình phân nhánh và quy trình xem xét mã nằm ngoài phạm vi ở mức cao này.
  • TeamCity được chọn làm Hệ thống xây dựng do tích hợp chặt chẽ với Octopus Deploy và hỗ trợ toàn diện tốt cho .NET, msbuild và PowerShell. TeamCity cũng được sử dụng làm người điều phối các triển khai trong Octopus Deploy.
  • ProGet là giải pháp quản lý gói lưu trữ cả gói Octopus Gói và proxy công khai / kho lưu trữ hình ảnh. Lý do không sử dụng cửa hàng TeamCity NuGet tích hợp hoàn toàn là vì lý do khả năng mở rộng.
  • SonarQube cung cấp quản lý chất lượng mã liên tục và các báo cáo được xuất bản như một phần của kết quả đầu ra của bản dựng TeamCity.
  • Octopus Deploy được sử dụng làm công cụ triển khai cho cả cơ sở hạ tầng và mã vào các nền tảng đích.

Tôi đã thấy cách tiếp cận rộng rãi này được triển khai trên hai công ty và triển khai thành công ở hai công ty khác - trong trường hợp gần đây nhất, chúng tôi đã đổi TeamCity cho AppVeyor hoạt động, mặc dù hơi đau khi thiết lập quy tắc tường lửa.


6

Bạn đề cập đến một vài loại khác nhau trong chuỗi công cụ của bạn cho .NET. Có, NuGet vẫn là kiểu gói mặc định - và rất nhiều người sử dụng Trình quản lý gói chung để quản lý nguồn cấp dữ liệu NuGet của họ.

Đối với Triển khai, Octopus thực sự là một lựa chọn để loại bỏ các vật phẩm, nhưng nó không cho phép một số khía cạnh khác mà bạn đang nói đến.

Một công cụ ARA có lẽ sẽ phù hợp hơn, nó không chỉ là tự động triển khai và các công cụ ARA còn "nóng" hơn trong thế giới DevOps ngay bây giờ - đặc biệt là với những thứ đang phát triển như WinOps.

Đối với các công cụ khác, hãy xem trang wiki công cụ DevOps và phần công cụ tập trung WinOps .

* Tiết lộ đầy đủ Tôi làm việc tại Inedo và chúng tôi đưa ra giải pháp cho cả hai tùy chọn này (trong tâm trí .NET)

Inedo toolchain


4

Kinh nghiệm tại địa điểm của tôi đã được sử dụng Octopus Deploy, và Proget - đã thành công lớn khi xây dựng một đường ống tốt và mở rộng quy mô của nó. Cũng chơi độc đáo với thử nghiệm đơn vị và các công cụ kiểm tra chức năng tự động. Chúng tôi chủ yếu trong Azure trên .Net nhưng cũng đang triển khai lên đám mây riêng và tiền đề

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.