Bugun ki yazımızda docker hakkında ufak bir bilgi veriyor olacağım.
Bildiğiniz üzere/yada bildiğinizi var sayarak sanallaştırma sistemleri ilk önce serverlar üzerinde birden çok sistemin tek kaynak ile yönetilmesi ile başlamıştır. Şu anda en çok tercih edilenlerden biri de olan ESX sistemleri ile sistemleri çoklayıp tek server üzerinde sanallaştırma yaparak birçok makineyi benzer şekilde yönetebilmemizi sağlamaktaydı halen de sağlıyor 🙂
Temelde sanallaştırma üzerine yoğunlaşıldığı için işletim sistemi içerisinde özelleştirilmiş alanlar olarak karşımıza çıkan alternatifleri de olan docker/konteyner ‘ın genel çalışma mantığını sizinle paylaşıyor olacağız.
Peki ama hangi aşamada biz docker ‘ı kullanacağız diyebilirsiniz ?
Docker; aynı işletim sistemi üzerinde farklı versiyonlarda yazılımların kullanılmasını sağlayan ve bu yazılımların hiçbirinin birbirinin ayarlarını ezmeden silmeden çakışmadan kullanılmasını sağlayan işletim sistemi üzerinde kurulan ve teknik çalışma olarak ara katman olarak karşımıza çıkmaktadır;
Docker teknolojisi daha tam olarak çıkmadan önce yapılacak her yazılım için eğer ki versiyon farklılığı varsa bu durumda her yazılım için farklı bir işletim sistemi kurulması gerekiyor ve hal böyle olunca her işletim sistemi için ekstra bir maaliyet demek oluyordu.Docker’da tam da bu noktada bizlerin sesini duymuş bir kurtarıcı gibi bizim hayatımızı kolaylaştıran bir uygulama olarak karşımıza çıkmaktadır;
Şöyleki;yazılım geliştiriyorsunuz; müşterileriniz sizden t zamanında bir yazılım isgtedi bu yazılımın gereksinimleri olarak örneğin apache php mysql kullanmanız gerekti. Ekibinizde bu bağlamda yetkin olduğu için sıkıntı yokherşey yolunda :). Başka bir müşteriniz sizden farklı bir iş istedi bunun için iis .net core ve mssql kullanmanız gerekti.Docker teknolojisi olmadan önce ne yapmak gerekiyordu; yeni sistem için yeni bir işletim sistemi yeni bir güvenlik uygulaması vs vs vs…. devam edip gidiyordu.
Docker teknolojisi ile 1.proje için 1 docker gurubu 2.proje için farklı bir docker grubu kurarak işlemlerinizi yürütebiliyorsunuz. Hal böyle olunca 1 işletim sistemi üzerinde her iki sistemin çalışmasını sağlayabiliyorsunuz ve her hangi bir ek ayar yapmadan bunu yapıyorsunuz…
Diyeceksiniz ki zaten bunu aynı sistemde çalıştırabiliyoruz ki evet doğrudur söylediğim senaryoya göre bu iki sistemde çalışacaktır ki daha önceki projelerimizde çalıştırmış durumdayız. Ama olay şudur. Bu iki projenin temelinde belki çakışma olmamaktadır olsa daha nasıl çözümleneceği bellidir. Burada proje sayısı 2den 3-4-5 gibi olduğu ve temelde farklılıklar olmaya başladığı zaman dananın kuyruğu kopmaktadır. kullanılan portların çakışma durumu o portlar ile güvenlik ayarlarının yapılması gibi bir çok konu ortaya çıkmakta ve projenin yapımından daha çok uygulamayı canlı hayatta tutmak ile uğraşacaksınız ki bunu kimseler istemez….