Bagikan melalui


Widget burndown sprint baru dan keamanan alur yang ditingkatkan - Pembaruan Sprint 160

Dalam Pembaruan Sprint 160 Azure DevOps, kami menambahkan widget burndown sprint baru yang mendukung pembakaran berdasarkan titik cerita, jumlah tugas, dan dengan menjumlahkan bidang kustom. Selain itu, kami meningkatkan keamanan alur dengan membatasi cakupan token akses.

Lihat daftar Fitur di bawah ini untuk informasi selengkapnya.

Apa yang baru di Azure DevOps

Fitur

Azure Repos:

Azure Pipelines:

Artefak Azure:

Pelaporan:

Wiki:

Azure Repos

Administrasi kebijakan cabang lintas repositori

Kebijakan cabang adalah salah satu fitur canggih Repositori Azure yang membantu Anda melindungi cabang penting. Meskipun kemampuan untuk menetapkan kebijakan di tingkat proyek ada di REST API, tidak ada antarmuka pengguna untuk itu. Sekarang, admin dapat menetapkan kebijakan pada cabang tertentu atau cabang default di semua repositori dalam proyek mereka. Misalnya, admin dapat memerlukan dua peninjau minimum untuk semua permintaan pull yang dibuat ke setiap cabang utama di setiap repositori dalam proyek mereka. Anda dapat menemukan fitur Tambahkan perlindungan cabang di Pengaturan Proyek Repositori.

Administrasi kebijakan cabang lintas repositori.

Azure Pipelines

UX alur multi-tahap

Kami telah mengerjakan pengalaman pengguna yang diperbarui untuk mengelola alur Anda. Pembaruan ini membuat alur merasakan pengalaman modern dan konsisten dengan arah Azure DevOps. Selain itu, pembaruan ini menggabungkan alur kompilasi klasik dan alur YAML multi-tahap ke dalam satu pengalaman. Misalnya, kemampuan berikut disertakan dalam pengalaman baru; melihat dan mengelola beberapa tahap, menyetujui eksekusi alur, kemampuan untuk menggulir semua jalan kembali dalam log saat alur masih berlangsung, dan kesehatan per cabang dari alur.

Terima kasih untuk semua yang telah mencoba pengalaman baru. Jika Anda belum mencobanya, aktifkan Alur multi-tahap di fitur pratinjau. Untuk mempelajari selengkapnya tentang alur multi-tahap, lihat dokumentasi di sini .

UX alur multi-tahap.

Berkat umpan balik Anda, kami membahas hal berikut dalam dua pembaruan terakhir.

  1. Penemuan tampilan folder.
  2. Jumpiness dalam tampilan log.
  3. Mudah menunjukkan log dari tugas sebelumnya dan saat ini bahkan ketika eksekusi sedang berlangsung.
  4. Jadikan lebih mudah untuk menavigasi antar tugas saat meninjau log.

Kemampuan yang disertakan dalam pengalaman baru.

Catatan

Pada pembaruan berikutnya, kami berencana untuk mengaktifkan fitur ini secara default untuk semua orang. Anda masih akan memiliki opsi untuk menolak pratinjau. Beberapa minggu setelah itu, fitur akan tersedia secara umum.

Mengatur strategi penyebaran canary pada lingkungan untuk Kubernetes

Salah satu keuntungan utama dari pengiriman berkelanjutan pembaruan aplikasi adalah kemampuan untuk segera mendorong pembaruan ke dalam produksi untuk layanan mikro tertentu. Ini memberi Anda kemampuan untuk segera merespons perubahan dalam persyaratan bisnis. Lingkungan diperkenalkan sebagai konsep kelas satu yang memungkinkan pengaturan strategi penyebaran dan memfasilitasi rilis waktu henti nol. Sebelumnya, kami mendukung strategi runOnce yang menjalankan langkah-langkah terlebih dahulu secara berurutan. Dengan dukungan untuk strategi canary dalam alur multi-tahap, Anda sekarang dapat mengurangi risiko dengan secara perlahan melanjutkan perubahan ke subset kecil. Seraya semakin yakin pada versi baru, Anda dapat mulai melanjutkannya ke lebih banyak server di infrastruktur Anda, dan merutekan lebih banyak pengguna ke sana.

