Otomasi dan .NET framework alat apa yang digunakan?

8

Saya menyadari de facto dan pilihan alat populer untuk berbagai bahasa pemrograman seperti Go, NodeJS, Java, Python dll. Namun, saya tidak tahu toolchain apa yang masuk akal atau bahkan (panas) di dunia .NET. Saya pernah mendengar bahwa orang menggunakan penyebaran Octapus, apakah ini masih pilihan yang valid? Apakah NuGet masih menjadi manajer paket defacto? Bagaimana dengan inspeksi kode, QA otomatis dll.?

Saya ingin mendapatkan perasaan tentang toolchain lengkap untuk .NET dan apa yang populer saat ini ketika mempertimbangkan pengembangan, pengujian otomatis, dan pengiriman.

Steiniche
sumber

Jawaban:

11

Agak mencuri dari jawaban Ian Margett sebagai arsitektur yang umum di antara sebagian besar organisasi pengembangan Microsoft / .NET, model operasi target tingkat tinggi untuk terlihat seperti ini:

Model Operasi Target NET

Tujuannya adalah untuk membuat pipa Penerapan Berkelanjutan, menggunakan perangkat lunak yang sudah ada, yaitu TeamCity , ProGet , SonarQube dan Octopus Deploy :

  • GitHub adalah alat manajemen kode sumber, namun, itu bisa BitBucket atau Layanan Visual Studio Team. Model percabangan dan proses tinjauan kode berada di luar jangkauan pada tingkat tinggi ini.
  • TeamCity dipilih sebagai Build System karena integrasinya yang erat dengan Octopus Deploy dan dukungan menyeluruh yang baik untuk .NET, msbuild, dan PowerShell. TeamCity juga digunakan sebagai orkestra penyebaran di Octopus Deploy.
  • ProGet adalah solusi manajemen paket yang menyimpan Paket Octopus dan proksi paket publik / repositori gambar. Alasan untuk tidak menggunakan toko TeamCity NuGet bawaan adalah murni untuk alasan skalabilitas.
  • SonarQube menyediakan manajemen kualitas kode berkelanjutan dan laporan diterbitkan sebagai bagian dari output build TeamCity.
  • Octopus Deploy digunakan sebagai alat penyebaran untuk infrastruktur dan kode ke platform target.

Saya telah melihat pendekatan luas ini diterapkan di dua perusahaan dan berhasil menerapkannya di dua perusahaan tambahan - dalam kasus terbaru kami menukar TeamCity untuk AppVeyor yang bekerja, meskipun sedikit menyakitkan ketika membuat aturan firewall.

Richard Slater
sumber
6

Anda menyebutkan beberapa kategori berbeda di toolchain Anda untuk .NET. Ya, NuGet masih merupakan gaya paket default - dan banyak orang menggunakan Universal Package Manager untuk mengelola umpan NuGet mereka.

Untuk Penempatan, Gurita memang merupakan opsi untuk mengeluarkan artefak, tetapi itu tidak memungkinkan beberapa aspek lain yang Anda bicarakan.

Sebuah alat ARA mungkin akan lebih cocok untuk melakukan lebih dari sekedar otomasi Penempatan dan alat ARA lebih "Hot" di dunia DevOps sekarang - terutama dengan hal-hal yang berkembang seperti WinOps.

Sejauh alat lainnya, lihat halaman wiki DevOps toolchain dan bagian alat fokus WinOps .

* Pengungkapan penuh Saya bekerja di Inedo , dan kami membuat solusi untuk kedua opsi ini (dengan mengingat .NET)

Inedo toolchain

Karl Harnagy
sumber
4

Pengalaman di tempat saya telah menggunakan Octopus Deploy, dan Proget - sukses besar membangun saluran pipa yang bagus dan skalanya dengan baik. Juga bermain bagus dengan unit testing dan alat uji fungsional otomatis. Kami sebagian besar berada di Azure di. Net tetapi juga menggunakan cloud pribadi dan di lokasi

Ian Margetts
sumber