En başta güvenlik olmak üzere çeşitli nedenlerle sistemleri yeniliyoruz. Bu işlem bazen işletim sisteminin güncelleme komutları ile kolayca yapılabiliyor. Bazı durumlarda ise her şeyi baştan kurmak gerekiyor. Baştan kurarak yenilemeye örnekler vereceğim. İlk olarak Webmail yazımda bahsettiğim Roundcube programında yenilemeyi nasıl yaptığımı anlatacağım.
Roundcube, versiyon yenilemesi nispeten kolay bir program. Fakat php versiyonu uyumsuz olursa, işler zorlaşıyor. Yeni versiyona geçebilmek için önce php’yi yenilemek gerekiyor. İşletim sisteminin versiyonunu güncellemeden php versiyonunu güncellemek her zaman mümkün olmuyor. Bu yüzden işletim sistemini ve üzerinde kurulu her şeyi yenilemeye karar verdim.
Kurulum ve test işlemleri uzun süreceği için çalışan sistemi bozmadan yeni makinelere Linux kurulumu yaptım. Böylece php versiyonu ile birlikte web sunucu, memcache, MariaDB, HAProxy yenilendi. Yeni NFS paylaşımları oluşturdum. Önce yeni versiyon Roundcube’ü kurup test ettim. Çalışır hale getirdikten sonra eski sunucudaki konfigürasyonu yeni sunucuya uyarladım. Bu tür yenilemelerde konfigürasyonun tamamını gözden geçirip çıkartılacak veya eklenecek özellik var mı diye bakarım. Belli bir süre test yaparım.
Yeni sunucuları hizmete alacağım zaman veritabanı içindeki verileri yeni MariaDB sunucusuna kopyaladım. Versiyon değişince veritabanı yapısı da değiştiği için Roundcube upgrade scriptleri ile işlem yaptım.
Yenileme sırasında bütün eklentileri de gözden geçirmek gerekiyor. Yeni versiyon ile uyumlu olmayan eklentileri kaldırıyorum. Eklemek istediğim yeni bir eklenti varsa kurup test ediyorum. Mesela son kurulumda iki aşamalı giriş (2FA) eklentisini eklemiştim. Kullanmaya devam edeceğim eklentileri de yeni versiyon ile test ediyorum.
Yenileme sonrasında kullanıcıların bir kısmı memnun olurken, bazı kişiler alıştıkları arayüz değiştiği için yenilikten hoşlanmıyor. Eskiden e-posta yazarken kullandığı font rengini şimdi aynı şekilde bulamaması bile hayal kırıklığı yaratabiliyor.
Yenileme aynı zamanda temizlik fırsatı veriyor. Eskiden kullandığım bir eklenti veritabanına çok fazla kayıt yapıyordu. Şimdi artık işime yaramadığı için o eklentiyi kaldırdım. Kayıtları da silerek veritabanını küçültmüş oldum.
Test ederken karşılaşmadığım sorunlar sistem devreye girince ortaya çıkabiliyor. Örneğin bazı kişiler iki aşamalı girişi etkin hale getiriyorlar ama gerekli işlemleri yapmadıkları için giriş yapamaz hale geliyorlardı. İlk başlarda onlara tek kullanımlık giriş şifresi verip, girdikten sonra 2FA’yı kapatmalarını söylüyordum. Sonra veritabanındaki kayıtların nerede tutulduğunu araştırıp, orayı değiştirerek 2FA’yı kapatmaya başladım.
En büyük zorluk sistemin devreye girdiği ilk gün yaşanıyor. Çıkan çeşitli sorunlar çözülünce işler tekrar düzene giriyor.