jobs:
- deployment:
  environment: musicCarnivalProd
  pool:
    name: musicCarnivalProdPool 
  strategy:                 
    canary:     
      increments: [10,20] 
      preDeploy:                                    
        steps:          
        - script: initialize, cleanup....  
      deploy:            
        steps:
        - script: echo deploy updates...
        - task: KubernetesManifest@0
          inputs:
            action: $(strategy.action)      
            namespace: 'default'
            strategy: $(strategy.name)
            percentage: $(strategy.increment)
            manifests: 'manifest.yml'
      postRouteTaffic:
        pool: server
        steps:          
        - script: echo monitor application health...  
      on:
        failure:
          steps:
	  - script: echo clean-up, rollback...  
        success:
          steps:
          - script: echo checks passed, notify...

Strategi canary untuk Kuberenetes akan terlebih dahulu menyebarkan perubahan dengan 10% pod diikuti oleh 20% sambil memantau kesehatan selama postRouteTraffic. Jika semua berjalan dengan baik, dukungan penggunaan 100% akan diberikan.

Kebijakan persetujuan untuk alur YAML

Dalam alur YAML, kami mengikuti konfigurasi persetujuan yang dikontrol pemilik sumber daya. Pemilik sumber daya mengonfigurasi persetujuan untuk sumber daya dan saluran apa pun yang menggunakan jeda sumber daya untuk persetujuan sebelum tahap yang menggunakan sumber daya dimulai. Pemilik aplikasi berbasis SOX umumnya membatasi pemohon penyebaran agar tidak menyetujui penyebaran mereka sendiri.

Anda sekarang dapat menggunakan opsi persetujuan tingkat lanjut untuk mengonfigurasi kebijakan persetujuan seperti pemohon tidak boleh menyetujui, serta memerlukan persetujuan dari subset pengguna dan jeda persetujuan.

Kebijakan persetujuan untuk alur YAML.

ACR sebagai sumber daya alur kelas satu

Jika Anda perlu menggunakan gambar kontainer yang diterbitkan ke ACR (Azure Container Registry) sebagai bagian dari alur Anda dan memicu alur Anda setiap kali gambar baru diterbitkan, Anda dapat menggunakan sumber daya kontainer ACR.

resources:
  containers:
  - container: MyACR  #container resource alias
    type: ACR
    azureSubscription: RMPM  #ARM service connection
    resourceGroup: contosoRG
    registry: contosodemo
    repository: alphaworkz
    trigger: 
      tags:
        include: 
        - production 

Selain itu, meta-data gambar ACR dapat diakses menggunakan variabel yang telah ditentukan sebelumnya. Daftar berikut mencakup variabel ACR yang tersedia untuk menentukan sumber daya kontainer ACR di alur Anda.

resources.container.<Alias>.type
resources.container.<Alias>.registry
resources.container.<Alias>.repository
resources.container.<Alias>.tag 
resources.container.<Alias>.digest
resources.container.<Alias>.URI
resources.container.<Alias>.location

Meta-data sumber daya alur sebagai variabel yang telah ditentukan sebelumnya

Kami telah menambahkan variabel yang telah ditentukan sebelumnya untuk sumber daya alur YAML dalam alur. Berikut adalah daftar variabel sumber daya alur yang tersedia.

resources.pipeline.<Alias>.projectName 
resources.pipeline.<Alias>.projectID 
resources.pipeline.<Alias>.pipelineName 
resources.pipeline.<Alias>.pipelineID 
resources.pipeline.<Alias>.runName 
resources.pipeline.<Alias>.runID
resources.pipeline.<Alias>.runURI
resources.pipeline.<Alias>.sourceBranch 
resources.pipeline.<Alias>.sourceCommit
resources.pipeline.<Alias>.sourceProvider 
resources.pipeline.<Alias>.requestedFor
resources.pipeline.<Alias>.requestedForID

Keterlacakan untuk alur dan sumber daya ACR

