Yazılım mühendisliği Dunelm’in tüm iş alanlarını kapsar. Geçtiğimiz birkaç yılda perakendeci, BT altyapısını, IBM WebSphere on Rackspace aracılığıyla kullanıma hazır e-ticareti yürütmekten her şeyi kendi bünyesinde oluşturmaya kadar güncelledi.
Dunelm mühendislik ve mimarlık direktörü Paul Kerrison, “Birçok şirket gibi, dijital dönüşüm de web sitesiyle başlıyor ve daha sonra daha da derinleşiyor” diyor. “Ve şu anda içinde bulunduğumuz aşama bu; dijital teklifimizi bu öncü platformda sunuyoruz.”
Daha modern bir mimariye geçişi tartışan Kerrison şunları söylüyor: “Büyük e-ticaret paketlerini hazır olarak satın almaktan uzaklaştığımızda, mühendislik yeteneğimizi ve kendi web sitemizi oluşturmaya karar verdik ve bunu ileriye dönük olarak yapmak istedik. mümkün olduğunca bir yol düşünüyorum.”
Dunelm’in baş mühendis yardımcısı Jan Claeyssens, bu ileri görüşlü yaklaşımın şirketin iş yüklerini Kubernetes’e dağıtmama kararı aldığı anlamına geldiğini söylüyor. Bunun yerine esas olarak sunucusuz sistemleri konuşlandırdı ve bir DevSecOps yeteneği geliştirdi.
O dönemde Kerrison, e-ticaret platformunu oluştururken Dunelm’in içerik yönetim sistemine özel bir ön uç yerleştirmeye ve bir dizi mikro hizmet sunmaya karar verdiğini söylüyor. Kerrison’a göre o dönemde bu çabanın sonucu Dunelm’in Avrupa’daki en büyük sunucusuz Lambda uygulamasına sahip olmasıydı.
AWS’nin ana sunucusuz uzmanı Luca Mezzalira’nın yardımıyla Kerrison, Dunelm ekibinin web sitesini oldukça büyük ve şişkin hale geldiğinden mikro ön uçlara böldüğünü söylüyor. Bunun oldukça yeni bir kavram olduğunu söylüyor: “Bunu yapmanın tek bir yolu yok. AWS’den ve kelimenin tam anlamıyla mikro ön uçlar üzerine kitap yazan Luca adında bir adamdan çok yardım aldık.”
Şirketin web varlığının bir sonraki aşamasının, bağımsız olarak konuşlandırılabilen ve ölçeklendirilebilen ve belirli bir ekibe ait olan daha küçük parçalardan inşa edildiğini söylüyor. Kerrison için bu mimari, Dunelm’deki büyümenin bir sonraki aşamasına yardımcı olacak.
Şirketin genel BT mimarisini nasıl geliştirdiğine bakarak şunları söylüyor: “Tam da daha derine ve daha geniş bir alana inme aşamasındayız. Dahili sistemlerimizden daha fazlasını taşımak ve %100 buluta geçmek istiyoruz.”
Ancak Kerrison, işletmenin kendi deyimiyle “emtia yetenekleri” olarak tanımladığı ve şirket içinde oluşturulması gerekmeyen şeyleri değerlendirmesi gerektiğini kabul ediyor. Bunun yerine şöyle diyor: “Kullanıma hazır SaaS satın alacağız [software-as-a-service] uygulamalar ve geliştirme yeteneklerimizi müşteriler veya iş arkadaşları için gerçekten fark yaratan şeylere yoğunlaştırıyoruz.”
Claeyssens, Dunelm’in yazılım geliştirme hattını yürütmek için başlangıçta açık kaynaklı Jenkins otomasyon sunucusunu kullandığını söylüyor. Yeni bir platform seçmeye gelince Dunelm’in GitLab’ı seçtiğini söylüyor. Mevcut en hızlı ürün olmasa da Dunelm’e güvenlik de dahil olmak üzere her şeyi kapsayan en kapsamlı özellik ve işlevsellik paketini sunduğunu söylüyor.
Claeyssens, GitLab’ın en üst düzeyde bir kaynak kodu deposu olarak çalıştığını söylüyor ve şunu ekliyor: “Tüm kaynak kodumuzu güvende ve kontrol altında tutuyor.” Örneğin Claeyssens, ekibin “kod işlemenin oldukça düzgün bir yolunu” sunduğunu söylüyor; bu yöntem, akranlar tarafından yapılan kod incelemelerini destekleyerek kodun mantıklı bir şekilde birleştirilmesine olanak tanıyor ve bu da daha sonra akran incelemesine tabi tutuluyor. “Arızalı bir şey sunmadığımızdan emin olmak için bu ekstra adıma sahibiz” diye ekliyor.
Claeyssens daha önce tüm web sitesi güncellemelerinin tek bir depoya bağlı olduğunu ve bunun da hantallaşmaya başladığını söylüyordu. Mikro ön uç fikri bunu basitleştirir. “Bu tür büyük web monolitlerini ayrı alanlara bölerek, her bir parça ön uç tarafından bir araya getirilebilir ve deneyim açısından anlamlı bir sayfa halinde birleştirilebilir” diyor.
Perde arkasında bireysel ekipler kendi GitLab depolarındaki bireysel parçalar üzerinde çalışabiliyor. Claeyssens, “Hepsinin kendi boru hatları var, bu da burada bir şeyi değiştirme ve orada bir şeyi etkileme riskini azaltıyor” diye ekliyor. Daha küçük kod parçaları etrafında organize edilen bu çalışma şekli aynı zamanda Dunelm’in yeni işlevleri daha sık ve güvenli bir şekilde dağıtabileceği anlamına da geliyor.
Kerrison, “Daha fazla ve daha güvenli dağıtımlar ve daha kısa teslim süreleri görmek istiyorum” diyor. Bunun işe nasıl yardımcı olabileceğini tartışarak şunu ekliyor: “İyi bir rüzgarla, bir gün bir fikriniz olabilir ve onu acil bir görev olarak bir boru hattına itebilir, böylece üretime kadar olan yolu çok çok hızlı bir şekilde ilerleyebilirsiniz. ”
Ancak her şeyin üretime giden bir boru hattına ihtiyacı yoktur. Yazılım mühendisliğinin maliyeti göz önüne alındığında Kerrison, Dunelm’in, fikri üretime geçirmek için gereken mühendislik çabasını göstermeden önce, yeni bir fikrin değerini kanıtlamak için küçük, düşük kaliteli deneyler yürütmede başarılı olduğunu söylüyor. Kerrison’a göre, küçük kod parçalarıyla hızlı dağıtım yeteneği, Dunelm’deki yazılım mühendisliği ekiplerinin deneyleri daha güvenli bir şekilde yürütebilmesi anlamına geliyor.