Docker’la Daha Taşınabilir Ortamlara Merhaba

Share Button

Şu sıralar hem benden hem çevrenizden yoğun olarak bir docker muhabbeti duyuyorsunuzdur. Bugün bu blog yazısında sizlere Docker ve docker araçları ile ilgili fikir sağlayacak bazı küçük bilgiler vermeyi amaçlıyorum.

Linux işletim sisteminin çekirdeği, proseslerin gruplanarak yönetilebilmesine olanak sağlar. Böylelikle linux üzerinde koşturan yazılımlar, yalnızca kendisine ait sistem paketlerinin yeraldığı izole alanlarda mutlu mesut çalışabilmektedirler. 2008 yılında hayatımıza giren LXC, Linux’un bu güzelliğini insani seviyeye indirgeyerek sağladığı image ve kaynak yönetimi konseptiyle tek host üzerinde çok sayıda izole alan yaratılmasını kolaylaştırmıştır.

Linux ve LXC nin sağladığ çekirdek sanallaştırma konsepti, bilinen işletim sistemi sanallaştırma konspetinden tamamen farklıdır. İşletim sistemi sanallaştırma konseptinde bilgisayarın üzerinde çalışan ev sahibi işletim sistemi, sanallaştırılmış işletim sistemlerini barındırır. Bu nedenle böyle yapılarda donanom, hem ev sahibi işletim sisteminin hem de diğer sannalştırılmış işletim sistemlerinin rahatça çalışabileceği seviyede yüksek olmalıdır. Çekirdek sanallaştırma konseptinde ise sanallaştırma, kabaca çalışan proseslerin belirli alanlarda gruplanması şeklinde gerçekleştirildiğinden daha az kaynak gereksinimi vardır.

LXC, gelecekte benzer konseptleri farklı bakış açılarıyla sağlayacak olan LXD ve Docker’ın ortaya çıkmasına olanak sağlamıştır.
(Bkz. LXC Wiki Article )

Docker Nedir ?

Docker, linux’un kernel sanallaştırma kütüphaneleri ve lxc kullanarak, işletim sistemi üzerinde, belirli bir yazılımın, gereksinim duyduğu tüm sistem bağımlılıklarıyla birlikte çalışabildiği, kendi ağ kaynaklarına sahip izole ortamlar oluşturulmasına olanak sağlayan bir araçtır. Docker’ı diğer sanallaştırma araçlarından ayıran en can alıcı özelliği dağıtık çalışabilme yeteneğidir. Docker herhangibir ortamda ürettiğiniz konteyneri imajlar vasıtasıyla başka ortamlara taşıyabilmenize olanak sağlar.

Neden Docker ?

Docker, bir yazılımı ihtiyaç duyduğu tüm sistem paketi bağımlılıklarıyla birlikte bir konteyner içine yerleştirebilmenize ve dilediğiniz herhangibir yere taşıyabilmenize olanak sağlar. Yazılım, konteyner halinde deploy edileceği için ortam farklılıkları ile ilgil sorunlar ortadan kalkar.

Konteyner imajları sayesinde ölçeklenmiş ortamlarda sistem paketlerinin kurulması, konfigürasyon, yazılım kurulumu gibi tekrarlayan işlerin bir kerede daha soyut biçimde gerçekleştirilebilmesini sağlar.

Docker, özellikle çok sayıda servis ve mikro servisten oluşan yazılımların taşınabilirliğinde büyük kolaylık sağlar. Docker, Compose ve Swarm gibi araçları sayesinde bir web uygulaması, mysql server, redis/memcache ve çok sayıda mikro servislerden oluşan bir ortamı ister bir geliştiricinin makinesine isterseniz çok sayıda clusterdan oluşan bir ortama kolaylıkla taşımanıza olanak sağlar. Ölüm ve aşk acısı dışında her türlü derde devadır Docker :)

Bir sonraki yazıda kullanım pratikleri konusunda daha detayları bilgileri sizlerle paylaşıyor olacağım.

Share Button

About İbrahim Gündüz

1983 yılında İstanbul’da doğdu. İlkokul yıllarında cobol ve basic le olan tanışması, yazılıma olan ilgisini arttırdı 2005 yılında. Uludağ Üniversitesi Teknik Bilimler Meslek Yüksek Okulu Elektronik bölümünden mezun olan Gündüz, çeşitli alanlarda faaliyet gösteren kurumlarda yazılım geliştirici olarak görev almıştır. Mesleki ilgi alanları, ölçeklenebilir sistemler, uygulama entegrasyonları ve ödeme sistemleridir. Halen Markafoni back end geliştirici olarak çalışmaktadır.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir