Azure DevOps’tan Jira’ya Geçiş

Orkun İncili
Kod Gemisi
Published in
5 min readMay 25, 2021

Herkese merhaba, bu yazımda sizlere Azure Devops’taki projelerin Jira’ya nasıl taşındığından genel hatlarıyla bahsedeceğim.

Nedir bu Azure DevOps ve Jira?

Azure DevOps ve Jira; DevOps süreçlerini kontrollü, detaylı ve hızlı bir şekilde yönetmemizi sağlayan iki etkili platformdur. Azure DevOps için buradaki, Jira için ise buradaki dökümanlardan detaylara ulaşabilirsiniz.

  • Jira bize neler sunar?

Kanban ve Scrum gibi farklı agile pratiklerini sunmuş olduğu board özelliği ve raporlama imkanlarıyla destekler.

Yapısı dolayısıyla detaylı iş planı yapma imkanı sunar.

Atlassian’ın Bitbucket & Bamboo & Confluence ürünleri ve diğer CI / CD ürünleriyle kolaylıkla entegre olması yanında Atlassian Marketplace’te yer alan eklentiler sayesinde yazılım yaşam döngüsünde kodun testten üretime kadarki sürecini otomatikleştirme imkanı sunar.

Sayısız uygulama(GitHub, GitLab, Zendesk…) ile entegre edilebilir olduğundan projelerinizin bütünlüğünü korur.

Atlassian Marketplace’te yer alan 1000’den fazla eklenti sayesinde ihtiyaçlarınızı kolaylıkla sağlayabilirsiniz.

  • Azure DevOps bize neler sunar?

Tüm CI/CD süreçlerini geliştirebilir, test edebilir veya dağıtabilirsiniz.

Testlerinizi planlı bir şekilde gerçekleştirebilirsiniz.

İçinde barındırdığı birçok uzantı ile süreleri daha etkili bir biçimde yönetebilirsiniz.

Azure-Jira geçişine neden ihtiyaç duyulur?

Her şirketin ya da takımın zaman içinde değişen şartları ve gereksinimleri bu geçişi yapmaları için sebepler yaratıyor olabilir. Dolayısıyla nedeni şudur diye net bir cevap verebilmek pek mümkün değil.

Fakat Jira’nın REST API’ının Azure DevOps’a göre daha işlevsel olduğunu düşünüyorum. Ayrıca Jira’nın raporlama araçları, süreç planlamasındaki detaylandırılabilirliği, plana uygun tahminleme yapmayı kolaylaştırması, süreç tasarımındaki implementasyon aşamasında esnekliği bu geçiş için sebeplerden sadece bazıları olabilir.

Azure-Jira Geçiş Süreci

Her iki platformda da birçok proje, bu projelere bağlı repositoryler, yüzlerce issue/work item ve commit bulunabilir. Bu sürecin çok titiz bir şekilde ele alınması, analizlerin iyi yapılması ve geçiş sonrası testlerin dikkatli bir şekilde ele alınması gerekir. Zahmetli bir iş gibi gözükse bile burada yardımımıza koşan iki şey var:

1-TFS4JIRA Plugin ve TFS4JIRA Synchronizer

2-Azure Devops ve Jira REST APIS

1. TFS4JIRA Plugin ve TFS4JIRA Synchronizer

TFS4JIRA, Azure DevOps ile Jira arasında bir bağlantı kurarak gerek Cloud’ta, gerek Server’da gerekse Data Center’da senkronizasyon, geçiş ve entegrasyon yapmamızı sağlayan bir araçtır. Synchronizer ise bu eklentiye eşlik eden bir web uygulamasıdır. Aktarım bu eklenti ve uygulamanın birlikte çalışması sonucu tamamlanır.

1.1 TFS4JIRA ile Synchonizer Nasıl Çalışır?

TFS4JIRA’nın sayfasına buradan erişebilirsiniz. Başlangıç olarak bu eklentiyi Jira’ya eklemeniz gerekmekte. Bu işlem tamamlandıktan sonra Synchronizer’ı kurmamız gerekir. Synchronizer bir Windows sunucu üzerine kurulmak zorundadır.