Kami memastikan keterlacakan E2E penuh saat alur dan sumber daya kontainer ACR digunakan dalam alur. Untuk setiap sumber daya yang digunakan oleh alur YAML Anda, Anda dapat melacak kembali ke penerapan, item kerja, dan artefak.

Dalam tampilan ringkasan eksekusi alur, Anda bisa melihat:

  • Versi sumber daya yang memicu eksekusi. Sekarang, alur Anda dapat dipicu setelah menyelesaikan eksekusi alur Azure lain atau ketika gambar kontainer didorong ke ACR.

    Versi sumber daya yang memicu eksekusi.

  • Penerapan yang dikonsumsi oleh alur. Anda juga dapat menemukan perincian penerapan oleh setiap sumber daya yang digunakan oleh alur.

    Penerapan yang dikonsumsi oleh alur.

  • Item kerja yang terkait dengan setiap sumber daya yang digunakan oleh alur.

  • Artefak yang tersedia untuk digunakan oleh eksekusi.

    Artefak yang tersedia untuk digunakan oleh eksekusi.

Dalam tampilan penyebaran lingkungan, Anda dapat melihat penerapan dan item kerja untuk setiap sumber daya yang disebarkan ke lingkungan.

Menerapkan dan item kerja untuk setiap sumber daya yang disebarkan ke lingkungan.

Otorisasi sumber daya yang disederhanakan dalam alur YAML

Sumber daya adalah apa pun yang digunakan oleh alur yang berada di luar alur. Sumber daya harus diotorisasi sebelum dapat digunakan. Sebelumnya, saat menggunakan sumber daya yang tidak sah dalam alur YAML, sumber daya gagal dengan kesalahan otorisasi sumber daya. Anda harus mengotorisasi sumber daya dari halaman ringkasan eksekusi yang gagal. Selain itu, alur gagal jika menggunakan variabel yang mereferensikan sumber daya yang tidak sah.

Kami sekarang mempermudah pengelolaan otorisasi sumber daya. Alih-alih gagal mengeksekusi, eksekusi akan menunggu izin pada sumber daya saat tahap yang menggunakan sumber daya dimulai. Pemilik sumber daya dapat melihat alur dan mengotorisasi sumber daya dari halaman Keamanan.

Otorisasi sumber daya yang disederhanakan dalam alur YAML.

Meningkatkan keamanan alur dengan membatasi cakupan token akses

Setiap pekerjaan yang berjalan di Alur Azure mendapatkan token akses. Token akses digunakan oleh tugas dan skrip Anda untuk memanggil kembali ke Azure DevOps. Misalnya, kami menggunakan token akses untuk mendapatkan kode sumber, mengunggah log, hasil pengujian, artefak, atau untuk melakukan panggilan REST ke Azure DevOps. Token akses baru dibuat untuk setiap pekerjaan, dan akan kedaluwarsa setelah pekerjaan selesai. Dengan pembaruan ini, kami menambahkan penyempurnaan berikut.

  • Mencegah token mengakses sumber daya di luar proyek tim

    Hingga saat ini, cakupan default semua alur adalah koleksi proyek tim. Anda dapat mengubah cakupan menjadi proyek tim dalam alur kompilasi klasik. Namun, Anda tidak memiliki kontrol tersebut untuk rilis klasik atau alur YAML. Dengan pembaruan ini, kami memperkenalkan pengaturan organisasi untuk memaksa setiap pekerjaan mendapatkan token cakupan proyek apa pun yang dikonfigurasi dalam alur. Kami juga menambahkan pengaturan di tingkat proyek. Sekarang, setiap proyek dan organisasi baru yang Anda buat akan secara otomatis mengaktifkan pengaturan ini.

    Catatan

    Pengaturan organisasi mengambil alih pengaturan proyek.

    Mengaktifkan pengaturan ini di proyek dan organisasi yang ada dapat menyebabkan alur tertentu gagal jika alur Anda mengakses sumber daya yang berada di luar proyek tim menggunakan token akses. Untuk mengurangi kegagalan alur, Anda dapat secara eksplisit memberikan akses Akun Layanan Kompilasi Proyek ke sumber daya yang diinginkan. Kami sangat menyarankan agar Anda mengaktifkan pengaturan keamanan ini.

  • Menghapus izin tertentu untuk token akses

    Secara default, kami memberikan sejumlah izin ke token akses, salah satu izin ini adalah Kompilasi antrean. Dengan pembaruan ini, kami menghapus izin ini ke token akses. Jika alur Anda memerlukan izin ini, Anda dapat secara eksplisit memberikannya ke Akun Layanan Kompilasi Proyek atau Akun Layanan Kompilasi Koleksi Proyek tergantung pada token yang Anda gunakan.

