Bildiğiniz gibi uzun bir süredir Open edX çözümleri sunuyoruz. Hiçbir yazılım yoktur ki, kurup sonsuza kadar sorunsuzca kullanalım. İlgilenilmesi, bakılması gereken bir süreç yazılım. Ben de bu yazıda size bir bakım hikâyesinden, geçtiğimiz ay neticelendirdiğimiz sürüm güncelleme yolculuğundan bahsedeceğim. Yazımıza konu olan güncelleme; bir süredir türlü sebeplerle ertelenerek sonunda Open edX Koa’dan Olive’e tam dört sürüm atlamayı gerektiren zorlu bir süreçti…
Teknik olarak izlenen yol
Bir süredir Open edX tarafından resmi olarak da desteklenmesiyle biz kurulum ve güncellemeleri Tutor ile yapıyoruz. Bu bize hız kazandırmanın yanısıra belgelendirmede tavsiye edilen yönteme paralel ilerlememizi ve çözemediğimiz noktalarda topluluktan daha kolay yardım alabilmemizi sağlıyor. Ancak geliştirmeler için tavsiye edilen ve tek çalıştırabildiğimiz yöntem hâlâ Devstack olduğu için geliştirici ortamlarımızda Devstack kullanmaya devam ediyoruz.
Canlı ve halihazırda kullanılmakta olan bir sistemde çalışacağımız için sürüm geçişinde işimizi sağlama almak için dört sürüm birden atlamaktansa teker teker ilerlemek istedik. Bu bize daha çok iş yükü ve zamana mal olduysa da büyük krizlerin önüne geçmemizi sağlayan bir yöntem oldu.
Önce tamamen yeni bir ortamda kurulumun simüle edilmesi fikrindeydik ancak daha sonra bu kum havuzu denemesinin bize getirisinin olmadığını, esas sunucularda o sunuculara biricik sorunların hâlâ muhtemel olduğunu fark edip stratejimizi değiştirdik. Tamamen yeni ve temiz kurulmuş bir simülasyon alanı yerine mevcut sunucularımızda göç işlemini gerçekleştirdik. Bahsi geçen Open edX kurulumu için ikisi de müşteri tarafından aktif olarak kullanılmakta olan, bir test bir de canlı ortamımız bulunmakta. Güncellemeyi önce test ortamında, ardından canlı ortamda, Tutor ile sürümleri teker teker ilerleyerek gerçekleştirdik.
Teknik zorluklar ve aksaklıklar
Koa, Lilac, Maple, Nutmeg, Olive yolculuğunda her bir durakta build aldığımız ve birtakım kontroller gerçekleştirdiğimiz; hatta bu durakların bazılarında bazı ara duraklarda da durmak durumunda kaldığımız için sorun çıkmadığı senaryoda bile üç tam iş günü süren bir işlem olacaktı bu güncelleme.
Elbette her yazılım sürecinde olduğu gibi sorunlar çıktı ve üç günden çok daha uzun sürdü bu işlem. Koa’dan Olive’e en dramatik değişimlerden biri Micro-Frontend yapısına geçilmesi oldu. Bu durum her ne kadar Open edX için çok olumlu bir teknik geliştirme olsa da, öngöremediğimiz bir sorun doğurdu bizim tarafımızda. Müşterinin sunucularındaki CloudFlare’de satın alınan SSL sertifikası yalnızca tek bir domain için geçerliydi ve eklenen subdomainlere izin vermiyordu. MFE kullanımıyla her seferinde subdomainler için de SSL alınması ve müşteri tarafında yapılan ayarların beklenmesi gerekti. Bu durum hem test hem canlı sunucu için iki ayrı kere tekrarlanmış oldu.
Önce test ortamının, ardından da canlı ortamın güncellenmesi de beklenmedik bir başka soruna yol açtı. Test ortamı güncellendikten yani Olive’e getirildikten sonra müşterinin test ortamına girdiği bazı modülleri canlı ortama aktarmak istediğimizde; üst sürümden alt sürüme aktarmanın çalışmadığını görmüş olduk. Yeni sürümde var olan bazı güzel özellikler elbette eski sürümde yer almaması, burada karşımıza bir sorun çıkardı. Bu aksilik üstüne, biz canlı ortamı da güncelleyene kadar bekleyemeyecek olan ve girilmesi gereken o modülleri eski sürümlü altyapıya elle taşımak durumunda kaldık.
Open edX güncelleme sürecinden alınan dersler
Öncelikle ayrı bir simulasyon sunucusu ihtiyacı olmadığını ve doğrudan ilgili sunucu üstünde çalışmamız gerektiğini görmüş olduk.
Bunun yanısıra sürüm güncellemenin ortasında elimizde bir Olive bir Koa (ve hatta bazen ara sürümlerde) sunucu olduğu durumda gelen ek geliştirme isteklerini gerçekleştirmekte zorlandık. İleri sürümden geri sürüme beklenen uyumluluk sorunları ve bu aşamada yapılan her işin güncelleme sonrasında tekrar yapılacağını göz önüne alarak bu süreçte geliştirmeleri tamamen durdurmalıydık.
Son olarak dört sürüm birden güncellemenin çok sancılı bir süreç olduğuna kanaat getirdik. Bundan sonra yılda bir kere yani iki sürümde bir, mevcut en son yayınlanandan bir önceki stabil sürüme güncelleme yapmak konusunda mutabık olduk. Bu deneyim aktarımının birilerine yardımcı olması dilekleriyle yazımı sonlandırıyorum.
Geribildirim: Open edX'i 4 Sürüm Birden Güncellemek - Artistanbul
Geribildirim: Open edX’i 4 Sürüm Birden Güncellemek – Demo-Omnikampus
Geribildirim: Open edX’i 4 Sürüm Birden Güncellemek - OmniKampus
Geribildirim: Updating Open edX to 4 Versions - OmniKampus