Ana içeriğe atla

GELISMIS SANALLASTIRMA: Docker Container (Konteyner)


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 EngineDockerfile 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

Bu blogdaki popüler yayınlar

İNSAN SİNİR SİSTEMİNİN TAKLİDİ: YAPAY SİNİR AĞLARI

Yapay sinir ağları; beynin bir işlevi yerine getirme yönteminin matematiksel olarak modellenmesi ile tasarlanan sistemlerdir. Yapay sinir ağları, paralel dağıtılmış ağlar, bağlantılı ağlar, nuromorfik ağlar gibi adlarla da tanımlanmaktadır. Yapay sinir ağlarının ortaya çıkışından kısaca bahsetmem gerekirse; ilk yapay sinir ağı modeli 1943 yılında bir sinir hekimi olan Warren McCulloch ve bir matematikçi olan Walter Pitts tarafından “ Sinir Aktivitesinde Düşüncelere Ait Bir Mantıksal Hesap ( A Logical Calculus of Ideas Immanent in Nervous Activity )” başlıklı makale ile ortaya çıkarılmıştır. Öncelikle insanlarda bulunan sinir hücresinin yapısını ele alalım. Dentrites (Dendritler): Dendritler dışarıdan uyartıları alan ve hücre gövdesine ileten yapılardır. Dendritlerin çok sayıda olması, hücrelerin pek çok nörondan sinyal alma kapasitesini arttırır. Nucleus (Çekirdek): Akson boyunca işaretlerin periyodik olarak yeniden üretilmesini sağlayan yapılardır. Axon (Akson): Ak...

Mobil Uygulama Geliştirme: FLUTTER

Son zamanlarda merak sardığım konulardan biri de mobil uygulama geliştirme oldu. Küçücük bir uygulamanın bile verdiği çıktı ile mutlu olduğumu görünce mobil uygulama geliştirmekten zevk aldığımı hissettim. Araştırıp öğrenmeye başladım ve kısa sürede uygulama geliştirip ve bu uygulamayı kullanmak gerçekten güzel bir duyguydu. Şimdi sizlere geliştirdiğim basit bir Todo uygulamasından bahsedeyim. Flutter SDK ve Dart programlama dilini kullanarak çapraz platform çalışan yapılacaklar listesi uygulamasıdır. Bu uygulamada, verileri devamlılığını sağlamak için SQLite3 kullandım. Uygulama hem iOS hem de Android işletim sisteminde çalışmaktadır. Neden Flutter’ı Seçtim? ·  Flutter ile uygulamanızda yaptığınız bir değişikliği hot reload özelliği ile hızlı bir şekilde görebilirsiniz. Yani compile etmek(derlemek) için artık uzun süreler beklemeye gerek yok. Örnek vermek gerekirse Flutter ile varsayılan olarak gelen increment uygulamasını android sdk ile çalıştırmak ortalama 3 dak...

TARIM 4.0

  Tarım 4.0 nedir, nasıl ortaya çıkmıştır? Yüzyıllar boyunca, ülkeleri ve genel olarak dünyayı şekillendiren birçok sanayi devrimi olmuştur. Endüstri 4.0, çalışma biçimlerini değiştiren en son sanayi devrimidir. Otomasyon, yapay zeka (AI) ve robotiğin yükselişinin yanı sıra İnternet ve giderek daha iyi teknoloji ile bağlantılı diğer ilerlemeleri ifade eder. Tarım endüstrisi de teknoloji ve çalışma alanındaki bu önemli değişimi yaşadı ve deneyimlemeye devam ediyor. ‘Tarım 4.0’ olarak anılıyor ve çiftçiliği yenilikçi ve kendine güvenen hale getirmeyi vaat ediyor. İşte son teknolojik gelişmelerin tarımı değiştirmesinin beklendiği üç temel yol şunlardır: Yapay zeka Yapay zeka, süreçleri çok daha verimli hale getirmek için tarım endüstrisi tarafından kullanıldı. AI, çeşitli makinelere ve ekipman parçalarına uygulanarak, sprinkler ve gübre gibi farklı cihazların işlerini daha etkin bir şekilde gerçekleştirmelerine olanak tanır. Bunun iyi bir örneği, karada büyük nesneleri taşımak, çekmek...