Evaluasi pemeriksaan artefak

Anda sekarang dapat menentukan serangkaian kebijakan dan menambahkan evaluasi kebijakan sebagai pemeriksaan pada lingkungan untuk artefak gambar kontainer. Saat alur dieksekusi, eksekusi dijeda sebelum memulai tahap yang menggunakan lingkungan. Kebijakan yang ditentukan dievaluasi berdasarkan metadata yang tersedia untuk gambar yang sedang disebarkan. Pemeriksaan lolos jika kebijakan berhasil dan menandai tahap dengan status gagal jika pemeriksaan tersebut gagal.

Evaluasi pemeriksaan artefak.

Dukungan markdown dalam pesan kesalahan pengujian otomatis

Kami sekarang mendukung Markdown dalam pesan kesalahan untuk pengujian otomatis. Anda dapat dengan mudah memformat pesan kesalahan untuk uji coba dan hasil pengujian untuk meningkatkan keterbacaan dan memudahkan pemecahan masalah kegagalan di Azure Pipelines. Sintaks Markdown yang didukung dapat ditemukan di sini.

Dukungan markdown dalam pesan kesalahan pengujian otomatis.

Mendiagnosis jadwal cron di YAML

Kami telah melihat peningkatan stabil dalam penggunaan sintaks cron untuk menentukan jadwal dalam alur YAML Anda. Saat kami mendengarkan umpan balik Anda, kami mendengar bahwa sulit bagi Anda untuk menentukan apakah Azure Pipelines telah memproses sintaks Anda dengan benar. Sebelumnya, Anda harus menunggu waktu aktual eksekusi terjadwal untuk men-debug masalah jadwal. Untuk membantu Anda mendiagnosis kesalahan cabang/sintaks, kami menambahkan menu tindakan baru untuk alur. Eksekusi terjadwal di menu Jalankan alur akan memberi Anda pratinjau beberapa eksekusi terjadwal yang akan datang untuk alur Anda untuk membantu Anda mendiagnosis kesalahan dengan jadwal cron Anda.

Mendiagnosis jadwal cron di YAML.

Pembaruan untuk tugas penyebaran templat ARM

Sebelumnya, kami tidak memfilter koneksi layanan dalam tugas penyebaran templat ARM. Hal ini dapat menggagalkan penyebaran jika Anda memilih koneksi layanan cakupan yang lebih rendah saat menyebarkan templat ARM ke cakupan yang lebih luas. Sekarang, kami menambahkan pemfilteran koneksi layanan untuk memfilter koneksi layanan dengan cakupan yang lebih rendah berdasarkan cakupan penyebaran yang Anda pilih.

Keamanan tingkat proyek untuk koneksi layanan

Dengan pembaruan ini, kami menambahkan keamanan tingkat hub untuk koneksi layanan. Sekarang, Anda dapat menambahkan/menghapus pengguna, menetapkan peran, dan mengelola akses di tempat terpusat untuk semua koneksi layanan.

Keamanan tingkat proyek untuk koneksi layanan.

Kumpulan Ubuntu 18.04

Azure Pipelines sekarang mendukung menjalankan pekerjaan Anda di Ubuntu 18.04. Kami memperbarui kumpulan Azure Pipelines yang dihosting Microsoft untuk menyertakan gambar Ubuntu-18.04. Sekarang, ketika Anda mereferensikan ubuntu-latest kumpulan dalam alur YAML Anda, itu akan berarti ubuntu-18.04 dan bukan ubuntu-16.04. Anda masih dapat menargetkan 16.04 gambar dalam pekerjaan Anda dengan menggunakan ubuntu-16.04 secara eksplisit.

