27 Şubat 2017 Pazartesi

SQL Server Üzerinde 'Veri Şifreleme' Teknikleri ( E-Kitabım Yayınlandı )

Microsoft SQL Server üzerinde Veri Şifreleme yöntemlerine odaklandığımız e-kitabımı sizlerle paylaşmaktan mutluluk duyuyorum. 

Microsoft SQL Server üzerinde Veri Şifreleme konusunda temel seviyede beceri oluşturmasını ve daha fazlası için cesaret vermesini dilerim.

Giriş


Veritabanı şifreleme yöntemleri ile hassas verileri şifreleyip koruyabilirsiniz. Şifrelenmiş veriler ilk bakışta anlamsız ifadelerle temsil edilir ve üzerinde çalışılması engellenir. Kredi kartı bilgilerini, kişisel kimlik bilgilerini veya herhangi birisi için önemli olan, görünmesini ve kolayca kullanılmasını istemediğiniz diğer verileri hassas veri olarak düşünebilirsiniz.

Firmalar müşterileri, personelleri, finansal geçmişleri ve stratejileri ile ilgili hassas bilgileri yetkisiz gözlerden korumak için birçok seviyede çeşitli önlemler almaktadır. Bu önlemler yönetim, yöntem, insan, donanım ve yazılım seviyesinde olabilir. Pesimist veya optimist yaklaşımlara göre belli seviyede veya her seviyede farklı yöntemlerde önlemler alınabilir.

Verileri korumanın en etkili yolu onları şifrelemektir. Şifrelenmiş veriler farklı bir sisteme taşınsa bile onları okumak neredeyse imkansızdır. Tarih boyunca birçok şifreleme yöntemi uygulanmış ve çeşitli birçok konuda avantaj veriyi şifreli tutan veya şifreli veriyi okumayı başarabilen tarafta olmuştur.

Bu kitapta avantajı daima elinde tutmak isteyenler için Microsoft SQL Server üzerinde uygulanabilecek şifreleme yöntemlerine odaklanıyoruz. Bu yöntemlerin koruma gücü, geliştirme iş yükü, performansı, bakım sıklığı gibi çeşitli alanlarda kendine göre avantaj ve dezavantajları var. Sisteminiz için en uygun olan yöntemi dikkatlice belirlemeniz gerekir.

Kitap Hakkında


Bu kitap Microsoft SQL Server 2005, 2008, 2008 R2, 2012, 2014 ve 2016 versiyonları üzerinde uygulanabilen veri şifreleme yöntemlerini konu almıştır. Kitabın amacı, kolayca ve pratiğe dayalı bir yaklaşımla şifreleme yöntemlerinin temellerini okurlarına aktarmaktır.

Veri Şifreleme (Data Encryption) geçmişten bu güne ilgi çeken önemli bir konudur. Ancak bir çok uzman bu konuya tedirginlikle yaklaşır. Bu kitap sayesinde SQL Server üzerinde veri şifreleme yöntemlerinin temellerini öğrenecek, daha derine dalmak için cesaret bulacaksınız.

Geri bildirimlerinizi şu adresime gönderebilirsiniz: mailto:abdullahkise@hotmail.com

Faydalı olması dileğiyle …

E-kitabı okumak ve indirmek için:
https://1drv.ms/b/s!Ap5-WHzOJRrTi-5xYhoiCWwIRlyucQ?e=Usiqeh


E-kitabı okumak ve indirmek için:
https://1drv.ms/b/s!Ap5-WHzOJRrTi-5xYhoiCWwIRlyucQ?e=Usiqeh

6 Şubat 2017 Pazartesi

Dijital Dönüşüm Hız Kazanıyor - MS ve Koç Topluluğu Hackathonu

Bir kaç gün önce (25-26 Ocak) MS ve Koç Grubu “hackathon” etkinliği düzenledi. Bu etkinlikte Koç Grubu'ndaki kuruluşlar "dijital dönüşüm" kapsamında 20 civarı proje üzerinde çalıştı. Hepsi de son Teknolojiydi.

İki gün süren etkinlikte bir birinden güzel senaryolar kurgulandı. Çalışmaların detaylarını burada yayınlamayacağım. Ama son teknolojilerin hayata geçirildiği ilham dolu senaryoların yakında hayatımıza etki edeceğini söyleyebilirim.

Etkinlik boyunca MS ekibi ve MVP mentorler eşliğinde tüm firmaların proje fikirleri Microsoft'un son teknolojileri ile vücut buldu. Etkinlik sonunda da firmaların sunumlarını dinledik. Hepsi de bir yönüyle taktir gören ve ilham veren çalışmalardı.

