Pazarlama faaliyetleri ve size daha iyi bir deneyim sunmak için üçüncü taraf hizmetlerinden çerezler kullanıyoruz. Çerezleri nasıl kullandığımızı ve bunları nasıl kontrol edebileceğinizi 'Gizlilik Tercihleri' ni tıklayarak okuyun.


Gizlilik Tercihleri

Gizlilik Tercihleri

Herhangi bir web sitesini ziyaret ettiğinizde, ilgili web sitesi tarayıcınız aracılığıyla, genellikle tanımlama bilgileri biçiminde bilgi depolayabilir veya alabilir. Gizlilik hakkınıza saygı duyduğumuzdan, belirli hizmet türlerinde veri toplanmasına izin vermemeyi seçebilirsiniz. Ancak, bu hizmetlere izin vermemeniz deneyiminizi etkileyebilir.

  • Gizlilik Tercihleri
    Internative Yazılım A.Ş. olarak, bizimle paylaştığınız kişisel verilerinizin gizliliği ve güvenliğine önem vermekte; özel hayatın gizliliği başta olmak üzere, Anayasa ile güvence altına alınan temel hak ve özgürlüklerin korunması ilkesine azami hassasiyet göstermekteyiz. Buna göre, 07.04.2016 tarihli Resmî Gazete ile yürürlüğe giren 6698 Sayılı Kişisel Verilerin Korunması Kanunu kapsamında haiz olduğumuz aydınlatma yükümlülüğü uyarınca, aşağıda yer alan hususları bilgilerinize arz ederiz.
    GEREKLİDİR
  • İşlevsellik Çerezleri
    Bu tanımlama bilgileri, web sitemizde size daha kişiselleştirilmiş bir deneyim sağlamak ve web sitemizi kullanırken yaptığınız seçimleri hatırlamak için kullanılır. Örneğin, dil tercihlerinizi veya oturum açma bilgilerinizi hatırlamak için işlevsellik tanımlama bilgilerini kullanabiliriz.
    GEREKLİDİR
  • Youtube (Google Inc. video platformu barındırma)
    Bu web sitesi, merkezi Gordon House, 4 Barrow Street, İrlanda adresinde bulunan Google Ireland Ltd. şirketlerinden birisi olan ve merkezi 901 Cherry Ave., 94066 San Bruno, CA, ABD adresinde bulunan YouTube LLC şirketinin videolarını kullanır. Böylece, YouTube tarafından sunulan "Gelişmiş Veri Koruma Modu" seçeneğini kullanırız. Bir YouTube videosu vasıtasıyla sitelerimizden birini yükleyerek YouTube'dan içerikler yüklenir. YouTube hesabınıza giriş yaptıysanız, YouTube, gezinme bilgilerinizi diğer verilerle birleştirebilir. Youtube videolarının kullanımı, hizmetlerimizin anlaşılır bir şekilde sunulabilmesi amacına yöneliktir. YouTube gizlilik politikası uygulanır: https://www.google.de/intl/de/policies/privacy/.
  • Vimeo (Video platformu barındırma)
    Bu web sitesinde, Vimeo tedarikçisinin bileşenleri kullanılmaktadır. Vimeo, Vimeo LCC, 555 West 18th Street, NY, New York 10011, ABD adresinde yer alan firmanın bir hizmetidir. Böyle bir bileşene sahip bu web sitesini her ziyaret ettiğinizde, bu bileşen, Vimeo'dan bileşenin karşılık gelen bir temsilini indirmek için kullandığınız tarayıcıya neden olur. Siteyi ziyaret ettiğinizde ve Vimeo'ya giriş yaptığınızda, Vimeo, bileşen tarafından toplanan bilgiler aracılığıyla, hangi özel siteyi ziyaret ediyorsanız bu bilgiyi Vimeo ile kişisel hesabınıza atar. Örn. "Oynat" düğmesine tıklarsanız veya yorum bırakırsanız, bu bilgiler Vimeo'da kişisel kullanıcı hesabınıza iletilecek ve orada saklanacaktır. Ayrıca bu web sitesini ziyaret ettiğiniz bilgiler Vimeo'ya iletilir. Bu sizin olup olmadığınızdan bağımsız olarak gerçekleşir. Bu iletimi ve Vimeo aracılığıyla bu web sitesindeki davranışınızı ve verilerinizi saklamak istiyorsanız, siteyi ziyaret etmeden önce Vimeo'dan çıkmanız gerekir. Vimeo'nun gizlilik bildirimleri, özellikle Vimeo tarafından verilerin toplanması ve kullanılması için daha ayrıntılı bilgi sağlar: https://vimeo.com/privacy
  • Google Ads (Reklam Dağıtım Ağı)
    Bu web sitesi, onay vermeniz kaydıyla, kullanılan reklam ve tanıtım yöntemlerinin etkililiğini değerlendirme ve size tekrar ulaşabilme amaçları doğrultusunda Google Ireland Ltd, Gordon House, Barrow Street, Dublin 4, Ireland (“Google”) isimli kuruluş tarafından sunulan bir hizmet olan “Google Ads“ isimli servisi kullanmaktadır. Web sitemizi ziyaret ettiğinizde, “Google Ads“ cihazınıza bir çerez yükler. Bu çerez aracılığıyla Google, reklamlarımızın erişimini analiz etmek ve erişim alanının ölçümünü görselleştirmek ve kişiselleştirilmiş reklamlar görüntülemek için web sitemizin kullanımı, web sitemizdeki etkileşimler ile reklam ve tanıtım yöntemleri, IP adresiniz, tarayıcı bilgileriniz, daha önce ziyaret ettiğiniz web siteleri ve erişim tarihi ve saati gibi cihazınız tarafından oluşturulan bilgileri işler. Bu bağlamda, farklı uç cihazların size ya da evinize ait olup olmadığı da belirlenebilmektedir. “Yeniden pazarlama“yöntemiyle beraber, web sitemizin kullanıcıları Google reklam ve tanıtım ağı içerisinde yer alan diğer web sitelerinde (örn. Google Arama ya da Youtube) yeniden tanınıp tespit edilebilir ve bu kişilerin ilgi alanlarına uygun hâle getirilmiş reklamlar sunulabilir. Web sitesi kullanımınıza ilişkin çerez tarafından üretilen bilgiler (IP adresiniz de dahil olmak üzere) Google’a iletilecek ve Google tarafından Amerika Birleşik Devletleri sınırları içerisinde saklanacaktır. Avrupa’daki yasalar bağlamında, ABD yeterli düzeyde veri korumayı garanti etmemektedir. Kitlesel izleme yasaları dolayısıyla devlet yetkilileri bu verilere erişebilir. Kişisel verileriniz bir defa paylaşıldığında, aynı düzeyde korumaya sahip olamayacaktır, bunun yanında verilere ilişkin haklarınızı kullanamayabilirsiniz. Internative Yazılım A.Ş web sitesinde çerezlere izin vererek, yukarıda açıklanan verilerin kullanılmasını ve daha önce tanımlanan çerçevede Google tarafından işlenmesini kabul etmiş olursunuz. Google hizmetlerinde gizlilik hakkında daha detaylı bilgi için şu bağlantıyı kullanabilirsiniz: http://www.google.de/intl/de/policies/privacy
  • Sosyal Medya
    Web sayfalarımızda, çeşitli sosyal medya ağlarının çerezleri ve eklentileri gibi Sosyal Medya içerik yönetimi hizmetleri gömülü şekilde bulunmaktadır. Bağlantılı hizmetler, yalnızca onay vermeniz halinde, ilgili şirketler (“tedarikçiler”) tarafından sunulmaktadır. Bu hizmetlerin temel amacı içeriklerimizi görüntülemenizi ve arkadaşlarınızla ve ağlarınızla paylaşmanızı sağlamaktır. Tedarikçiler şunlardır: Facebook, Facebook Inc., 1 Hacker Way, Menlo Park, CA 94025, USA, ve AB içerisinde Facebook Ireland Limited, 4 Grand Canal Square, Dublin 2, Ireland ("Facebook") tarafından işletilmektedir. Facebook eklentileri ve görünümlerini gözden geçirmek için şu adresi ziyaret edebilirsiniz: https://developers.facebook.com/docs/­plugins Twitter, Twitter Inc., 1355 Market St, Suite 900, San Francisco, CA 94103, USA (“Twitter”) tarafından işletilmektedir. Twitter butonları ve görünümlerini gözden geçirmek için şu adresi ziyaret edebilirsiniz: https://dev.twitter.com/web/tweet-button Instagram, Facebook Ireland Limited, 4 Grand Canal Square, Dublin 2, Ireland (“Instagram”) tarafından sağlanmaktadır. Instagram eklentileri ve görünümlerini gözden geçirmek için şu adresi ziyaret edebilirsiniz: https://developers.facebook.com/docs/instagram LinkedIn, LinkedIn Corporation, 1000 West Maude Avenue, Sunnyvale, California 94085, USA, ve AB içerisinde LinkedIn Ireland Unlimited Company, Gardner House, Wilton Plaza, Wilton Place, Dublin 2, Ireland (“LinkedIn”) tarafından sağlanmaktadır. LinkedIn eklentileri ve görünümlerini gözden geçirmek için şu adresi ziyaret edebilirsiniz: https://developer.linkedin.com/plugins#