Penyebaran canary berbasis Antarmuka Jala Layanan di tugas KubernetesManifest

Sebelumnya ketika strategi canary ditentukan dalam tugas KubernetesManifest, tugas akan membuat beban kerja dasar dan canary yang replikanya sama dengan persentase replika yang digunakan untuk beban kerja yang stabil. Ini tidak sama persis dengan memisahkan lalu lintas hingga persentase yang diinginkan pada tingkat permintaan. Untuk mengatasi hal ini, kami telah menambahkan dukungan untuk penyebaran canary berbasis Antarmuka Jala Layanan ke tugas KubernetesManifest.

Abstraksi Antarmuka Jala Layanan memungkinkan konfigurasi plug-and-play dengan penyedia mesh layanan seperti Linkerd dan Istio. Sekarang tugas KubernetesManifest bekerja keras untuk memetakan objek TrafficSplit SMI ke layanan stabil, garis besar, dan canary selama siklus hidup strategi penyebaran. Persentase pemisahan lalu lintas yang diinginkan antara stabil, garis besar, dan canary lebih akurat karena persentase pemisahan lalu lintas dikontrol pada permintaan di bidang jala layanan.

Berikut ini adalah sampel proses penyebaran canary berbasis SMI secara berkelanjutan.

- deployment: Deployment
    displayName: Deployment
    pool:
      vmImage: $(vmImage)
    environment: ignite.smi
    strategy:
      canary:
        increments: [25, 50]
        preDeploy:
          steps:
          - task: KubernetesManifest@0
            displayName: Create/update secret
            inputs:
              action: createSecret
              namespace: smi
              secretName: $(secretName)
              dockerRegistryEndpoint: $(dockerRegistryServiceConnection)
        deploy:
          steps:
          - checkout: self
          - task: KubernetesManifest@0
            displayName: Deploy canary
            inputs:
              action: $(strategy.action)
              namespace: smi
              strategy: $(strategy.name)
              trafficSplitMethod: smi
              percentage: $(strategy.increment)
              baselineAndCanaryReplicas: 1
              manifests: |
                manifests/deployment.yml
                manifests/service.yml
              imagePullSecrets: $(secretName)
              containers: '$(containerRegistry)/$(imageRepository):$(Build.BuildId)'
        postRouteTraffic:
          pool: server
          steps:
            - task: Delay@1
              inputs:
                delayForMinutes: '2'

ReviewApp di Lingkungan

ReviewApp menyebarkan setiap permintaan pull dari repositori Git Anda ke sumber daya lingkungan dinamis. Peninjau dapat melihat tampilan perubahan tersebut serta bekerja dengan layanan dependen lainnya sebelum digabungkan ke cabang utama dan disebarkan ke produksi. Ini akan memudahkan Anda untuk membuat dan mengelola sumber daya reviewApp dan mendapat manfaat dari semua kemampuan pelacakan dan kemampuan diagnosis pada fitur lingkungan. Dengan menggunakan kata kunci reviewApp, Anda dapat membuat klon sumber daya (secara dinamis membuat sumber daya baru berdasarkan sumber daya yang ada di lingkungan) dan menambahkan sumber daya baru ke lingkungan.

Berikut ini adalah sampel cuplikan YAML tentang menggunakan reviewApp di bawah lingkungan.

jobs:
- deployment:
  environment: 
     name: smarthotel-dev      
     resourceName: $(System.PullRequest.PullRequestId) 
  pool:
    name: 'ubuntu-latest'
  strategy:                 
    runOnce:            
      pre-deploy: 
        steps:       
        - reviewApp: MasterNamespace

Azure Artifacts

Koneksi untuk pengalaman umpan yang diperbarui

Dialog Koneksi untuk umpan adalah entryway untuk menggunakan Azure Artifacts; Dialog ini berisi informasi tentang cara mengonfigurasi klien dan repositori untuk mendorong dan menarik paket dari umpan di Azure DevOps. Kami telah memperbarui dialog untuk menambahkan informasi penyiapan terperinci dan memperluas alat yang menerima instruksi dari kami.

