DBA Hangi İş Birimleri ile Çalışır ?

Merhabalar,

Bilişim sektörü için “veri” terimi oldukça iyi temeller üzerine oturtulmuş kavramlar ile tanımlanabilirken, farklı bir sektörden ya da çevremizden birisiyle sohbet ettiğimizde yaptığımız işin hammaddesi olan veriyi anlatmak oldukça güç olabilmektedir. Şöyle bir ifade ile anlatmak istersiniz fakat zihinlerde ilk halinden daha fazla soru işaretleri oluşturursunuz.

“Aslında veri her yerde vardır ama bizim yaptığımız iş o veriyle değil, başka verileri yönetiyoruz biz.”

İşte bu cümle veri kavramına giriş cümlesidir. Oradan devam edersiniz ve “İnternette ya da bir uygulamada gördüğün birçok şeyin arka tarafta kayıt altına alındığı yerdir veritabanı” diye devam edersiniz. ”Biz orada tutulan verilerin tutarlılığını ve güvenliğini sağlıyoruz” dedikten sonra noktalarsınız sohbeti.

Bu anlatım her ne kadar bu sektörden uzak kişilerle aranızda geçen sohbet olsa da bazı durumlarda yakın sektörlerde de yaşanabilir. Hatta yazılım takımı içindeki çalışma arkadaşlarınıza bile çay molasında ne iş yaptığınızı anlatırken bulursunuz kendinizi. Sizi en iyi anlayanlar ise dirsek teması çalıştığınız çalışma arkadaşlarınız ya da meslektaşlarınız olur. Çünkü orada bir düzen vardır. Veri alınır başka yere gider. Siz veriyi uygun hale getirirken diğer çalışma arkadaşınız o veriyi bekler. O yüzden ne yaptığınızı ve ham verinin nasıl olduğunu bildiği için sizi ve yapılan işi yorumlayabilmektedir.

Bu yazımızda bir DBA kendi günlük, haftalık, aylık planlarında ne iş yapar bunlardan bahsetmeyeceğim. Eğer bu konu ile de ilgileniyorsanız sizi şöyle bu linke alalım. 😊

Yazımızın konusu olarak DBA yani bir veritabanı yöneticisi hangi birimlerle çalışır, bu birimlerle hangi süreçleri yürütür bunlarla ilgili fikir vermesi açısından bilgiler paylaşmak istiyorum. Paylaşacak olduğum bilgiler şirketten şirkete değişkenlik gösterebilir. Çünkü şirketin büyüklüğü DBA görevlerinde farklılıklar yaratacaktır. Hatta aynı büyüklükteki iki farklı şirkette bile DBA’lerden farklı beklentiler olabilir.

Örneğin, veritabanında yer alan eski verileri belirlemek ve arşivlemeye gitmek için bir çalışmayla başlayabilirsiniz. Yan koltuğa geçtikten sonra bir DWH uzmanı olarak, bu veriler için uygun altyapı düzenlemeleri yapıp SSIS paketleri hazırlayarak arşivleme çalışması ile devam edersiniz. Bu da yeterli gelmeyip bir yan koltuğa geçerek artık bir İş Zekası Uzmanı olursunuz. Hazırlanmış olan ve arşivlenmiş veriler üzerinde uygun dönüşümler yaparak BI (Business Intelligence) toolları üzerinden bu ham verileri anlamlandırmak amacıyla raporlar oluşturmaya başlamışsınızdır bile.

Bu adımlar da yetmediyse son olarak toplantı salonuna geçip yönetim toplantısına katılarak bu raporları sunmaya ve karar alma süreçlerine dahil olmaya ne dersiniz ?

Tabi ki bu örnek uç noktalarda olsa da konunun özeti niteliğinde. Bir bankada sadece backup süreçlerini takip eden ekip de var, yukarıda örneğini vermiş olduğum süreçler için ayrı ayrı ekip barındıran firmalar da. Hepsini birden isteyen de olacaktır. Fakat profesyonel bir organizasyonda süreçlerin sağlıklı ilerlemesi ve maksimum fayda için ekipler genelde ayrı ayrıdır.

Peki bir DBA genel hatlarıyla hangi ekiplerle nasıl çalışmalar yürütür bunları inceleyelim.

  1. System/Network Admin
  2. Yazılım Geliştirici
  3. DWH(Veri Ambarı) Ekibi
  4. BI(İş Zekası) Ekibi

Yukarıda da bahsetmiş olduğum gibi DBA görevleri ve çalışma alanı şirketten şirkete farklılık gösterse de genel anlamda bu 4 ekiple birlikte hareket etmektedir.

System/Network Admin

Sanal sunucular üzerinde barındırdığımız SQL servisleri sebebiyle DBA ekibi System ekibiyle birlikte sık sık iletişim halindedir. Sunucu bakımı, güncellemeleri ve genel performansı System ekibi kontrolünde, SQL sunucularının bakımı, performansı ve CPU, disk tüketimi gibi kaynakların takibi DBA kontrolünde yürümektedir.

Veritabanı yöneticisinin bildiğimiz üzere en önemli görevlerinden birisi veri güvenliğini sağlamak ve veri kaybını önlemektir. Bu görevlerini yerine getirirken ise veri yönetimini performanslı hale getirmek ve veri kaybını azaltmak için birtakım özel teknolojiler kullanmaktadır. Bunların arasında Felaket Kurtarma (Disaster Recovery-DR) ve Yüksek Erişilebilirlik (High Availability-HA) gibi teknolojiler yer almaktadır. Bu teknolojiler kısaca deprem, sel, yangın gibi durumlarda iş süreçlerinin aksamaması için başka sunucular üzerinden hizmete devam etmesidir. İşte bu tarz durumlarda gerekli altyapı ve network bağlantıları System ekibi desteği ile gerçekleştirilirken SQL tarafında kurulumlar ve konfigürasyonlar ise DBA ekibi tarafından gerçekleştirilir.

Böyle bir durumda network ya da sistemsel bir durumdan dolayı SQL sunucuları arasında anlık kesintiler yaşanabilmektedir. DBA ve System Admin ellerindeki error loglarını ortaya koyarak sorunu tespit etmek ve problemi çözmek adına ortak çalışma yürütür.

Yine başka bir örnek vermek gerekirse, şirket içi AD (Active Directory) üzerinde yer alan kullanıcı gruplarına, SQL sunucularında erişim hakkı tanımlamak amacıyla iletişim halinde olursunuz.

Tabi ki yeni sunucu temini, mevcut sunucularda kaynak artırımı talebi, SQL servislerinin versiyon yükseltmeleri ya da güncellemeleri gibi ihtiyaçlar da doğmaktadır. Bu gibi talep ve performans düzenlemelerini de içeren konularda System Admin&Datacenter ekibiyle yine ortak çalışmalar yürütülmektedir.

Özetle bir DBA,System Admin ile sunucu üzerindeki süreçler ve veritabanını etkileyecek çalışmalar için iş birliği yapmaktadır.

Yazılım Geliştirici

Görev tanımımızla birlikte değişecek olsa da fikir oluşması amacıyla elimden geldiğince anlatmaya çalışacağım.

Yazının başında da bahsetmiş olduğumuz gibi her şirkette DBA’den beklentiler farklı olabilir. Kimi firmalar sunucu monitoring edip, herhangi bir müdahale gereken durumlarda gerekli inisiyatifleri alıp problemi çözmenizi beklerken kimi şirketlerde ise T-SQL kullanarak bir view hazırlamanızı ya da Stored procedure yazmanızı bekleyebilir.

Yazılım geliştirici ekiple birlikte ortak yürütülen çalışmalar ise bahsetmiş olduğumuz gibi view ya da stored procedure hazırlamak olabilir. Ya da bu tarz obje oluşturmalarında daha çok sorgu performansına yönelik fikir alışverişleri olabilir. Developerın hazırlamış olduğu stored procedure için sorgu performansını incelemek ve gerekliyse bazı yerlerinde değişikliğe gidilmesini talep etmek bu iş birliği için bir örnek olabilir. Ya da çok sık çalıştırılan ve birden fazla tablonun kullanılmış olduğu view için yürütme planı(execution plan) incelenerek sorgu koşullarını index kullanılacak şekilde değiştirmek ya da gerekli indexi tanımlamak bu görevler arasında olabilir. Bu süreçler ilgili developer ile birlikte incelenmelidir.

İş süreçlerinin temas edeceği bir başka durum ise SQL sunucularında çalıştırılan joblardır. Veri güvenliği açısından developer ekibi sadece kullanacağı database üzerinde tam yetkilidir. Sunucu seviyesinde yetkiler DBA üzerinde olduğundan belirli aralıklarla çalıştırılması gereken Jobların tanımlaması, düzenlemesi ve bilgi aktarımı yine DBA tarafından yapılıp, developer ile paylaşılmaktadır. Bu joblar çalıştığında herhangi birisinde alınan hatalar DBA tarafından düzeltilebileceği gibi developer tarafından da düzeltilebilmektedir. Bu konuda alınacak aksiyonu, Job historysinde belirtilen hatanın düzeyi belirlemektedir.