Ben de bu etkinlikte proje gruplarına "Data Platform" MVP mentorü olarak desteğimi vermiş oldum. 

Koç Grubu'nu ve ilham dolu fikirlerini hayata geçiren tüm katılımcıları dijital dönüşüm yolunda attıkları öncü adımları için tebrik ediyorum.

Firmalara bakılırsa bu çalışmanın meyvelerinden yakın zamanda tüm ülke nasipleneceğe benziyor. 

Amerikan Hastanesi Koç Üniversitesi
Arçelik Opet
Aygaz Otokoç
Divan Setur
Ford Otosan TANI
Koç Holding Tofaş
Koç Sistem Tüpraş
Koçtaş

Etkinlikten bir kaç kare:


8 Ocak 2017 Pazar

NoSQL Dünyası - 3 (CAP Teoremi)

Veri büyüklüğü, veri akış hızı, çeşitliliği, istemci sayısı vs. arttıkça veritabanı performansı bizi tatmin etmemeye başlar. Bu durumda veritabanı uygulamasının ayarlarında ve veritabanı tasarımında bazı değişiklikler yapılır. Yeni bakış açıları ve uygulanan ayarlar sonucunda ortaya çıkan performans çoğunlukla tatmin edici olur. Fakat bazen ihtiyaçlar öyle bir noktaya varır ki altyapıda da bir takım değişiklikler yapmak gerekir.

Tatmin edici performans değerlerine ulaşabilmek için sisteminizde iki tür ölçeklendirme yapabilirsiniz; Dikey ölçeklendirme (Vertical Scale Out) ve yatay ölçeklendirme (Horizontal Scale Out). Mesela; cihazınızın donanımlarını güçlendirdiğinizde (örneğin; bellek, işlemci vs. eklediğinizde) dikey ölçeklendirme yapmış olursunuz. Birden fazla cihazı aynı amaç uğruna kullanabilmek için birbirine bağladığınızda ise yatay ölçeklendirme yapmış olursunuz.

Ölçeklendirme kısmının detayı için bir önceki yazımızı inceleyebilirsiniz;
http://www.abdullahkise.com/2016/02/nosql-dunyas-2-veri-tutarllk-modelleri.html

Yatay Ölçeklendirme ile Gelen Yeni Oyun Kuralı : CAP Teoremi


Eğer tek bir bilgisayarın performansı size yetmiyorsa. Özellikle geleneksel veritabanları ile çalışma konusunda bir engeliniz de yoksa tercihinizi birden fazla bilgisayarın görev aldığı yatay ölçeklendirmeden yana kullanabilirsiniz. Hatta bazen yatay ölçeklendirme bir zorunluluk haline gelir.

Yatay ölçeklendirme yapıldığında ortaya dağıtık sistemler çıkar. Dağıtık sistemler birden fazla birbirine bağlı düğümden (basitçe bilgisayar olarak kabul edebiliriz. Sanal makine, bir uygulama kurulumu vs. olabilir.) oluşan ve aralarında çeşitli kurallara göre verileri paylaşabilen bir ekosistem oluşturur. Bu ekosistemdeki temel kural da CAP teoremi ile ifade edilmektedir. CAP teoremi birden fazla düğümün iş birliği yaptığı sistemlerde ortaya çıkan durumları açıklar.

CAP teoremi aşağıda bahsedeceğimiz özelliklerin ilk harfleriyle isimlendirilmiştir.

CAP teoremi der ki; Dağıtık sistemlerde aynı anda aşağıdaki üç özelliğin sağlanması mümkün değildir. 

Özellikler şunlar;
  • Consistency (Tutarlılık): Tüm düğümlerde aynı anda aynı veri görünür. Yani en son değişikliklerin tüm düğümlerde yerini alması garantidir.
  • Availability (Erişebilirlik - Müsait Olmak):  Her istek sistem tarafından cevaplanır. Yani sistem hatalı veya başarılı tüm taleplere beklendiği gibi cevap verir.
  • Partition Tolerance (Parça Toleransı - Parçanın Eksilmesine Tolerans): Bir kısmı zarar görse de sistem çalışmaya devam eder. Yani bazı düğümler çalışmasa da veya düğümler arası ağda bir hasar olsa da işler aksamaz. Tabi ki makul seviyede bir bozukluktan bahsediyoruz. Tüm sistemi çalışmaz hale getirecek hasarlar her zaman olasıdır.
Teorem gereği dağıtık sistemlerde bu özelliklerden aynı anda en fazla iki tanesi sağlanabilir. Bir tanesinden feragat edilir. Ortaya çıkan alternatif hallerden iş modelinize uygun olanını belirlemeniz 500'den fazla NoSQL veritabanı teknolojileri arasından size en uygun olanını bulmanızda büyük kolaylık sağlar. Mevcut sisteminizin iş modelinizle uyumlu olup olmadığını bir dereceye kadar bu teorem üzerinden sorgulayabilirsiniz.

CAP teoremi, dağıtık sistemlerdeki alternatif hallerin şunlar olduğunu bize ifade eder:
  • Consistency & Availability (CA): Tüm değişiklikler aynı anda tüm düğümlerde görünür ve sistem tüm isteklere cevap verir. Ancak bir şekilde düğümler zarar görürse sistem kitlenir. İstemciler bloklanır. Bütün RDBMS'ler bu gruba dahildir. Tabi ki bu tarz durumlar için bazı RDBMS teknolojilerinde sadece okumaya yönelik de olsa hizmet devam edebilmektedir. Çoğunlukla veri tutarlılığının her şeyden daha fazla ön planda olduğu sistemler için ideal durumdur. Mesela para transfer işlemleri böyledir.
  • Consistency & Partition Tolerance (CP): Bir kısmı zarar görse de sistem çalışmaya devam eder ve tüm düğümlerde aynı veri görünür. Tutarlı olmayan verinin gösterilmemesi için bazı verilere erişim sağlanamayabilir. Yani ‘Availability’den feragat edilir. Fakat erişilen veride tutarlılık korunur. Çoğunlukla veri yazılan iş modelleri için ideal durumdur. Örneğin bir cihaz veya uygulama hareketlerinin loglanması böyledir.
  • Availability & Partition Tolerance (AP): Bir kısmı zarar görse de sistem hizmet vermeye devam eder ve iş yüküne bağlı olarak değişen cevaplar istemciye iletilir. Güncel olmak veya tutarlılık garanti edilmez. Çoğunlukla veri okuma yapılan, tutarlılığın değil de erişilebilirliğin ön planda olduğu iş modelleri için ideal durumdur. Örneğin sosyal medya mesajlaşmaları böyledir.

CA ve CP modellerinde genellikle tüm talep ve takipten sorumlu bir master olur. AP modelinde ise genellikle master olmaz. Genellikle ifadesini kullanıyorum çünkü farklı mimari tasarımlar yapılabilmektedir.

Düğümler arası iletişim kesildiğinde ortaya çıkacak sonuçları şu çizimle ifade edebiliriz:


Gecikme (Latency) de devreye girdiğinde bu teorem geçerliliğini yitiriyor gibi görünüyor. Yani geç cevaplar almak sizin için problem değilse üç özellik de sağlanabilir. Tabi ki tatmin edici sonuçlar alabilmek için teknolojinin insan algısının altında bir gecikme sunması gerekir. Şimdilik bu konu tartışmaya açık. Burada üzerinde durmayacağım.

CAP Teoremine Göre NoSQL Teknolojileri


Dağıtık sistemler üzerinde konumlanan NoSQL teknolojileri CAP teoremine uygun şekilde hizmet verir. En yaygın NoSQL teknolojilerini varsayılan ayarları göz önünde tutularak CAP teoremine göre şu şekilde guruplayabiliriz:


Bir önceki yazımızda bahsettiğimiz ACID ve BASE isimli veri tutma yaklaşımları da CAP teoremi ile ilişkilidir. Ancak birlikte anlatıldığında kafa karışıklığına yol açabilmektedir. CAP teoremi dağıtık sistemlerin hangi alternatif durumlarda olabileceğini ifade eder. ACID ve BASE ise veritabanı sistemlerinin tutarlılığı sağlama konusundaki yaklaşım tarzını ifade eder. Tabiri caizse ACID tutarsızlık olmaması için çok pimpirikli davranıldığını anlatırken, BASE bu konuda oldukça rahat davranıldığını ifade eder. Dağıtık sistemlerin doğasında BASE yaklaşımı vardır.

Eric Brewer'in 1999 yılında yayınladığı CAP teoreminin etkilerini birlikte çalışan parçaların olduğu her sistemde görmek mümkün. Bir ekip çalışmasında bile bu teoremin işlediğini görebilirsiniz. Fakat bizim bu seride odaklandığımız konu dağıtık sistemler üzerinde çalışan NoSQL veritabanlarının karakteriydi. 500'den fazla NoSQL veritabanı teknolojisi var. Neredeyse her biri kendi nevi şahsına munhasır. Sonuç olarak iş modelinize uygun bir NoSQL teknolojisi seçebilmek için CAP teoreminin sesine kulak vermeniz gerekir.

