İyi yürütülen bir sürüm tamamen planlama ve iletişim ile ilgilidir. Dolayısıyla, bir yayın yapmadan önce şu soruları göz önünde bulundurun:
Sürümün ne kadar süreceği ve sürüm devam ederken insanların ürünümle arayüz kurmaya devam etmelerine izin verme riski var mı? Sistem için bir risk varsa, sistemi çevrimdışına almayı ve yerine "Şu anda bakımda olan sistem" mesajını koymayı düşünün.
Sürüm hakkında önceden bilgilendirmeniz gerekebilecek müşteriler var mı? Sürüm yayınlanırken olası bir hizmet kesintisi veya performans düşüşünden bahsetmem gerekir mi? Şahsen her zaman aşırı iletişim kurma ve tüm müşterilere herkese açık bir blogda veya benzer bir mekanda gelecek bir yayın veya bakım penceresi hakkında bilgi verme tarafında hata yapıyorum .
Serbest bırakmanın ters gitmesi durumunda beklenmedik durum planlarım nelerdir? Örneğin, sürüm kötü giderse, sistemi geri döndüğümüzde ve çevrimdışı olduğumuz zaman en aza indirgemek için sistemi geri yüklemeliyiz? Ve eğer öyleyse, bir sürümü geri alma adımları iyi bir şekilde belgelenmiş midir? Ya da sorunların ortaya çıkması durumunda sorunların giderilmesine yardımcı olmak için doğru kişileri yanımda veya el altında bulundurmam gerekir. Şahsen, herhangi bir sürümün planlamasına yaklaşmanın en iyi yolunun, sürümde bir şeyin yanlış gideceğini varsaymak olduğunu düşünüyorum. Bu şekilde kendimi bu konulardan bazılarını önceden düşünmeye zorladım.
Daha sonra, bir sürümün çalıştırılması söz konusu olduğunda, sorunsuz bir şekilde çalışmasını sağlamanın en iyi yollarından biri, karşılaştığınız her şeyi pratik yapmak, uygulamak, uygulamak ve belgelendirmektir.. Bu nedenle, yeni kodu üretime dağıtmadan önce, kodu önce güvenli, düzgün bir şekilde sanallaştırılmış bir hazırlama ortamına dağıtma alıştırması yapın. Üretime dağıtmaktan sorumlu olacak kişiyi, test dağıtımını evrelemeye getirin. Bunu elbise prova olarak düşünün ve gerçek olan bu gibi kendinizi yönetin. Yolun her adımında yaptığınız her şeyi belgeleyin; yürüttüğünüz her komutu, çalıştırdığınız herhangi bir SQL kodunu, değiştirdiğiniz dosyaları ve bunları nasıl değiştirdiğinizi ve yol boyunca her adım için prosedürün düzgün bir şekilde yürütülüp yürütülmediğini görmek için ne beklediğinizi belgelendirin. Bir tür sorunla karşılaşırsanız ve karşılaştığınızda, sorunu çözmek için ne yaptığınızı belgeleyin.
Ardından uygulama dağıtımı tamamlanır, notlarınızı gözden geçirin ve hataları ortadan kaldırmak için işlemi iyileştirip düzeltemeyeceğinize bakın. Sonra tekrar tekrar yapın . Bir sürümün yürütülmesi, "bu makineye giriş yapın, bu komutu yürütün; sonra veritabanına giriş yapın ve bu SQL komutunu yürütün; sonra ..."
Bir işlemin veya sürüm yönetimi ekibinin bir sürümün sorunsuz bir şekilde çalışmasına yardımcı olmak için yapabileceği şeyler yukarıda listelenmiştir. Ancak, bir sürümdeki riskleri en aza indirmeye yardımcı olmak için mühendislik ne yapabilir?
Sürümleri küçük tutun. Basitçe söylemek gerekirse, bir sürümün içerdiği kod seti seti ne kadar karmaşıksa, sürüm o kadar riskli hale gelir. Operasyon ekibinize, aynı zaman diliminde daha az sayıda büyük sürümden ziyade daha fazla sayıda küçük sürüm yayınlamayı planlayarak bir iyilik yapın.
Test, test, test. Kodunuzu yalnızca KG ortamınızda test etmeyin, yazılımınızı test etmek için hazırlama ortamını kullanın. Genellikle kodun kendisi ile çok az veya hiçbir ilgisi olmayan, ancak ortamın kendisinin (veya ikisinin bir karışımının) konfigürasyonunda yatan kök bir nedeni olan hatalar vardır. Bu sorunları bulmak için kodunuzu üretimi, yani sahnelemeyi yakından yansıtan bir ortamda test etmeniz gerekir.
Son olarak, bazen en önemli olan şeylerin yanlış gitmesini önlemek için yaptığımız şey değildir, ama yanlış gittiğinde kendimizi böyle yönetiriz. Bu nedenle, operasyonel şeffaflık konusunda şirketinizde bir kültür oluşturmanın önemli olduğunu düşünüyorum. Müşterilerden gelen sorunları gizlemeye çalışmayın, yakında olun. Operasyon ekibinizin şu anda farkında olduğu ve çözmeye çalıştığı sorunlar olup olmadığını müşterilere bildirmek için Twitter'ı aktif olarak kullanın ( Deniz Feneri bu harika!). Hizmetiniz için, müşterilerin bir sorun olup olmadığını görmek üzere başvurabilecekleri bir "durum" sayfası yayınlamayı düşünün ( TypePad buna harika bir örnek sunar). Alt satırda, her zaman aşırı iletişim tarafında hata. Müşterileriniz bunun için size teşekkür edecek.