BLOG / Konteyner Teknolojileri Hakkında
Cloud teknolojilerinin günümüzde aktif kullanılması sonucu konteyner kavramlarını sık sık duyar olduk.
Bu başlıklara kısaca göz atalım.
Docker Nedir: Docker Daemon tarafından Linux çekirdeği içerisinde birbirinden izole olarak çalıştırılan process’lerin her birine verilen isimdir. Yazılım geliştiriciler ve sistemciler için geliştirilen açık kaynaklı bir sanallaştırma platformudur. Docker’ın asıl işi yalıtılmış bölgede, bütün uygulamaları sıkıntısız bir şekilde çalışmasını sağlamaktır.
Kubernetes : GO dilinde yazılmış ve Google tarafından geliştirilmiştir. Mevcut konteyner haline getirilmiş uygulamaları otomatik olarak ekleme, sayılarını arttırma veya azaltma gibi yönetimsel kümeleme aracıdır. Uygulamaların konumlandırılması ve ölçeklendirilmesi için temel mekanizmalar sağlar. Kubernetes, Cloud Native Computing Foundation ( CNCF) tarafından host edilmektedir. Dinamik olarak programlanmış mikro hizmet odaklı teknolojilerin öncülerindendir.
Container : Yazılımları paketlediğimiz run time bağımlılıklarını yönetebilen bir teknoloji, sanallaştırma teknolojilerinin üzerine geliştirilmiş hali olarak özetlenebilir.
İşletim sisteminin sanallaştırmasını kullanmadan, process izolasyonunu ve buna bağlı kernel fonksiyonlarını kullanan bir yapıya sahip olması en büyük avantajlarından bir tanesi olarak kendisini göstermektedir. Sanal bir işletim sistemi katmanı içermediği için daha az kaynak tüketmekle beraber, uygulamalar arasında güçlü bir izolasyon sağlamaktadır.
Docker ve Kubernetes teknolojilerinin özet olarak sağladığı faydalar aşağıdaki gibidir;
- Maddi Kazanç,
- Bulut ile gelen ucuzluk,
- Ekstra fiziksel sunucu maliyetlerinden tasarruf
- Kaynakların verimli, dedike, etkili ve efektif kullanımı
- Çok kolay ölçeklendirilebilme
- Çok kolay ve hızlı uygulanabilir olması
- Çok kolay yedekleme ve geri dönme hızları
- Tümüyle izole bir yapı sağlaması
- Güvenli bir yapı sunuyor olması
- Kolay paylaşılabilirlik
- Açık kaynak olması geliştirmeye ve kişiselleştirmeye ve adaptasyona açık olması
- Uygulama geliştirme standardizasyonu getiriyor olması
- Container as a service (CaaS) ile uygulamaları kontrol eder, çevik ve taşınabilir ortam sağlıyor olması
- Docker kullanılan sistemlerde debug / troubleshoot işlemleri çok basit bir şekilde yapılmasını sağlıyor olması
- Preprod ve test ortamlarının hızlı kurulumu ve yönetim kolaylığı getiriyor olması
- Mikroservis mimariyi hızlı ve kolay bir şekilde sunuyor olması
- Multitenancy yerine tenancy olacak şekilde uygulama seviyesine çıkarıyor olması
- Docker asıl işi olan yalıtılmış bölgede, bütün uygulamaları sıkıntısız bir şekilde çalışmasını sağlamak olduğu için herhangi bir bağımlılığı ve yönetim kaygısı olmaması