Tüm bu teknolojileri Microsoft Azure üzerinde kolayca test etmeniz mümkün. Şu linki takip edebilirsiniz: https://azure.microsoft.com/

16 Aralık 2016 Cuma

Simpson Paradoksu ile Tanışın (Hangi Sonuç Doğru?)

Geçtiğimiz gün ekipten 4 arkadaş ile 2 kişilik 2 takım oluşturduk ve meşhur futbol maçı oyunlarından birini oynadık. Takımların birinde Kise-Özdemir (KÖ), diğerinde ise Altıntaş-Akbal (AA) yer aldı. Toplamda 5 maç yaptık. Mücadelenin sonunda AA takımı iyi oynadıklarını ve kazandıklarını iddia ediyordu. Benim bulunduğum KÖ takımı ise tam tersini düşünüyordu. Acaba hangi takım daha başarılı?

Her bir maç için gol sayılarını aşağıda belirttim. Kolaylık olsun diye maçtaki yüksek skorları yeşil renge boyadım. Sonuçlar şöyleydi :


Sizce AA takımı mı yoksa benim bulunduğum KÖ takımı mı daha başarılı?

Maçları tekil olarak incelersek 2 maç KÖ, 3 maç AA kazanmış. 3>2 (3 büyük 2'den) olduğuna göre AA takımı en fazla maç kazanan takım olmuş diyebiliriz. Peki ya AA takımı KÖ takımından daha başarılıdır diyebilir miyiz? Acele etmeyin! Verilere tekrar bakalım.

Tüm maçlardaki golleri de ek bir kolonda belirtelim. Toplam gol sayısıyla birlikte baktığımızda sonuçlar şöyle görünür:


Hepsini bir arada incelediğimizde KÖ takımı 11 gol atmışken, AA takımı 10 gol atabilmiş. 11>10 (11 büyük 10'dan) olduğuna göre KÖ takımı AA takımından daha başarılı bir oyunculuk sergilemiştir diyebiliriz.

Şaşırdınız mı? AA takımı buna şaşıracak. Bu mücadeleden katıksız bir üstünlük elde ettiklerini düşünüyorlardı. Ancak kazandığını sandıkları başarı, istatistiksel olarak yeterince güvenli değil. Bakış açısını değiştirip tüm sayıları ele aldığımızda KÖ takımının daha başarılı olduğunu görüyoruz. Üzgünüm AA takımı :)

Hangi Sonuç Doğru?


Yukarıda incelediğimiz durum bir tür paradokstur. Paradokslar içinden çıkılamaz bir zihinsel döngü oluşturur.

Paradokslara bir örnek verelim;

Küçük yaşta tahta geçen Fatih Sultan Mehmet sefere giderken babası Sultan Murat'ın ordunun başında durmasını ister fakat Sultan Murat bunu kabul etmez. Fatih babasını ikna etmek şu cümleyi kurar; "Eğer sen padişahsan geç ordunun başına. Yok eğer ben padişahsam emrediyorum ordunun başına geçeceksin!". Nihayetinde Sultan Murat ordunun başına geçmek zorunda kalır.

Matematik yalan söylemez ama İstatistik yalan söyleyebilir. Matematik paradoksların varlığını gözler önüne serer. Ancak çıktıları nasıl değerlendireceğiniz size kalmıştır. Sonuçların en işe gelir şekilde yorumlandığı alan da İstatistik olsa gerek.

Yukarıdaki maç mücadelesi örneğinde karşılaştığımız paradoksun istatistikte özel bir adı bile var. Buna Simpson Paradoksu veya Yule-Simpson Etkisi adı verilir. Bu tür istatistiksel sonuçlara baktığımızda detaydaki bir eğilimin bütünde olmadığını görürüz. Detaydaki çıktı ile bütündeki çıktı çelişebilir. Hangisinin doğru olduğuna karar vermek pek mümkün olmayabilir.

Simpson Paradoksu Nedir?


Bu fenomeni ilk olarak Edward H. Simpson 1951 yılında ortaya atmış, daha sonra Colin R. Blyth 1972 yılında adını Simpson'ın paradoksu olarak ilan etmiştir.

Simpson paradoksu istatistiğin çarpıtılabileceğini, farklı bakış açıları ile farklı sonuçların elde edilebileceğini gözler önüne serer. Bu durumun sebebi çoğu zaman gizli bir değişken olur. Bu değişken yüzünden farklı parçalarda görülen eğilim parçalar birleştiğinde görülmeyebilir. Hatta eğilim tersine dönebilir.

İyi Bilinen Bazı Örnekler


1. Cinsiyet Ayrımcılığı


1973 yılında Berkeley üniversitesi, adaylar arasında seçim yaparken kadınlardan çok erkekleri tercih ettiği iddiası ile dava edildi. Eleme sonuçlarına baktığımızda gerçekten ortada bir cinsiyet ayrımcılığının olabileceğini görüyoruz:


Fakat sonuçları detaylı bir şekilde incelersek başvuran kadınların erkeklere oranla daha fazla kabul edildiği ortaya çıkıyor. İşte en büyük altı bölümün eleme sonuçları:


İncelemenin sonunda davaya bakan bilir kişilerin şaşkın bir şekilde verdiği karar şu olmuş: "Veriler düzgün bir şekilde toplanırsa ... kadınlar lehine küçük ama istatistiksel olarak önemli bir önyargı var."

2. Böbrek Taşı Tedavisi


Böbrek taşı tedavisi ile ilgili gerçek hayat örneğinin de istatistiksel sonuçları bizi şaşırtıyor. Bu sefer iki farklı firmaya ait ilaçların küçük ve büyük böbrek taşı tedavisindeki sonuçlarını ele alıyoruz. Sonuçlar şöyle:


Başarı oranlarına baktığımızda A tedavisi hem küçük hem de büyük taş için başarılı sonuçlar üretmiş görünüyor. Ancak tüm hastaları birlikte düşünürsek B tedavisi daha başarılı. 

Bu durumda eğer böbrek taşı büyüklüğü tespit edilemezse B tedavisi tercih edilmeli. Aksi halde A tedavisi başarılı görünüyor. Daha etkili sonuçlar elde edebilmek için çeşitli kontrolleri yapıp detaylı tanı koyulması gerekir. Hatta daha detaylı tanılar için yeni sonuçların elde edilmesi gerekir.

Alınacak Ders Nedir?


Bu sonuçların paradoks oluşturmasının sebebi gizli bir değişkenin (lurking - confounding variable) olmasıdır. Sonucu etkileyen değişkenin ne olduğunu tespit etmek gerekir. Değişkenler arasındaki ilişki (Association) ve nedensellik (Causation) aynı şey değildir. Mesela yangından çok hasar gören yerlerde daha fazla itfaiye eri bulunur tespitinde gizli değişken yangının büyüklüğüdür. Yoksa itfaiye erleri hasarı arttırıyor çıkarımını yapmak doğru olmaz. (en azından öyle umut ederiz!)

Simpson paradoksu bakış açısı değiştiğinde, istatistiğin insanları nasıl aldatabileceğini anlatıyor. Karar verme sürecinde, sonucun mutlak doğru olduğunu hemen kabul etmeyip, bütünde geçerli olan bir eğilimin parçalarda da geçerli olup olmadığını kontrol etmek gerektiğini aşılıyor. İyi tarafından bakarsak, detaylı teşhis koyamadığımız durumlarda da karar vermemizi kolaylaştırabiliyor.

İlk örneğimiz olan maç mücadelesinin sonucunda umarız dostluk kazanır :)







2 Aralık 2016 Cuma

SQL Server 2016 New Features Etkinliği - Teşekkürler

29 Kasım 2016'da düzenlemiş olduğumuz SQL Server 2016 New Features etkinliğine 250'den fazla kayıt aldık. Kötü hava koşullarına ve trafiğe rağmen salonumuzu dolduracak kadar bir çoğunluğa ulaştık. O gün bizi dinlemeye gelen tüm katılımcılara özellikle teşekkür etmek istiyorum.

Ekibim SQL Server 2016 yeniliklerinden en etkili 6 başlığı seçti ve tüm gün bu konularda oturumlar düzenlemiş oldu. Yoğun olduğumuz bir dönemde hızla organize olup etkinliğe güzel içerikler hazırladıkları için taktire şayanlar. Ekibimi tebrik ediyorum.

Ayrıca giriş kısmında Microsoft'un yeni vizyonu hakkında bizleri haberdar eden Microsoft'dan Behice Funda'ya (Audience Marketin Lead) müteşekkiriz.

Bu organizasyonda emeği geçen ve birlikte bir ekip olarak çalıştığımız Bilge Adam'dan ilgili diğer arkadaşlarıma da Didem ve Gülcan nezdinde teşekkür ediyorum.

Abdullah Kise

Etkinlik programı şöyleydi :


9:3010:00Tanışma ve Açılış Konuşması
10:0010:45Real-Time Operational Analytics
11:0011:45End-to-End Mobile BI
12:0012:45Always Encrypted
Öğle Arası
14:0014:45Stretch Database
15:0015:45PolyBase (Big Data in Database)
16:0016:45In-database Advanced Analytics (R in Database)

Giriş Kısmı :