Database ve tablo oluşturmak, kolon ya da constraint tanımlamak, oluşturulan kullanıcı için database yetkilendirmeleri, database seviyesinde yapılacak bir değişiklik sırasında verinin güvenliğini sağlamak amacıyla yapılacak her türlü çalışma yine DBA ve Developer ekibinin birlikte iletişim halinde olduğu durumlara örnek olarak verilebilir.

DWH(Veri Ambarı) Ekibi

Her geçen gün katlanarak büyüyen ve bununla birlikte popülerliği daha da artan veriler, şirketler açısından da artık önemli bir yatırım alanına dönüşmüştür. İnternette gezinirken bile hareket ettirdiğimiz imleç sayesinde gerçek zamanlı veri oluşturduğumuzu düşündüğümüzde şirketlerin bu kadar büyük yatırımları neden yaptığı rahatlıkla anlaşılabilmektedir. Bu değer her zaman için yeni oluşan ya da oluşacak olan verileri değil, geçmişte üretilmiş verileri de kapsamaktadır. Böyle bir durumda eski verileri başka bir ortama alarak , sunucu üzerinde aktif olarak kullanılmayan verilerin oluşturmuş olduğu yükten kurtulmuş ve ekstra performans kazanmış oluruz.

Bir şirketin sürekli büyüdüğünü düşünelim. Bu noktada artan veri kapasiteleri sebebiyle sürekli disk upgrade etmek ya da diğer sunucu kaynakları artırmak maliyet bakımından zamanla yük oluşturmaya başlayacaktır.

İşte tüm bu işlemler çeşitli yazılımlar aracılığıyla gerçekleştirilirken taşınacak verilerin hangi zaman aralıklarında olacağını ve hangi verileri kapsayacağını belirlemek DBA’ler tarafından yapılabildiği gibi ayrı bir DWH ekibi tarafından da yürütülebilmektedir. Bu gibi süreçler işletilirken ya da otomatize edilirken bu iki ekip ortak bir çalışma yürütmektedir. DBA ekibi ilgili ham veriler için uygun düzenlemeleri gerçekleştirirken DWH ekibi ise bununla ilgili süreçleri işletmektedir.

BI(İş Zekası) Ekibi

Dünyanın önde gelen şirketleri bir yandan veriyi güvenle saklamak ve kesintisiz erişim sağlamak için teknolojiler geliştirirken bir yandan da oluşmuş olan veriyi anlamlandırmak üzerine teknolojiler geliştirmektedir. Özellikle son 5 senelik geçmişe baktığımızda veri konusunda birçok iş biriminin büyüdüğünü görmekteyiz. Veri bilimi, Makine Öğrenmesi, İş Zekası gibi.

Veriyi değerli kılan şey verinin bir database ya da tabloda tutulmasından ziyade verinin anlamlandırılabiliyor olmasıdır. Giderek artan BI çözümleriyle birlikte bu veriler artık şirketlerdeki BI ekipleri tarafından anlamlı hale getirilerek, bu anlamlı veriler üzerinden çeşitli stratejiler geliştirilmektedir.

Bir şirketin 10 yıllık geçmişe sahip olduğunu düşündüğümüzde elde edilen müşteri portföyünün cinsiyet ve yaş dağılımı, alışveriş sepet tutarı ortalaması, en çok hangi ilde hangi saatlerde kampanyalı satışlar yapıldığı gibi detaylar grafiksel raporlar üzerinden rahatlıkla okunabilmektedir.

Veritabanımızda yer alan 6 ay-1 yıl önceki veriler bile müşteri tarafında çok fazla kullanılmazken, 10 yıllık verilerle birlikte bakım zorluğu ve maliyeti artar, sistemin performansı düşer dolayısıyla sorgular geç gelmeye başlar. Fakat bu verileri arka planda kullanarak kampanya saati belirlemek ekstra satış ve müşteri olarak geri dönecektir. Bu tarz bir raporlamada veriden sorumlu olan kişi olarak DBA, aktif olarak kullanılmayan verileri DWH ekibiyle görüşerek hazırlar, aktarımlar tamamlanır ve BI ekipleri ise bu DWH yapısı üzerinden gerekli raporları hazırlayarak süreci noktalar.

Bir DBA yazılım ekibinde hangi birimlerle iş birliği içinde olur, hangi süreçlerde yer alır genel hatlarıyla aktarmaya çalıştım. Umarım bu sektörü seçecek ya da bu sektöre yönlenecek kişilere fikir oluşturmak adına fayda sağlayabilmişimdir.

Bir sonraki yazıda görüşmek üzere.

Hoşça kalın.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.