Teknoloji dünyasındaki gelişmeler büyük bir hızla devam ediyor. Belirli kırılma anlarına sahip olan bu dünya, konteyner teknolojisi ile birlikte bambaşka bir boyuta ulaştı. Konteyner yapılarına genel olarak bakıldığında, bu yapıların bir noktada çalışan bir uygulamanın neredeyse bütün ortamlarda çalışarak, hızlı ve net sonuç vermesine olanak tanıdığı görülüyor. Bir diğer deyişle, konteyner yapılarında hem Linux hem de Windows tabanlı işletim sistemlerine özel olarak geliştirilen uygulamalar bir bütün halinde çalıştırılabiliyor.
Bilgi teknolojilerinde sanallaştırma ve konteyner teknolojileri oldukça önemli konumda yer alıyor. Bu kavramın geçmişine bakacak olursak, konteyner teknolojisinin temel olarak Google tarafından kurumsal düzeyde kullanıldığını görürüz. Ancak kişisel kullanıma açılmadığı için kullanıcı düzeyinde pek bilinmiyordu. Sonrasında Docker şirketi, Google’ın kullandığı konteyner teknolojisini son kullanıcıların da ulaşabileceği düzeye getirmiş ve bu sayede şirketler zaman içerisinde artan ve azalan iş yüklerini daha kolay bir şekilde yönetebilir hale gelmiştir.
Konteyner teknolojisi uzun ve karmaşık gibi görünen işleri basit hale getirmekle birlikte geliştirdiğiniz kodlardaki problemleri çözmek için tüm sistemi kapatmak yerine sorunun yaşandığı alana doğru bir müdahale yapmanızı sağlıyor. Bu sayede arka tarafta kalan sistem çalışmaya, kullanıcılar da sorun yaşamadan hizmet almaya devam ediyor. Bunun dışında konteyner kullanmaya başladığınızda disk alanında ciddi bir tasarruf sağlamak mümkün. Kısacası, küçük boyutlarına rağmen kendisinden çok daha büyük işlerin altından kalkabiliyor ve bunun için terabaytlarca ya da petabaytlarca yer ayırmak ya da ekstra depolama alanı satın almaya gerek kalmıyor. Kaldı ki bu iş bulut üzerinde yapıldığında da fiziksel olarak herhangi bir şekilde saklama ve yönetme zorluğu olmuyor. Kolayca altyapı tarafındaki kaynakları esnek şekilde kullanabiliyorsunuz.
Red Hat, konteyner teknolojisinden en iyi şekilde faydalanmanızı sağlayacak tüm araçları şirketlerin kullanımına sunarak, bu alanda işlerin verimli bir şekilde yönetilebilmesine olanak sağlıyor.
Detaylı bilgi için bu linkte tıklayabilirsiniz: https://www.openshift.com/
Konteyner Teknolojisinin Geçmişi
Her ne kadar bu teknolojiyi Google kullansa da temeli daha öncelere dayanıyor. Konteyner kavramı ilk olarak 1979 yılında ortaya atıldı ve bu tarihten sonra gelişerek devam etti. Bu süreçte ilk çıkışını da Unix V7 ile gerçekleştirdi. FreeBSD Jails, Linux VServer, Oracle Solaris Containers, Open VZ, Process Containers (Google), LXC, Warden ve Lmctfy gibi gelişim süreçlerinden geçerek günümüze kadar geldi.
Düzenli hale gelmesi ise 2000’li yılların başında FreeBSD Jail ile olmuştur. Bir sonraki yılda ise Jacques Gélinas’ın VServer projesi ile Linux ortamına girdi. Linux’ta birden çok kontrollü kullanıcı alanı için bu temel oluşturulduktan sonra, bugünün Linux konteynerlerini oluşturmak için parçalar yerine oturmaya başladı.
Bu gelişmelere rağmen bu teknoloji hala kişiler ve şirketler tarafından kullanılmıyordu. Tarihler 2008’i gösterdiğinde ise Docker, bu konuda devrim niteliğinde bir iş yaptı. Google gibi dev bilişim şirketlerinin kullandığı bu sistemi son kullanıcıların hizmetine açtı ve konteyner teknolojisinin bu noktada gelişimi ciddi derecede hızlandı. 2008’de Docker, kendi adını taşıyan konteyner teknolojisiyle (dotCloud aracılığıyla) kullanıcıları tanıştırdı. Docker, teknolojik olarak birçok kavram ve araç eklemesi yaptı. Yeni katmanlı görüntüleri çalıştırmak ve oluşturmak için basit bir komut satırı arayüzü, bir sunucu arka plan programı, önceden oluşturulmuş konteyler imaj kitaplığı ve bir log sunucusu kavramı bunlardan yalnızca birkaçı. Red Hat, Docker ile birlikte Açık Konteyner Girişimi’nin (OCI) üyeleri arasında yer alıyor. Bu nedenle konteyner teknolojilerinin açık ve endüstriyel bir standarda ulaşmasını sağlıyor.
Konteyner Mimarisi Nedir?
Konteyner teknolojisinde kullanılan mimari başlı başına sanallaştırma ile gerçekleşiyor. Konteyner mimarisi ile teknoloji dünyasının önemli kırılma anlarından biri olan sanallaştırma teknolojisini birbirinden ayıran en önemli noktası ise host üzerinde hypervisor katmanı yerine konteyner motorunun kullanmasıdır. Dolayısıyla aynı işletim sistemini kullanarak farklı uygulamalar çalıştırılabiliyor.
Kubernetes Nedir?
Elinizde yüzlerce konteyner’ınız olduğunu varsayalım, bunları tek tek yönetmek imkansızdır. Tam bu noktada konteyner platforma ihtiyaç duymaktayız. Tek bir noktadan konteyner’ları yönetmeyi, izlemeyi, loglamasını yapmayı ve bir disk ihtiyacı olduğunda bunu temin edebilmeyi sağlıyor. Kubernetes ise konteyner platformlar genelinde de facto standart haline gelmiştir. Red Hat Openshift Container Platform ise altyapısında Kubernetes’in olduğu ve üzerine birçok bileşeni entegre ettiği, güvenliğini sağladığı bir konteyner platform ürünüdür.
Openshift’in Kubernetes’ten ne gibi farklılıklarının olduğunu öğrenmek için linki tıklayabilirisniz: https://www.redhat.com/rhdc/managed-files/cl-openshift-and-kubernetes-ebook-f25170wg-202010-en_0_0.pdf
Konteyner Teknolojisinin Güvenliği Nasıl Sağlanıyor?
Bilişim sistemleri dediğimizde sağladığı rahatlığın dışında güvenlik konusu da akıllara gelen bir diğer başlık oluyor. Konteyner teknolojisini kullanırken sistemsel olarak sağladığı rahatlık tartışılmaz ancak güvenlik konusunda neler vadediyor? Konteyner güvenliği entegre bir şekilde oluşuyor. Kaldı ki entegre ve sürekli olması da gerekiyor. Öte yandan konteyner güvenliğini sağlamak için doğru bir plan da lazım.
Öncelikle konteyner hattının ve altyapısının güvenliğe alınması şart. Konteyner teknolojisi statik güvenlik önlemleri ile korunamaz. Dinamik bir yapıda olduğu için ancak konteyner katmanında güvenlik oluşturarak ve altyapınızı savunarak, konteynerlerinizin güvenilir, ölçeklenebilir ve güvenilir olduğundan emin olunabilir. Bu nedenle öncelikle bu katmanı korumaya almak çok önemli.
Konteyner güvenliği, güvenilir kaynaklarla sağlanabiliyor. Bu yüzden temel imajlar için güvenilir kaynakları tespit etmek gerekiyor. Güvenilir kaynakları kullanırken bile uygulama eklemek ve yapılandırma değişiklikleri yapmak, yeni değişkenler ortaya çıkaracaktır. Uygulamaları oluşturmak için dışarıdan içerik getirirken, proaktif içerik yönetimini de göz önünde bulundurmak önemli. Bu noktada Red Hat’in müşterilerine sunduğu ve güvenlik açıkları kapatılmış, devamlı güncellediği temel konteyner imajları bulunuyor. Müşterilerin bu temel imajları kullanarak mimarilerini oluşturmaları gerekiyor.
Detaylı bilgi için bu linki tıklayabilirsiniz. https://www.redhat.com/en/blog/introducing-red-hat-universal-base-image
Erişimi yönetmek bir diğer önemli güvenlik adımı olacaktır. Konteyner düzenlemesini yapan ekibin erişimini ve tanıtımını doğru bir şekilde yönetmek gerekiyor. Özel bir log kullanmak, rol tabanlı atamalarla erişimin kontrol edilmesine izin verirken, aynı zamanda konteyner’a meta veriler atayarak içeriğin yönetilmesine de yardımcı olur. Meta veriler, bilinen güvenlik açıklarını tanımlama ve izleme gibi bilgiler sağlıyor. Özel loglar otomatikleştirme ve atama imkanı sağlayarak güvenliğin artmasına olanak tanıyor.
Şirketlerin güvenlik testlerini sürekli olarak yapması gerekiyor. Özellikle yeni güvenlik açıkları bulunduğunda, güvenlik sorunları olan yapıları belirlemek için ilkelerin nasıl otomatikleştirileceğini anlamak, süreçleri önemli ölçüde kolaylaştırıyor. Güvenlik testleri otomatik hale geldiğinde sistem sürekli olarak açıklara karşı korumalı olacaktır. Oluşan sorunların izlenmesi ve işaretlenmesi konusunda da analizler devreye giriyor.
Altyapınızın savunması da güçlenmeli. Konteyner sistemindeki altyapıyı doğru hamlelerle güçlendirerek, oluşabilecek güvenlik açıklarını önlemek mümkün. Bu noktada Red Hat ‘in konteyner güvenliği konusunda müşterilerine sunduğu Advanced Cluster Security for Kubernetes (ACS) ürününe göz atabilirsiniz. https://www.redhat.com/en/resources/advanced-cluster-security-for-kubernetes-datasheet
Konteynerlerin Sunduğu Avantajlar Nelerdir?
Konteyner teknolojisi yıllar içerisinde değişim ve dönüşüm geçirdi. Bu süreç halen daha devam ediyor. Elbette bu da birçok avantajı da beraberinde getiriyor. Kurumların ekosistemlerini büyüten ve hızlı bir şekilde sorunların çözülmesine olanak tanıyan yapısı ile son yıllarda tercih ediliyor. Peki, konteynerlerin sunduğu avantajlar nelerdir?
- Dağıtım ve yapılandırma süreci konusunda ciddi kolaylık sağlıyor. Konteynerlerin dağıtımının kolaylığının yanı sıra kısa sürelerde imhası da son derece kolay hale geliyor. Dolayısıyla öngörülemeyen trafik artışlarında bu seçenek ile hızlıca yeni konteyner’lar açılıp, eski düzeyine geldiğinde tekrar sayıları azaltılabiliyor.
- Konteyner kullanımı belirli bir rota (pipeline) izlenerek tutarlı bir test ortamı sunuyor. Kodun oluşturulmasından yerleştirilmesine kadar geçen süredeki üretim aşamasında tutarlı bir yol izlenmesi sağlanıyor.
- Kaynak tasarrufu yapılmasına olanak tanıyor. Bu sayede daha küçük alanlarda büyük boyutlu işler çalışabiliyor ve bu inanılmaz hızlarda gerçekleşiyor. Bu da kaynak tasarrufunun yanı sıra zaman tasarrufunu da sağlıyor.
- Maliyetleri bakımından kurumları artıya geçiriyor. Eskiden şirketler bilişim alanına yatırım yaparken hem yazılım hem de donanım tarafında alım yapmak zorunda kalıyorlardı. Bu yapı bir süre sonra sürdürülemez biçimde büyümeye ve sürekli olarak yeni alımların yapılmasına neden oluyordu. Ancak hem bulut teknolojisi hem de sanallaştırmanın gelişmesi ardından gelen konteyner teknolojisi sayesinde kurumlar geliştirmek istedikleri yazılımları bu noktalarda yapmaya başladı. Bu da onları mali açıdan artıya geçirmeye başladı.