Umpan publik sekarang tersedia secara umum dengan dukungan upstram

Pratinjau publik pada umpan publik telah menerima adopsi dan umpan balik yang besar. Dalam pembaruan ini, kami memperluas fitur tambahan ke ketersediaan umum. Sekarang, Anda dapat mengatur umpan publik sebagai sumber upstram dari umpan privat. Anda dapat membuat file konfigurasi tetap sederhana dengan kemampuan untuk melakukan upstram baik ke maupun dari umpan privat dan cakupan proyek.

Membuat umpan cakupan proyek dari portal

Ketika merilis umpan publik, kami juga merilis umpan cakupan proyek. Hingga saat ini, umpan cakupan proyek dapat dibuat melalui REST API atau dengan membuat umpan publik lalu mengubah proyek menjadi privat. Sekarang, Anda dapat membuat umpan cakupan proyek langsung di portal dari proyek apa pun jika Anda memiliki izin yang diperlukan. Anda juga dapat melihat umpan mana yang merupakan proyek dan mana yang dilingkup organisasi dalam pemilih umpan.

Pelaporan

Widget Sprint Burndown dengan semua yang Anda minta

Widget Sprint Burndown baru mendukung analisis burndown berdasarkan Estimasi Pengerjaan, jumlah Tugas, atau dengan menjumlahkan bidang isian kustom. Anda bahkan dapat membuat sprint burndown untuk Fitur atau Epik. Widget menampilkan burndown rata-rata, % penyelesaian, dan peningkatan cakupan. Anda dapat mengonfigurasi tim, sehingga dapat menampilkan sprint burndown untuk beberapa tim di dasbor yang sama. Dengan semua tampilan informasi hebat ini, Anda dapat mengubah ukurannya hingga 10x10 di dasbor.

Widget Sprint Burndown.

Untuk mencobanya, Anda dapat menambahkannya dari katalog widget, atau dengan mengedit konfigurasi untuk widget Sprint Burndown yang ada dan mencentang kotak Coba versi baru sekarang.

Catatan

Widget baru menggunakan Analytics. Kami menyimpan Sprint Burndown warisan jika Anda tidak memiliki akses ke Analitik.

Wiki

Gulir sinkron untuk mengedit halaman wiki

Mengedit halaman wiki kini lebih mudah dengan gulir sinkron antara panel edit dan pratinjau. Tindakan menggulir di satu sisi akan secara otomatis menggulir sisi lain untuk memetakan bagian yang sesuai. Anda dapat menonaktifkan gulir sinkron dengan tombol alih.

Gulir sinkron untuk mengedit halaman wiki.

Catatan

Status pengalih gulir sinkron disimpan per pengguna dan organisasi.

Kunjungan halaman untuk halaman wiki

Anda sekarang bisa mendapatkan wawasan tentang kunjungan halaman untuk halaman wiki. REST API memungkinkan Anda mengakses informasi kunjungan halaman dalam 30 hari terakhir. Anda dapat menggunakan data ini untuk membuat laporan untuk halaman wiki Anda. Selain itu, Anda dapat menyimpan data ini di sumber data dan membuat dasbor untuk mendapatkan wawasan tertentu seperti halaman teratas-n yang paling banyak dilihat.

Anda juga akan melihat jumlah kunjungan halaman agregat selama 30 hari terakhir di setiap halaman.

Kunjungan halaman untuk halaman wiki.

Catatan

Kunjungan halaman didefinisikan sebagai tampilan halaman oleh pengguna tertentu dalam interval 15 menit.

Langkah berikutnya

Catatan

Fitur-fitur ini akan diluncurkan selama dua hingga tiga minggu ke depan.

Buka Azure DevOps dan lihat.

Cara memberikan umpan balik

Kami akan senang mendengar apa yang Anda pikirkan tentang fitur-fitur ini. Gunakan menu bantuan untuk melaporkan masalah atau memberikan saran.

Buat saran

Anda juga bisa mendapatkan saran dan pertanyaan yang dijawab oleh komunitas di Stack Overflow.

Terima kasih,

Jeff Beehler