BT endüstürisinin herhangi bir yerindeyseniz , büyük olasılıkla konteyner ve konteyner platformu olan Docker’ı duymuşsunuzdur.Çünkü geçtiğimiz yıl yazılım geliştirme trendleri arasında yer alan docker ve konteynerlar, yazılım geliştirme ve teslimatında çığır açan bir yazılım çalıştırmanın yeni bir yoludur.
Docker’ın gerçekte yaptığı, uygulama kodunu altyapı gereksinimlerinden ayırmaktır. Bunu, her uygulamayı “konteyner” adı verilen yalıtılmış bir ortamda çalıştırarak yapar. Docker, kapsamlı uygulamalar oluşturmak için geliştirilmiş bir yazılım çözümüdür.Docker, geliştirme ekiplerinin her yerde uygulamalar oluşturup yönetmesine ve güvenli hale getirmesine olanak tanıyan yeni bir teknolojidir.
https://docs.docker.com/get-started/#containers-and-virtual-machines
Docker’ın kendi sitesinde şu şekilde tanımlanmaktadır:
“A container image is a lightweight, stand-alone, executable package of a piece of software that includes everything needed to run it: code, runtime, system tools, system libraries, settings.“(Konteyner imajı, çalıştırmak için gereken her şeyi içeren hafif, bağımsız, yürütülebilir bir yazılım paketidir: kod, çalışma zamanı, sistem araçları, sistem kütüphaneleri, ayarlar)
Konteyner ve Konteynerleştirme
Konteynerler, uygulamaların çalıştıkları ortamdan soyutlanabilecekleri uygun bir paketleme mekanizması sunar. Bu ayrım, konteyner tabanlı uygulamaların, hedef ortamdan bağımsız olarak kolay ve tutarlı bir şekilde konuşlandırılmasını sağlar.
Konteynerleştirme, yazılım projelerindeki farklı ekiplerin sorumluluklarının daha belirgin bir biçimde ayrışmasını sağlar. Geliştiriciler uygulama mantıklarına ve bağımlılıklarına odaklanırken, IT operasyon ekipleri uygulama ayrıntılarıyla uğraşmadan dağıtım ve yönetime odaklanabilir.
Gördüğümüz bu standartları tanımlanmış metal kutucuk olmadan önce lojistik endüstrisi aklında bir sürü problem ve soru vardı;
- Taşımak istediğim ürünüm diğer ürünlerden etkilenecek mi? Daha hafif taşınan ürünler ağırların altında ezilecek mi?
- Birçok farklı ürün var her ürün için farklı farklı taşıma yöntemleri var her ürünüm için ayrı bir araç mı gerekli?
- Ya çuvallarım başka birinin çuvalları ile karışırsa üretim oranım ile teslimat oranım aynı çıkmazsa?
İşte konteynerlar sayesinde bunların hepsi çözüme ulaşmış oldu. Boyutları ve standartları herkes tarafından bilinen bu metal yığınlarının içine istediğiniz gibi kendi ürünlerinizi yerleştirebilirsiniz. İşte Docker da aynı yolu izler.
Konteynerleştirme Proje Adımları
- Re-Architect
- Containerize
- Orchestrate
- Monitor
Docker Engine
Docker Engine, Dockerfile veya docker-compose.yml‘den bilgileri alarak imajları oluşturur ve çalıştırır. Docker CLI üzerinden bir “docker” komutunu kullandığında, yapılması gereken işlemleri yapması için Docker Engine ile iletişime geçer.
Docker Compose
Docker Compose; çoklu mikro servisler, veritabanları ve benzeri bağımlılıklardan oluşan yapıların çalıştırılması için kullanılır. docker-compose.yml, gerekli olan tüm servisleri tek bir yerden konfigüre etmemize ve hepsini tek bir komut ile oluşturup, çalıştırmamızı sağlar.
Docker Machine
Docker içerisinde birden fazla Docker Engine motoru yönetilebilir. Docker Machine, Docker Engine’i uzaktaki yer alan makinelerine yüklemenize ve kendi bilgisayarınızdan, uzaktaki yer alan Docker Engine motorunun yönetilmesini sağlar.
Docker Swarm
Docker Swarm, Docker platformu için konteyner orkestrasyon aracıdır. Veritabanı, uygulama sunucuları, web sunucuları gibi bileşenlerden oluşan büyük kapsama sahip uygulamalarınızı Docker Swarm ile yönetebilir, yük altında kolaylıkla ölçekleme yapılabilmektedir.
VM (Virtual Machine) ile Docker Arasındaki Farklar
VM (Virtual Machine)
· OS : Tam işletim sistemi
· İzolasyon : Yüksek
· Çalışır hale gelmesi : Dakikalar
· Versiyonlama : Yok
· Kolay paylaşılabilirlik : Düşük
Docker
· OS : Küçültülmüş işletim sistemi imajı
· İzolasyon : Daha düşük
· Çalışır hale gelmesi : Saniyeler
· Versiyonlama : Yüksek
· Kolay paylaşılabilirlik : Yüksek
Kaynaklar:
Yorumlar
Yorum Gönder