Dijital, Etkinlik

Yazılımın Büyülü Dünyasında Bir Keşif: Docker ve CI/CD Rehberi

Yazılım geliştirmek, bir yolculuk gibidir ve bu serüvenin ne kadar dolu dolu geçtiğini Murat Dinç’ten öğrenmeye hazır mısınız?

Kanal D ve CNN Türk’te Yazılım Geliştirici olarak başladığı kariyerine, Boyner Group’ta Kıdemli Yazılım Uzmanı olarak yön veren Dinç, şimdi de Sipay Elektronik Para ve Ödeme Hizmetleri’nde Kıdemli Yazılım Uzmanı olarak görev yapıyor. Dinç, bu hafta Acunmedya Akademi öğrencilerine ısınan yazılım dünyasının kapılarını aralayan bir anahtarı: “Docker Kullanımı ve Bir Geliştiricinin CI/CD Süreçlerindeki Rolü”nü anlattı.

Esnekliğin Şampiyonu: Docker ve Redis Cache Yolculuğu

Murat Dinç: “Merhaba! Yazılım geliştirme süreçlerinde odaklandığımız önemli bir araç, Docker. Şu anda aktif olarak CPA, developer ve yeni bir software architect olarak çalışıyorum. Ağırlıklı olarak ilgilendiğim konu ise “Software Architecture.”

Docker’ı daha iyi anlayabilmeniz için bir benzetme ile başlangıç yapalım. Docker’ı bir dondurucu gibi düşünebiliriz. Pizza yapma örneği üzerinden gidelim. Herkesten kendi pizza tarifini kullanarak bir pizza yapmasını istesem nasıl bir sonuç ortaya çıkar? Her pizza farklı lezzetlere sahip olacaktır değil mi? Ancak, herkesin aynı dondurucudan bir pizza alıp yapmasını istediğimizde, bu sefer hepsinin tatları aynı olabilir. İşte Docker, bu noktada devreye girer ve bir dondurucu gibi belirli tarifleri saklar. Bu sayede, herkes aynı lezzeti yakalamış olur.

Docker, bağımsız bir platformdur ve Windows, MacOS, Linux gibi farklı işletim sistemlerinde çalışabilir. Docker’ın temel amacı, içinde bulundurduğu konteyner teknolojisiyle uygulamaların her yerde sorunsuz bir şekilde çalışmasını sağlamaktır.

Docker’ın terminolojisi genelde konteynerleri ve imajları içerir. Bir konteyner, bir veya birden fazla imajın içinde çalışan bir küme olarak düşünülebilir. Uygulamayı Docker’e uyumlu hale getirmek için onu bir imaj haline getirir ve bu imajı farklı işletim sistemlerinde kullanabilirsiniz.

Ayrıca Docker, yazılım geliştiricilere esneklik sunan bir teknolojidir. Bu sihirbazlıkla uygulamalarınızı platformdan bağımsız hale getirebilir ve geliştirebilirsiniz. Dinç, bu teknolojinin temel kavramları olan konteyner, imaj, volume ve network üzerinden Docker’ın sağladığı avantajları, sıradışı örneklerle anlattı. Ayrıca, Docker ve Kubernetes gibi konteyner teknolojilerinin geliştirici dünyasındaki yeri konusunda bizi aydınlattı.

Kodun Süratli Dansı: Sürekli Entegrasyon ve Sürekli Dağıtım

Dinç’in öne çıkardığı bir başka kilit konu, sürekli entegrasyon ve sürekli dağıtım süreçleri oldu. “Şimdi gelelim CICD konusuna. Continuous Integration/Continuous Delivery. Günümüzün en popüler kavramı. Peki, Continuous Integration nedir? Herkes evini temiz tutmak ister değil mi? Evi temiz tutmak için ne yapmak lazım? Ya her gün ya da belli bir aralıkta evinizi temizlemeniz/temizletmeniz lazım. Evin temiz kalmasını istiyorsak bu şart! İşte Continuous Integration tam da bu işe yarıyor.”

Murat Dinç konuşmasını bitirirken bu yolda kariyer hedefleyen arkadaşlara tavsiyede bulundu: “Kıdemli yazılımcıyı normal yazılımcıdan ayıran fark nedir? Kesinlikle daha iyi kod yazmak değil. En büyük fark; daha fazla projede çalışmış olmak. Bu yüzden arkadaşlar şunu asla unutmayın: “Her proje bir tecrübe.”