Synchonizer’ın kurulumu tamamlandıktan sonra uygulamaya localhost/tfs-jira-synchonizer üzerinden ulaşabiliyoruz. Synchonizer temel olarak şu şekilde çalışır:

i) Senkronizasyon/Taşıma/Entegrasyon işlemi için profil oluşturma

Profil oluşturma

ii) Azure DevOps ve Jira bağlantılarını sağlama

Jira bağlantısının sağlanması
TFS bağlantısının sağlanması

iii) Senkronizasyon yönünü belirleme(TFS->JIRA, JIRA->TFS, Both)

Senkronizasyon yönünün belirlenmesi

iv) Custom field’ları Belirtme

Work item ve issue id’lerinin karşı platformlarda tutulabilmesi için custom field oluşturulması. Jira için buradan ve buradan, Azure DevOps için ise buradan custom field’ın nasıl oluşturulduğuna bakabilirsiniz.

v) Eşleme (Mapping)

Work item-Issue, kullanıcı ve diğer bileşenleri eşleme işlemidir. Synchronizer bir kısmını kendisi eşlemiş olsa bile birçoğunu bizim eşlememiz gerekmektedir. Eşleme işlemi birkaç adımdan oluşuyor.

Eşleme işlemi
Eşleme işlemi
Eşleme işlemi
Eşleme işlemi
Eşleme işlemi

vi) Check-In’lerin(Commit’lerin) Aktarılması

Synchronizer varsayılan olarak localhost:8080'i kullanır. Eğer Azure DevOps’taki check-in’lerin de Jira’ya aktarılması isteniyorsa uygulamamıza dışarıdan erişilebiliyor olması gerekmektedir.

Dışarıdan erişim sağlanıyorsa yapılması gereken Jira’da TFS4JIRA ayarlarına girip Synchronizer’ın çalıştığı domain’i belirtmektir. Daha sonra Synchonizer’da check-ins sekmesi üzerinden gerekli ayarlamalar yapıldığında repository’deki tüm check-in’ler(commit) Jira issue’ları üzerinde de gözükmeye başlayacaktır.

vii )Senkronizasyonun Gerçekleştirilmesi

Bu işlemler tamamlandıktan sonra gerekli tarih aralıklarını vererek synchonizer’ı çalıştırabiliriz.

Başarılı bir test sonucu aldığımız sonuçlar bunlar. Eğer Synchonizer ilk defa çalıştırılacak ise eşlenen work item/issue’lar Synchronizer kısmında gözükecektir.

2.Azure Devops ve Jira REST API

Azure Devops ve Jira kaynaklarına HTTP methodları ile erişmemizi sağlayan ve düzenlemeler yapmamıza imkan veren servislerdir. Azure Devops’un ve Jira’nın yapısından dolayı TFS4JIRA aracının sunamadığı birkaç durumu bu API’ları kullanarak çözmek gerekebilir.

  • Azure DevOps’taki Repository’lerin Bitbucket’a Aktarılması

Senkronizasyonun/Aktarımın yapılacağı platformda boş bir proje oluşturulmuş olması gerektiğinden yukarıda bahsetmiştim. Bunu yaparken;

  1. Bitbucket üzerinden bir proje sayfasına gelinmeli
  2. Create Repository’ye tıklanmalı
  3. Repository oluşturma sayfasında sağ üstte yer alan import repository’ye tıklanmalı

4) Old repository: Azure DevOps’ta Bitbucket’a taşımak istediğiniz proje repository’sinin adresi buraya yazılmalıdır.

Username: Boş bırakılmalıdır.

Password: Azure DevOps’ta bir token oluşturulmalı ve burada kullanılmalıdır.

Workspace ve Project: Repository’i aktarmak istediğiniz workspace ve projeyi seçtiğiniz kısımdır.

Repository name: Old repository alanında url’i yazdığınızda repository name kısmını otomotik olarak dolduruluyor. İsterseniz değiştirebilirsiniz.

Import repository’e tıkladığımız zaman aktarım işlemi gerçekleşmiş olacaktır.

Tecrübemi olabildiğine açık ve anlaşılır bir şekilde anlatmaya çalıştım. Süreçle ilgili bir sorunuz veya eklemek istediğiniz bir konu olursa iletişime geçmekten çekinmeyin.

--

--