Container Teknolojisi

Container Teknolojisi

İnternet ekosistemini oluşturan en önemli yapı taşlarından biri olan ve hızla gelişen sunucu teknolojilerinde, kısa tarihi boyunca birkaç kırılma anı yaşandı. Bu kırılma anlarından özellikle iki tanesi, sunucu dünyasındaki tüm çalışma alışkanlıklarının değişmesine, yeni iş yapış biçimlerinin ortaya çıkmasına yol açarken gerek yazılım geliştiricilerinin gerekse de sistem yöneticilerinin bu değişimi mümkün olan en az maliyetle yapmaları adına sayısız yardımcı aracın ve ek teknolojinin geliştirilmesine de önayak oldu. Bu önemli kırılma anlarından ilki sanallaştırma (virtualization), ikincisi ise konteyner (container) teknolojisinin geliştirilmesi idi.

Sanallaştırma teknolojisini gerçekleştirmiş olduğumuz Workshop çalışmasında detaylı bir şekilde ele aldık.

Sanallaştırma teknolojisi temelde, fiziksel bir bilgisayardaki donanımların, birbirinden izole bir şekilde birden çok işletim sistemi ile aynı anda kullanılmasını sağlayan teknolojidir. Başka bir deyişle bir fiziksel bilgisayarı birden çok mantıksal bilgisayara bölmeye olank sağlamaktadır. Peki bu tam olarak ne işe yaramaktadır? Sanallaştırma öncesinde uygulamalar fiziksel sunucular üzerinde barındırılıyordu. Bu durum, çeşitli zorlukları ve yaşanabilecek potansiyel problemleri de beraberinde getiriyordu. Fiziksel sunucuda yaşanabilecek işletim sistemi kaynaklı bir sorun veya farklı yazılımsal bir sıkıntı, o sunucuda barındırılan uygulamanın çökmesine dahi yol açabiliyordu. Ayrıca aynı fiziksel sunucu üzerinde birden fazla uygulama barındırılması durumunda, benzer bir problem oluştuğunda tüm uygulamaların çökmesi gibi felaket senaryolarına da sebep olabilmekle beraber aynı işletim sistemi üzerinde çalışan uygulamalara sistem kaynaklarını doğru bir şekilde paylaştırmak da o dönemin şartları için ciddi bir problemdi. Bu ve bunun gibi sebeplerden ötürü şirketler, aynı sunucuda birden fazla uygulama barındırmak yerine her bir uygulamayı ayrı bir fiziksel sunucuda barındırmayı tercih edebiliyorlardı. Bu durum ciddi bir maliyete sebep olmakla beraber yönetilmesi gereken bu kadar çok sunucunun olması da iş yükünü oldukça artırıyordu.

Sanallaştırma teknolojisi ile birlikte uygulamaların izolasyon ihtiyaçlarını karşılamak için her seferinde yeni bir fiziksel bilgisayar satın alma zorunluluğu ve bunun getirdiği maliyet ortadan kalkarken aynı zamanda sanal makinelerin işlemci, bellek, depolama gibi limitleri de esnek olarak belirlenebildiği için âtıl kapasite oluşma ihtimali de büyük oranda ortadan kalkmaktadır. Sanallaştırma teknolojisinin merkezinde yer alan hypervisor yazılımları sayesinde sistemde sanal makineler oluşturulup çalıştırılmaktadır. Sanal makineler sayesinde her uygulama kendine ait izole bir ortama sahip olmaktadır ve herhangi bir sistemde çıkan bir sıkıntı diğer bir sistemi etkilememektedir. Sanallaştırma teknolojisi bu ihtiyacı uzun bir süre tek başına karşıladı. Ancak yazılım sektörü geliştikçe, müşteri sayısı artıp yazılımsal ürünler daha karmaşık hale geldikçe ve firmalar arasındaki rekabet arttıkça ayda yılda bir gelen yazılım güncellemeleri yerini her gün binlerce kez değişen canlı sistemlere bıraktı. Sistemler karmaşık hale geldikçe sanallaştırma teknolojisi bu karmaşıklığı çözmekte yetersiz kalmaya başladı. Sanal makineler ile fiziksel makinelerde yaşanan kaynak israfının önüne büyük oranda geçilmiş olsa da sistemde yer alan her bir sanal makinenin de kendi işletim sistemi olmasından dolayı, sistemde hiçbir şey yapılmasa bile belli oranda kaynak israfına yol açıyordu. Örneğin; bir fiziksel makine üzerinde beş adet sanal makine çalıştırdığımızı düşünelim. Her bir sanal makinenin kendine ait işletim sistemi de sistem kaynaklarını %5 oranında tüketiyor olsun. Beş sanal makine için sistemde ekstra hiçbir şey yapmadan %25’lik bir kaynak tüketimi ortaya çıkacaktır. Ayrıca yine bu sebepten ötürü sistemde yer alan her bir sanal makine yönetilmesi, güncellenmesi, bakımının yapılması gereken bir bilgisayar anlamına geliyordu. Kısacası günümüzün ihtiyaçları sanal makinelerin mevcut yeteneklerinden fazlasını gerektiriyordu.

Bu ihtiyaca çözüm olması amacıyla geliştirilen konteyner teknolojisi sayesinde uygulamaları birbirinden izole bir şekilde çalıştırmak için farklı işletim sistemlerine duyulan ihtiyaç ortadan kalkmış oldu. Uygulamalar aynı işletim sistemi üzerinde koşuyor ve bunu yaparken de yine birbirlerinden izole, birinde yaşanan bir sıkıntı diğerini etkilemeyecek şekilde varlıklarını sürdürebiliyorlar. Ayrıca sistemde yer alan bir konteyner silindiği zaman, konteyner ile beraber yüklenen tüm dosyalar da siliniyor ve bu sayede bilgisayar da her zaman temiz kalıyor. Hatta bu özellik konteynerleri sadece production değil, development ortamları için de oldukça kullanışlı bir teknoloji haline getiriyor. Her projede kullanılan veri tabanı sistemlerinin, programlama dillerinin, kütüphanelerin değişkenlik gösterebilmesinden ötürü yazılım ekiplerinin gerekli yazılımları yükleyerek geliştirme ortamlarını her seferinde güncellemek zorunda kalıyor olmaları, daha sonra bu yazılımları siliyor olsalar bile en iyi ihtimalle bir yerlerde günlük dosyaları tam olarak silinemediği için bir süre sonra bilgisayarların eski performansı gösterememesi gibi sorunlar meydana gelebiliyor. Konteynerler ile bu gibi sorunların da önüne geçilebiliyor. Örneğin; bir projede veri tabanı sistemi olarak MySQL kullanılırken bir diğer projede MongoDB kullanılıyor olabilir. Normal şartlarda bu iki yazılımın da bilgisayara yüklenmesi gerekir ancak konteynerler bu zorunluluğu ortadan kaldırıyor. Bunları direkt bilgisayara indirmek yerine bunları çalıştırmak üzere iki adet konteyner ayağa kaldırıyoruz. Daha sonra bu iki konteynerlerden birinin içine MySQL’i, diğerine de MongoDB’yi kuruyoruz. Geliştirme aşaması bittikten sonra ise yapmamız gereken tek şey bu konteynerleri silmek. Teoride çok kolaymış gibi dursa da aslında pratikte konteynerler o kadar da basit teknolojiler değildir. 2008 yılında Linux çekirdeğine eklenen konteyner teknolojisi, çığır açıcı bir teknoloji olmasına karşın oldukça karmaşık olması sebebiyle kitlelere yayılması için yönetimini kolaylaştıracak bir araca ihtiyaç vardı.

Aynı yıl kurulan dotCloud şirketi tarafından konteyner yönetim aracı olan Docker geliştirildi ve 2013 yılında piyasaya sürüldü. Docker, kullanıcılarına konteyner yönetimini o kadar kolaylaştıran bir platform sunuyordu ki hem Docker hem de konteyner teknolojisi kısa sürede geniş kitlelere yayıldı. Hatta öyle ki, şirket de buna kayıtsız kalmadı ve yoluna Docker ismi ile devam etti. Docker’ın web sitesine baktığımız zaman kendini: “Docker, uygulama geliştirmek, dağıtmak ve çalıştırmak için açık bir platformdur. Docker, uygulamalarınızı altyapınızdan bağımsız kılmanızı sağlar, böylece yazılım üretim ve dağıtım sürecini hızlandırabilirsiniz. Docker ile altyapınızı, uygulamalarınızı yönettiğiniz gibi yönetebilirsiniz. Docker’ın hızlı nakliye, test etme ve kodu dağıtma metodolojilerinden yararlanarak, kod yazma ile üretimde çalıştırma arasındaki gecikmeyi önemli ölçüde azaltabilirsiniz.” şeklinde tanımlamaktadır. Başta yalnızca bir konteyner yönetim aracı olan Docker, bugün bu temel özelliğinin yanı sıra daha karmaşık sistemlere de cevap verebiliyor olması amacıyla birçok güncelleme aldı ve yeni özelliklerle donatıldı.

Docker’ın temel özelliklerine baktığımız zaman karşımıza ilk olarak Docker Image kavramı çıkmaktadır. Docker Image kavramını en basit haliyle konteyner ürettiğimiz şablonlar olarak tanımlayabiliriz. Bu imajdan üretilecek konteynerlerde olması gereken tüm binary ve kütüphaneleri tanımlarız, ihtiyaç varsa ortam değişkenleri ekler, konteynere dışarıdan erişim sağlanacak ise dışarı açılacak portlarını belirler, uygulama dosyalarımızı ekler, oluşabilecek hatalarda konteynerin nasıl davranacağını belirler ihtiyaca göre çeşitli healthcheck mekanizmaları ekleriz. Tabi imaj dosyası oluşturmak yalnızca bunlarla da sınırlı değil. İmaj dosyası oluşturma aşamasında Docker’ın bize sağladığı seçenekleri çıkardığımız zaman yapabileceklerimiz çoğunlukla Linux bilgimize bağlı. Sonuçta biz bu imaj dosyasından bir konteyner ayağa kaldırdığımız zaman, konteynerimiz aslında imaj dosyasında yazdığımız komutlar ile konfigüre edilmiş Linux işletim sistemine sahip bir bilgisayar gibi davranmakta. Dolayısıyla Linux işletim sistemine sahip bir bilgisayarda yapabileceğimiz her şey konteynerler için de geçerli ve biz bu ayarları hemen her zaman imaj dosyalarında belirtiriz. İmaj dosyamızı oluşturduktan sonra artık bu imajdan Docker’ın yüklü olduğu her bilgisayarda sınırsız sayıda konteyner oluşturabiliriz. Farklı bilgisayarlardan da bu imaja erişebilmek için tahmin edileceği üzere bu imajın her yerden ulaşılabilir olarak saklanması, depolanması gerekmekte. Tam da bu noktada karşımıza Docker Hub kavramı çıkıyor. Nasıl ki Git repolarımızı barındırmak için Github, Gitlab, Bitbucket gibi uzak sunucular varsa, imajlarımızı barındırmak için de Docker Hub uzak sunucusu bulunmakta. İmaj dosyasını oluşturduktan sonra Docker Hub’a göndererek imajı Docker’ın yüklü olduğu her bilgisayardan, mesela production sunucumuzdan, ulaşılabilir hale getirebiliriz. Bu sayede sunucuya projenin kaynak kodlarını veya derlenmiş halini göndermeye gerek kalmadan, projenin imaj dosyasını Docker Hub’tan sunucuya çekerek uygulamamızı bir konteyner üzerinden yayınlayabiliriz. Her yeni güncellemede projenin büyüklüğüne göre uzayabilen yayınlama süreçleri, bu sayede birkaç Docker komutu ile saniyeler içerisinde tamamlanabiliyor. Bu bir uygulamayı Docker üzerinden yayınlamak için yaşanabilecek en basit senaryolardan biriydi. Gerçek hayat senaryoları maalesef bu kadar basit olmayabiliyor. Örneğin bugün hemen her uygulama bir veri tabanına ihtiyaç duyuyor ve bizler kullanacağımız veri tabanı sunucusunu bilgisayara indirmeden Docker üzerinden bir konteyner olarak çalıştırabileceğimizi biliyoruz. Veri tabanını bu şekilde Docker ile çalıştırdığımızı, daha sonra konteynerde bir sıkıntı çıktığını ve mevcut konteyneri silerek yerine yeni bir konteyner oluşturduğumuzu düşünelim. Bir konteyneri sildiğimiz zaman konteyner ile birlikte yüklenen tüm dosyaların da silindiğini bildiğimize göre, bu konteynerde oluşturduğumuz veri tabanlarının da silineceğini tahmin edebiliyoruz. Elbette bu gerçek hayatta uygulanabilecek bir şey değil. İlgili verileri bir şekilde kalıcı hale getirmemiz gerekmekte. Tam da bu noktada Docker Volume özelliği imdadımıza yetişiyor. Docker Volume ile konteyner içindeki kalıcı hale gelmesini istediğimiz, konteyner ile beraber silinmesini istemediğimiz dosyaları konteynerin çalıştığı host bilgisayarda saklayabiliyoruz. Daha sonra konteyneri silip yenisini oluştursak bile, oluşturduğumuz yeni konteyneri de aynı Volume’a mount ettiğimiz zaman aynı verileri kaybetmeden kullanmaya devam edebiliyoruz.

Şu ana kadar projemizi geliştirdik, Dockerize edip imaj dosyasını Docker Hub’a gönderdik, daha sonra Docker Hub’tan bu imajı alıp sunucumuzda bir konteyner olarak ayağa kaldırdık ve uygulamamızı çalıştırmış olduk. Hatta kalıcı olmasını istediğimiz dosyalar için bir veya birden fazla Volume tanımladık. Peki bu kadarı yeterli mi? Şöyle bir senaryo düşünelim: Bir projemiz var. Veri tabanı sistemi olarak MongoDB, önbellekleme işlemleri için Redis, uygulama içi akıllı filtreleme için ElasticSearch, ElasticSearch arayüzü için Kibana, message broker olarak RabbitMQ, .NET 5.0 ile yazılmış bir Backend API ve arayüz olarak da bir SPA (Single Page Application) olmak üzere 7 ana bileşenden oluşmakta. Normal şartlarda her bir bileşen için tek tek Docker CLI ile yeni bir konteyner oluşturup daha sonra bunlarla iletişim kuracak olan Backend konteynerine bağlamamız gerekmekte. Karmaşık projelerde bu konteynerlerden onlarca olabileceğini düşünürsek tüm işleri bu şekilde yapmanın pek de kullanışlı olmadığını görebiliyoruz. Karmaşık olmayan projeler için saniyeler seviyesinde olan yayınlama süreleri bu tarz fazla sayıda konteynerin yer aldığı sistemlerde yine uzayabiliyor. Bunun gibi nispeten daha karmaşık projeler için kullanabileceğimiz Docker Compose özelliği bulunmakta. Docker Compose ile projemizle birlikte ayağa kalkması gereken tüm konteynerleri belirtebiliyor ve CLI ile yapabildiğimiz tüm ayarlamaları burada kalıcı bir şekilde yaml dosyası halinde saklayabiliyoruz. Tabi bununla da sınırlı kalmıyor. Yüzlerce hatta binlerce konteynerin koştuğu sistemlerde veya konteynerlerin birbirinden farklı hostlarda bulunması gereken durumlarda Docker Compose da yetersiz kalabiliyor ve bu durumda bir Container Orchestration aracına ihtiyaç duyulabiliyor. Container Orchestration araçlarının ne olduğuna kısaca değinmek gerekirse, yüzlerce veya binlerce konteyneri bir arada yönetmek; konteynerlerin oluşturulmasını, dağıtımını otomatize etmek için kullanılan yazılımlar olarak özetleyebiliriz. Docker tarafından geliştirilmiş Container Orchestration aracı olan Docker Swarm, Docker‘ı indirdiğimiz zaman Docker Engine ile birlikte tümleşik olarak bilgisayarımıza yüklenmektedir. Container Orchestration aracı olarak kullanılabilecek tek seçenek Docker Swarm degil. Hatta Docker Swarm’dan daha güçlü, daha kapsamlı olan, Google tarafından geliştirilip daha sonra Cloud Native Computing Foundation (CNCF) organizasyonuna bağışlanan ve halen daha bu organizasyon tarafından geliştirilmekte olan açık kaynak kodlu Kubernetes adında bir araç da bulunmakta. Sahip olduğu özellikler bakımından Docker Swarm’ın oldukça güçlü bir alternatif olan Kubernetes, şu an Container Orchestration aracı olarak birçok büyük şirketin ana tercihi olmuş durumda.

Toparlayacak olursak Docker bugün konteyner yönetim aracı olarak sektör standardı haline gelmiş durumda. Hatta bununla da kalmayıp Kubernetes gibi oldukça kapsamlı Container Orchestration araçlarının da geliştirilmesine önayak olmakla beraber konteyner teknolojisinin etrafında bir ekosistem oluşmasında da öncü teknoloji durumunda. Günümüzde sanal makineler hala yoğun bir şekilde kullanılıyor olsa da konteyner teknolojisi ve etrafında oluşan ekosistem geliştikçe sunucu dünyasında konteynerler giderek daha da söz sahibi olacak gibi duruyor.

Bu gönderiyi paylaş: