Exalate ile Veri Senkronizasyonu

Bu yazımızda, iki Jira ortamı arasında verileri senkronize etmekte oldukça başarılı olan Exalate eklentisini ele alıyoruz. iDalko‘nun geliştirdiği bu eklenti ile farklı Jira Cloud / Jira Server / Jira Data Center ortamlarınız arasındaki kayıtlarınızı iki yönlü olarak senkronize edebilirsiniz. Senkronizasyon esnasında dosya ekleri dahil tüm kayıt alanları taşınmaktadır. Jira ortamlarındaki iş akışları, kullanıcı isimleri, bileşen ve sürüm tanımlarındaki farklılıklar gelişmiş senkronizasyon konfigürasyonu ile karşılıklı olarak  dikkate alınabilmektedir. Danışmanlık hizmeti verdiğimiz büyük bir kuruluş için üretim ortamında yaptığımız Cloud – Server senkronizasyonunu çalışmasında ziyadesiyle tatmin edici sonuçlar ettiğimizden senkronizasyon ihtiyaçlarınız için Exalate eklentisini değerlendirmenizi öneririz. Yazımızın devamında eklenti arayüzünü ve örnek senkronizasyon senaryolarını inceliyor olacağız.

Exalate; verilerinizi çeşitli iş yönetimi sistemleri veya instance(örnek) arasında senkronize edebiliceğiniz bir uygulamadır.

Instance, bağlanabileceğiniz bir kayıt takip ortamıdır. İki örneği birbirine bağlamak için bir connection (bağlantı) oluşturmanız gerekir.

Connection, kayıtların örnekler arasında nasıl senkronize edileceğini tanımlar. Bağlandığınız diğer örnek bir Destination Instance(Hedef örnek)’tır.

Exalate ile, farklı bağlantı türleri sunulmaktadır. Örneğin, JIRA Server’a dış ağdan erişilemese bile JIRA Cloud ve JIRA Server’ı senkronize edebilirsiniz. Ayrıca bir Örneğin(Instance) projelerini de senkronize edebilirsiniz. Desteklenen kayıt takip ortamlarından herhangi biri arasında senkronizasyon kurabilirsiniz.

İlk Yapılandırmamı Kurmak İçin Neye İhtiyacım Var?

  • Her iki ortama da (yani mevcut Instance ve bağlantı kurulacak Destination Instance’a) Exalate uygulaması yüklenir.
  • Her iki ortam da geçerli bir Exalate lisansına sahip olmalıdır.
  • Farklı Jira ortamları arasında senkronizasyon yapılabileceği gibi farlı geliştiricilerin uygulamaları ile de bağlantı kurulabilir.

Exalate Temel Öğeler

Jira Server ilk senkronizasyon için kurma adımları:

1. Adım: Genel Ayarlar’da bir vekil kullanıcı belirlenir.

Exalate, senkronize olabilmek için issue bilgilerine erişim gerektirir. Bu kullanıcı, issue değişikliklerini okumak ve uygulamak için remote partner adına hareket eder. İlgili kullanıcı Genel Ayarlar sekmesinden seçimi ve düzenlemesi yapılır.

2. Adım: Bir Connection kurulumu yapılır.

Connection

Connection; iletişim ayrıntıları, senkronizasyon kuralları ve kapsam dahil olmak üzere senkronizasyon davranışını tanımlar. Kurulum için, Exalate yönetici menüsünde Connection sekmesi kullanılır.

Bulk Connect

Bulk Connect ile bir dizi issue’ları tek bir işlemle senkronize edebilirsiniz. Exalate for Jira Server ve Jira Cloud’da, her bir issue manuel olarak senkronize etmek için Connect Operation’ı kullanabilirsiniz. Bu tür bir senkronizasyonu yapılandırmak için lütfen Exalate yönetici menüsündeki Bulk Connection sekmesine gidin ve aşağıdaki adımları izleyin:

1- Kurulmuş bir Connection seçimi yapın.

2- Daha önce issue mapping ile oluşturduğunuz mapping dosyasını yükleyin. issue mapping.csv dosyası, virgülle ayrılmış issue anahtar çiftlerini  içermelidir:

TEST-1, REMOTE-4
TEST-2, REMOTE-5
TEST-4, REMOTE-6
TEST-5, REMOTE-9

Exalate, her connection ile düzenleme yaptığınızda dosyayı otomatik olarak oluşturur. Dosya, {$ JIRA_HOME} / export / dizininde bulunur. Dosyayı ismine göre tanıyabilirsiniz. Oluşturulduğunda bağlantı adı, tarih ve saat verilerini içerir. Böyle bir dosya örneği: connect-RELATION-A ile B-20190425_122209.csv

Gelişmiş seçenekleri yapılandırın. Mevcut yorumları, ekleri ve worklogları senkronize etmek isteyip istemediğinizi değiştirin:

Yorumlar Senkronize Edilsin mi?

Mevcut tüm issue yorumları remote issue’ya gönderilecektir. Kaynak veri filtresi veya hedef değişikliği işlemci davranışı uygulanacaktır. Örneğin, bağlantı, kaynak yorumlarının lokal kalması gerektiğini belirtiyorsa, bunlar gönderilmeyecektir.

Ekler senkronize edilsin mi?

Mevcut tüm ekler gönderilecektir (veri filtresine ve işlemciye uyarak).

Worklogs  senkronize edilsin mi?

Mevcut tüm worklogs gönderilecektir (yine veri filtresine ve işlemciye uyarak).

Geri senkronize et

Bu seçenek belirlendiğinde, diğer tarafta bulunan tüm bilgiler lokal issue ile tekrar senkronize edilecektir.

Triggers

Bir trigger (tetikleyici) yardımıyla belirli bir arama sorgusuna göre senkronizasyonu otomatik olarak başlatabilirsiniz. Issue bir arama sorgusuna uyuyorsa, senkronizasyon için otomatik olarak tetiklenir. Senkronize edilen issue birisi güncelledikten sonra değişiklikler otomatik olarak senkronize edilir. 

Her issue izleyicinin kendi arama sorgu dili vardır. Exalate farklı issue izleyicileri desteklediğinden, arama syntax’ı değişebilir.

Örnek JQL = project = TEST and labels = sync and created >= startOfWeek()

Move_Info projesinde label senkronizasyonu ile bir issue oluşturduğunuzda, bu issue otomatik olarak senkronizasyona başlayacaktır. Ayrıca, Move_Info projesindeki herhangi bir issue label senkronizasyonu ile güncellendiyse, aynı tetikleyici senkronizasyonu başlatacaktır.

1- Exalate yönetici menüsünde Triggers sekmesine gidin.

2- Create Trigger butonu seçilir.

3- Senkronize etmek istediğiniz varlık türünü seçin. Birden çok bilgiyi senkronize etmek istiyorsanız, her bilgi türü için ayrı tetikleyiciler oluşturun.

4- IF alanına, hangi issue’ların otomatik olarak diğer tarafla senkronize edileceğine karar vermek için istenen filtreyi girin. Filtre sorgusunu belirtmek için syntax arama alanını kullanın.

5- Daha sonra bağlantı listesiyle eşitlemek istediğiniz Connection seçin. İsteğe bağlı olarak,  Notes alanında tetikleyici için bir referans tutmak amacıyla bilgileri girin.

6- Trigger etkinleştirmek için geçişi etkinleştirin. Geçişin devre dışı bırakılması durumunda, trigger çalışmayacaktır.

Clean-up Tools

Exalate, issue senkronizasyonunu durdurmaya ve her iki tarafta senkronizasyonla ilgili meta dataları kaldırmaya yardımcı olan bir araç sağlar. Bir ortamdan diğerine senkronize edilen bilgiler clean-up ile kaldırılmayacaktır. Aşağıdaki her iki durumda da Clean-up Tools(Temizleme Araçları)’u kullanabilirsiniz:

  • Issue senkronizasyonunu durdurmak istediğinizde,
  • İşlenmemiş senkronizasyon sorunlarını çözmeniz gerektiğinde.

Örneğin, her iki ortamdaki senkronizasyon bilgilerini bir issue veya bağlantı gibi farklı kriterlerle kaldırmak mümkündür. Senkronizasyon; Sync Queue’daki senkronizasyon istekleri, işlenmeden hemen durdurulacaktır.

1. Cleanup by issue

Senkronizasyonu belirli bir issue için issuekey kullanarak durdurabilirsiniz.

2. Cleanup by connection

Belirli bir bağlantı altında senkronize edilen tüm issue’lar için senkronizasyonu durdurabilirsiniz.

Exalate, senkronize edilmiş issue’larınız olup olmadığını kontrol eder ve devam eden giden veya gelen senkronizasyon olayları olup olmadığını gösterir.

Exalate, siz bir bağlantıyı temizledikten sonra issue mapping .csv dosyasını otomatik olarak oluşturur. Dosya, {$ JIRA_HOME} / export / dizininde bulunur. Dosyayı adına göre tanıyabilirsiniz. Oluşturulduğunda bağlantı adı, tarih ve saat verilerini içerir.

Dosya adı şablonunu eşleme:connect-${"ISSUE" or "RELATION" or "INSTANCE"}-${ $issueKey or $connectionName }-${ $currentDateTime.format("yyyyMMdd_HHmmss") }.csv

Errors

Yönetici menüsünden Errors tabı aracılığıyla kurulan connection üzerinde oluşan hataları görüntüleyebilir ve bu hataların çözümünü sağlayabilirsiniz.

Sync Queue

Exalate uygulaması, devam etmekte olan giden ve gelen senkronizasyon mesajlarını izlemek için bir Senkronizasyon Sırası(Sync Queue) yardımcı programı sağlar. Bunu Exalate yönetici menüsünde ayrı bir sekme olarak bulabilirsiniz.

Bu araç, işlenmekte olan senkronizasyonla ilgili verileri depolar. Eklerin senkronizasyonunu ayrı olarak da izleyebilirsiniz.

Outgoing Sync sekmesi, Devam ediyor durumunda sıraya(kuyruğa) alınmış giden senkronizasyon olaylarını görüntüler. Exalate, ilgili lokal issue güncellendikten sonra bir Sync Event(Eşitleme Etkinliği) oluşturur. Tüm işlenmiş senkronizasyon etkinliklerini bu sekme altında bulabilirsiniz.

Incoming Sync sekmesi, Devam ediyor durumunda sıraya alınmış gelen senkronizasyon isteklerini görüntüler. Exalate, remote issue güncellendiğinde Sync Request(Senkronizasyon İsteği) oluşturur. Bu sekme altında işlenen tüm senkronizasyon isteklerini görebilirsiniz.

Outgoing Attachments, işlemleri devam etmekte olan eklerin giden senkronizasyon olaylarını görüntüler.

Incoming Attachments, işlemleri devam etmekte olan eklerin gelen senkronizasyon olaylarını görüntüler.

Entity Sync Status

Exalate uygulaması, yönetici panelinde ilgili ortam sürümüne göre Entity Sync status sekmesini de içerebilir. Bu sekme Jira Cloud, GitHub, Zendesk, HP ALM / QC, Azure DevOps ve Servicenow için Exalate uygulamasında mevcuttur.

Bu sekme altında bir varlığın(issue ya da connection) senkronizasyon durumunu kontrol edebilirsiniz. Exalate, bazı platformlar için birden fazla varlığın senkronize edilmesine izin verir. Yapmanız gereken, açılır menüden varlık türünü seçmek olacaktır. Belirli bir issue hakkında ayrıntılı bilgi almak için varlık kimliğini(id) belirtin.

Issue’nun zaten senkronizasyon altında olması durumunda, issue durumunu ve mevcut olması durumunda remote issue bağlantısını göreceksiniz. Ayrıca, lokal ve remote kopyaları buradan kontrol edebilir veya Unexalate işlemini kullanarak senkronizasyonu durdurabilirsiniz.

Instances Synchronization

Desteklenen issue izleme platformlarından herhangi ikisini senkronize edebilirsiniz.

  • JIRA Cloud
  • JIRA Server
  • HP QC/ALM
  • GitHub
  • Zendesk
  • Servicenow

Jira to Jira Synchronization

  • JIRA Server aynı Instance içinde issue, projeler arası bir senkronizasyon kurulabilir.
  • JIRA sunucusu private bir ağda olsa ve ona dışarıdan erişemiyor olsanız bile JIRA Cloud ve JIRA Server  ortamlarını senkronize edebilirsiniz. Her iki ortam da geçerli bir Exalate plug-in ve lisansa sahip olmalıdır.

İki örnek arasındaki senkronizasyon, yapılandırılmış bir Bağlantı(Connection) gerektirir. Bir tarafın bağlantıyı başlatması ve bağlantı ortağı olan ortama(Hedef örneğe) bir davet göndermesi gerekir. Diğer tarafın yapılandırmayı kendi tarafında bitirmesi ve bağlantı kurulumu sağlanması gerekir. Bu davet; Bağlantı adı, Hedef URL ve İletişim türü gibi önceden doldurulmuş bağlantı ayrıntılarını içerir.

Aşağıdaki örnek türleriyle senkronize edebilirsiniz:

Public
Hedef örnek genel bir ağdadır ve ona kendi tarafınızdan erişebilirsiniz.
Private
Hedef örnek özel bir ağda veya bir güvenlik duvarının arkasında ve ona kendi tarafınızdan erişemezsiniz.
Local
Lokal projeleri senkronize etmek için kullanılır.

Alanların açıklamaları:

Destination Instance URL
Bağlantı kurmak istediğiniz diğer örneğe link verin. Bağlanmaya çalıştığınız örneğin bağlantısını veya Genel Ayarlar’dan Exalate URL’sini girebilirsiniz.
Local instance short name
Örneğinizin kısa adı.
Destination instance short name
Hedef örneğin adı.
Name
Bağlantının adı.
Description
Bağlantının açıklaması.

Yazımız  https://docs.idalko.com/exalate/ sayfasından ve diğer kaynaklardan derlenmiştir.

Daha fazla bilgi ve istekleriniz için  info@almbase.com adresinden bizimle iletişime geçebilirsiniz.

Almbase Teknoloji A.Ş. 2023. Tüm Haklar Saklıdır.