18 Haziran 2018 Pazartesi

Ve karşınızda... Çoban!

Bundan önceki yazımı yazalı 2 ay olmuş. Efendim son 2 aydır çok hummalı bir şekilde ve uzun zamandır aklımda olan bir projeye başlama kararı aldım ve gün itibariyle oldukça şekillendi, sonuçtan da oldukça memnunum. Bu heyecanımı sizlerle de paylaşmak istedim. 

Not: Baştan belirtmek isterim ki yazı ister istemez biraz pazarlama kokacak, çünkü ürettiğim ürün doğrudan verdiğim hizmet ile ilgili, yani herkese ücretsiz olarak açık bir ürün değil.

Bakım ve Destek Anlaşması kapsamında müşterilerime yıllardır geliştiriyor ve güncelliyor olduğum Kangal isimli veritabanı izleme mekanizmamı kuruyorum. Çok özetle bu mekanizma ile müşterilerimin veritabanı sunucuları güvenlik, performans, yönetim, bakım ve hata izleme gibi birçok kategoride sürekli denetleniyor ve bir sorun anında hemen alarm üretiliyor ve ilgili kişiler ayrıntılı bir şekilde bilgilendiriliyor. 

Bu sene Kangal için farklı talepler gelmeye başladı. Örneğin İzmir'de bulunan büyük bir yazılım firması ile geleneksel bakım ve destek anlaşması yapmak yerine, Kangal'ın kiralanması ve yanında danışmanlık hizmeti verilmesi üzerine anlaştık. Bir banka ile de Kangal'ın kiralanması üzerine görüştük. Fakat o zaman Kangal'ın bir arayüz uygulaması yoktu. Denetim ve izlemeyi yapan kodların her ne kadar yönetimi kolay olsa da, bu hiçbir zaman şık ve kullanışlı bir arayüzün yerini tutmaz. Ayrıca biriken istatistiklerin grafik arayüzlerle yorumlanması çok daha anlaşılır olabiliyor.

Bunun yanısıra Bakım ve Destek Anlaşmamız olan firmalardaki BT yöneticilerine Kangal'ın marifetlerini daha iyi gösterebilmem gerektiğini fark ettim. Yöneticiler bir hizmet alıyordu, alarmları görüyorlar, sorunlara da en kısa sürede müdahale edildiğini biliyorlardı; fakat bir taraftan da kendileri de bir şeyleri kurcalamak isteyebiliyorlardı.

Ben de bu yeni duruma ve talebe uyum sağlamak için Çoban'ı geliştirdim. Bu haberin özetini sizlerle burada birkaç görsel eşliğinde paylaşmak istedim. Yazı çok uzun ve sıkıcı olmasın diye sadece birkaç ekrana dair bilgi paylaşacağım. 


Çoban ile Kangal ilişkisi

Öncelikle şu temel bilgileri paylaşmak isterim:
- Verileri toplayan, raporları ve e-posta alarmlarını üreten Kangal'dır. Her bir veritabanı sunucusunda bir tane olur. Verileriniz kesinlikle dışarıya çıkmaz ve uzaktanki bir sunucuda depolanmaz. Kendi veritabanı sunucunuz üstünde tutulur. Kangal'ı bir "Agent" gibi düşünebilirsiniz.
- Çoban, Kangal'larda biriken verilerin analiz edilmesini, görsellerle daha iyi yorumlanabilmesini ve Kangal'ların kolaylıkla yapılandırılmasını sağlar. Örneğin Çoban'ı kendi ve diğer iş arkadaşlarınızın bilgisayarına kurarsınız ve tüm Kangal'ları yönetirsiniz. Çoban bir yönetim ve analiz arayüzüdür.
İki ürünün hem entegre, hem de ayrı olmasının nedeni esneklik sağlamak. Örneğin Çoban'a gerek kalmadan Kangal tek başına çalışabilir.
- Lisanslama Kangal bazında yapılır.


Çoban'ın giriş sayfası.
Her olasılığa karşın uygulamayı tamamen İngilizce dilinde tasarladım. Şu anda hala Beta sürümleri yayınlanıyor. Bununla birlikte ilk versiyonundan beri pilot müşterilerim tarafından kullanılıyor.

Sağolsunlar, birçok firmaya girip çıkma, birçok BT ve veritabanı yöneticisiyle tanışma ve ihtiyaçlarını dinleme şansım oluyor, ayrıca ben kendim de 12 senedir veritabanı yöneticisi olarak çalışıyorum ve 21 senedir kod yazıyorum. Kangal'ı tasarlarken amacım topladığı veriyi bulunduğu ortamdan çıkartmadan (güvenli) dağıtık planda çalışabilecek (esnek) bir yapı kurmaktı. Çoban ile de bu biriken veriden hem BT yöneticilerinin faydalanabilmesini istedim, hem de veritabanı yöneticilerinin hayatlarını kolaylaştırmak istedim. 


Instance seviyesindeki iyi/kötü pratik kontrolü ve durum raporu

Çoban ile bir SQL Server Instance'ına bağlanır bağlanmaz, o Instance ile ilgili sunucu düzeyindeki olası kötü pratikleri veya olası sorun noktalarını görürsünüz. Çoban size en sık karşılaşılan sorunları işaret eder.



İşlemci kullanım ayrıntıları

Ana panodaki işlemci ile ilgili sayfada tek bakışta son 30 dakika (veya seçeceğiniz farklı bir zaman dilimi) içerisinde kullanılan işlemci miktarını, ayrıca aynı zaman diliminin dünkü ve hatta geçen haftaki işlemci kullanım miktarını bir seferde görebilirsiniz. Böylece yaşanan yoğunluk normal mi, işlemci kullanımı dün veya geçen hafta da böyle miydi sorusunun cevabına hemen ulaşabilirsiniz. Ayrıca yine aynı ekranda işlemci kaynaklarının en çok hangi veritabanındaki kodlar tarafından tüketildiğini de görebilirsiniz. Önümüzdeki versiyonlarda da bu ekrana en fazla işlemci kaynağı tüketen sorguların ekleneceğini tahmin etmek zor değil sanırım.


Ayarlar

Kolay anlaşılabilir ve pratik olsun diye ayarlar ekranını yukarıdaki gibi, cümlelerle tasarladım. Çoban'dan yapacağınız tüm değişiklikler, doğrudan bağlandığınız sunucudaki Kangal'da uygulanacaktır.


Uygulama hatalarını takip ekranı
Uygulamalarınızın veritabanında ne zaman, hangi SQL komutunu çalıştırarak, ne hata aldığını bu ekrandan geriye dönük olarak takip edebilirsiniz. Bu tür verileri kaç güne kadar geriye dönük tutabileceğinizi Çoban'ın ayarlar ekranından belirleyebilirsiniz. Bu ayarlara göre Kangal, eski istatistikleri otomatik olarak silecektir. 

Özellikler ekranı
Şu anda 79 tane özellik var. Yukarıdaki ekran görüntüsünden de görebileceğiniz üzere bu özellikler Açık kalan Transaction, Blocking, kullanılabilir disk alanı, işlemci kontrolü gibi özellikler. Dilediğiniz özelliği, dilediğiniz sunucuda açıp kapatabilirsiniz. Hatta dilerseniz istediğiniz özelliği, istediğiniz zaman aralığında uyku durumuna sokabilirsiniz, böylece istediğiniz zaman aralıklarında alarm üretilmemiş olur. Yine istediğiniz alarmı, istediğiniz kişi veya gruba yönlendirebilirsiniz. Ayarlar penceresinde posta grupları oluşturabiliyorsunuz, o grupları bu ekrandaki istediğiniz özelliğe atayabilirsiniz.

Yine Özellikler'le doğrudan bağlantılı olarak, aşağıdaki ekran görüntüsünü paylaştığım İstisnalar sayfasında istediğiniz özellik için istisna tanımlayabiliyorsunuz. Örneğin istisna tanımlayarak X veritabanında Blocking oluştuğunda veya Y uygulamasından çalıştırılan ve uzun süren sorgular için alarm üretilmemesini sağlayabilirsiniz.


İstisna tanım ekranı

Yukarıdaki özellikler sayesinde aşağıdaki başlıklarla ve sorunlar hakkında ayrıntılı bilgiler içeren e-postalar alıyorsunuz.


Sistem olay kayıtları

Kangal için de, Çoban için de bakım ve destek anlaşmamız devam ettiği sürece ek bir ücret ödemeden faydalanabiliyorsunuz. İki ürün için de sık sık ve ayrı ayrı güncelleme üretilmeye, yeni özellikler eklenmeye devam edecek. Güncellemeleri de yine Çoban'ın ilgili arayüzleri vasıtasıyla kolaylıkla yapabileceksiniz. Bunun için size özel oluşturulan bir kullanıcı hesabını kullanıyorsunuz.


Kangal ve Çoban güncellemeleri

Aşağıda paylaştığım DDL Change Tracking desteğini Çoban'a 1.0.0.5 versiyonunda ekledim. Bu özelliği hangi veritabanında etkinleştirirseniz o veritabanındaki tüm tablo, prosedür, kullanıcı ve benzer değişiklikler aşağıdaki gibi kayıt altına alınır. Eğer dilerseniz kritik nesneler için tanım oluşturabilirsiniz ve o nesnelerde değişiklik gerçekleştiğinde (örneğin kritik bir tabloya yeni bir alan eklendiğinde) alarm üretilir.


DDL Change Tracking


Aşağıdaki 2 ekranda da Log Shipping ve Replication takibine dair ayrıntıları görebilirsiniz.


Log Shipping
Replication


Şikayetlerinizi, alacağınız olası hataları ve taleplerinizi aşağıdaki form vasıtasıyla doğrudan bana ulaştırabiliyorsunuz. Kaynak kodlar bizde, talebinize ve ihtiyacınıza özel yeni özellikler ekleyebilir, varolanları güncelleyebiliriz.


Geribildirim formu
Tüm iş ortaklarım için faydalı olması dileğiyle.


Ekrem Önsoy
Microsoft SQL Server Danışmanı
www.ekremonsoy.com