Merhaba çok değerli okurlarım. Sosyal bir konu hakkında yada edebi bir yazı bekleyenleri hemen şuraya, dinleme listesine alabiliriz. Zira bu yazı yine teknik bir yazı olacak.

Gün geçmiyor ki; bir teknoloji/yazılım yaygınlaşsın da, biz de “vay anasını! bunun 1. versiyonu çok başkaydı. adamlar ne geliştirmiş be bilader” diyerek; Hüseyin amca vari elimizle yümüzü ovuştura ovuştura şaşırmış olmayalım. Bu gün; bu bol karlı ve huzurlu pazar gününde sizlere, Kütahya İl Özel İdaremizin istifadesine sunduğumuz bu tür bir teknolojiden bahsedeceğim.

Aslında herşey yıllar yıllar önce başladı. Nasıl ki akl-ı evvel, zamanın zekisi abilerimiz, bir yazıcıyı birden fazla bilgisayara takmak, her bilgisayara bir de yazıcı parası ödemek istemediler ve ilk ağı kurdularsa; yine aynı mihvalde, bazı abiler de çıkıp dediler ki, ya neden her müşteriye bir sunucu tahsis ediyoruz. Sanallaştırmayı icad edelim adına da “Virtualization” diyelim olsun bitsin. Belki böyle değil ama sanallaştırma bir şekilde icad edildi ve “Fiziksel bir tane makine üzerinde bir sürü işletim sistemi çalıştıralım. Ağdan bakanlar burada bir sürü makine çalıştığını sansın. Biz de her müşteriye bir sunucu satın almak zorunda kalmayalım.” denildi. Bir yan fayda olarak da bu saydıklarımızın hepsi yazılım katmanında gerçekleştiği için yedeklemesi geri yüklemesi çok basitleşti.

Sonra zeki başka bir arkadaşta çıktı dedi ki: “ya bu sanallaştırma falan çok hoş; ama şimdi de sanal işletim sistemleri için bir sürü kaynak harcıyoruz. Yukarıdaki resimde de görüleceği üzere, guest os dediğimiz sanal işletim sistemleri ram tüketiyor, işlemci kullanıyor. Keşke bundan kurtulmanın da bir yolu olsa” Bu fikir aynı -şuan- “Bizim üretim yapmamız lazım abi, tüketim toplumuyuz üretmemiz lazım” fikri gibi ağızdan ağıza yayıldı gitti. Ama kimsenin net bir fikri yoktu. Sonra bir iki sene içerisinde LXC diye bişey çıktı. Linux geliştiricileri bu soruna kısmen bir çözüm bulmuşlardı. Konteyner kelimesi ilk orada çıktı karşımıza. Yani diyorlardı ki; sanallaştırırken siz zaten en tabanda bir işletim sistemi çalıştırmıyor musunuz? Evet. Tamam biz sizin servislerinizi onun üstünde çalıştırırız. Yeni işletim sistemine kaynak harcamayın. Koro halinde: Vay anasını dedik. Bu, tabiri caizse windows olmadan word çalıştırmaktı. En azından son katman için. LXC dediğimiz meret, servislerimize, dosyalarımıza, herşeyimize, sanki bağımsız bir işletim sistemi gibi izole bir alan sunacak, bize yeni bir işletim sisteminde olmadığımızı hiç hissettirmeyecekti.

Biz bununla baya oyalandık. Kah sıkıntıya düştük kah fayda gördük. Sonra 2013 yılında Solomon adında bir abi daha çıktı. Dedi, toplanın bişey anlatağım. Size dedi hayatınızı değiştirecek bişey anlatacağım, önümüzdeki 5 dk içinde. Ben bu lxc üzerine bişeyler yaptım. Bırak izole işletim sistemini ben size izole process sistemi sunacağım. Yanlış duymadınız, bana hangi processi çalıştırmak istediğinizi bi dosyaya yazın ben bu processe öyle davranacağım; o sanacak ki ben tek başıma tertemiz bir işletim sisteminde koşuyorum. -Sonra hedef yükseltti.- Size bir küme yapısı sunacağım orda herhangi bir processin başına bişey gelirse onu hemen milisaniyeler içinde daha uygun başka bi yerde ayağa kaldıracağım. Nodun biri düşerse ondaki processleri hemen diğerlerinde koşturmaya devam edeceğim. Yetti mi? Tabi ki hayır. Uygulamarınızı üst versiyona geçirirken sıfır sn down time olacak. Ölçeklenebilirlik mi? O iş bende istediğin an istediğin kadar kopya yaparım.

Bu gün uygulama gerçekten o halde. Bir Docker fütüristi olan Gökhan Şengün bile buralara gelebileceğini tahmin edememiştir herhalde. Bu arkadaşın da adını ne zaman yazsam acaba Gökhan Şenyüz ile karıştırıyor muyum diye kontrol etme ihtiyacı hissediyorum. Herneyse. Ayrıca DockerHub var. Redis Cluster, Kafka Cluster, Postgres Cluster… Bu saydıklarım bile var. Önce sadece 5 dk da Docker kümesi oluşturuyorsunuz onlar birbirini takip ederek servislerinizin her an çalıştığını garanti ediyor. Sonra sadece bir kaç satır kod ile yukarıda saydığım küme servisler sunucularınızda koşmaya başlıyor. Baktınız bir servis çok yoğun hemen bir kaç replika daha istiyorum diyorsunuz ve oluyor. En güzeli de Docker ‘ı 1 hafta da gayet etkin kullanmaya başlayabilirsiniz.

Bunların hepsi şu demek: Merhaba efendim benim adım Docker. Tüm mikroservis uygulamalarınıza talibim. Yazıyı buraya kadar okumuş sabırlı developerlar için çok çok faydalı bir kaç link paylaşıyorum.

  • https://gokhansengun.com/
  • https://medium.com/devopsturkiye/docker-%C3%BCzerine-genel-bak%C4%B1%C5%9F-kal%C4%B1c%C4%B1-veri-volume-bind-mount-ve-docker-compose-kullan%C4%B1m%C4%B1-27ce4e7510d3
  • https://labs.play-with-docker.com/
  • https://www.portainer.io/
  • https://github.com/SeleniumHQ/docker-selenium
  • https://medium.com/@SaravSun/running-gui-applications-inside-docker-containers-83d65c0db110

Docker bu haliyle bile piyasada kendinden fazlasıyla söz ettirirken hala gelişmeye devam ediyor. Daha doğrusu satın almaya. Her büyük teknoloji şirketi gibi çevresindeki firmaları satın alarak büyüyor. Hatta sanki bu adından söz ettirme olayı tabii değil gibi geliyor bana(*). Tabi ücretsiz kaldığı müddetçe bizim için sıkıntı yok.

Benim beklentim önümüzdeki süreçte arayüzünü görebildiğim bir windows (uygulama) konteyner çalıştırabilmek. Özellikle Pardus göç konusunda kurumların en büyük sıkıntısı windows üzerinde çalışmak zorunda olan uygulamalar. En azından o uygulamalardan -alternatifleri ile- kurtulana kadar kullanıcıları uzaktan bu sanal masaüstlerine bağlayabiliriz. Okuduğunuz için teşekkür ederim. Sağlıcakla…