TL; DR: Yedekli, modüler yapı; kullanılabilirlik testi; yakından izleyin.
Herhangi bir açıklamada sıkıştırmaya çalışmanın çok uzun sürebileceğini fark ettikten sonra yaptığım tüm gözlemleri yazacağım.
Önermenin sorgulanması
Bulut sistemi her derde deva
En iyi bulut sağlayıcısıyla tamamen bulutta olsanız bile, uygulamanızı esneklik için tasarlamanız gerekir. AWS, VM'nizin yerini alabilir, ancak hesaplamanın ortasında bırakılırsa uygulamanızın yeniden başlayabilmesi gerekir.
Bulut sistemini kullanmak istemiyoruz, çünkü x / y / z
Ultra büyük bir kuruluş değilseniz, bulut sistemlerini daha iyi kullanabilirsiniz. En iyi 3 bulut sistemi (AWS, MSFT, Google) size vaat edilen SLA'ları ve yönetimi kolay gösterge tablosunu sunmak için binlerce mühendis kullanır. Aslında bu şirket içi bir kuruş harcamak yerine onları kullanmak için iyi bir pazarlık.
Kapsam belirleme ve tasarım problemleri
Bir hizmetin kullanılabilirliğini tanımlamak, ölçmek ve sonra sürekli ölçmek, kullanılabilirlik sorunları için çözüm yazmaktan daha büyük bir sorundur.
'Kullanılabilirliği' tanımlamak ve ölçmek beklenenden daha zor
Birden fazla paydaş mevcudiyetin farklı bir görüşüne sahiptir ve olabilecek en yüksek maaşa sahip bir kişi tarafından tercih edilen tanım, diğer tanımları koyar. Bu bazen doğru tanımdır, ancak çoğu zaman eko-sistem aynı şeyi ölçmek etrafında kurulmaz, çünkü ideal tanım gerçek zamanlı olarak izlemek yerine ölçmek için çok zordur. Gerçek zamanlı olarak izlenemeyen bir kullanılabilirlik tanımınız varsa, kendi kendine benzer projenizi tekrar tekrar ürkütücü benzerliklerle bulacaksınız. Mantıklı ve kolayca izlenebilir bir şeyle devam edin.
İnsanlar her zaman mevcut olan sistemin karmaşıklığını hafife alırlar.
Odadaki fili ele almak için şunu söyleyeyim: "Hiçbir çoklu bilgisayar sistemi% 100 mevcut değil, gelecekte olabilir, ancak mevcut teknolojiyle değil." Burada mevcut teknoloji ile, ışık hızından ve bu gibi şeylerden daha hızlı sinyal gönderememize atıfta bulunuyorum. Tuzlarına değecek tüm comp-sci mühendisleri dağıtılmış bilgi işlem sınırlamalarını biliyorlar ve çoğu toplantılarda bundan bahsetmeyecek, noobs gibi görüneceklerinden korkuyorlar. Diyelim ki, karmaşık bilgisayar kısıtlamalarından bahsetmeyen herkesi telafi etmek , karmaşık ama her zaman bilgisayarlara güvenmiyorum .
İnsanlar mühendislerinin yeteneklerini abartır
Ne yazık ki, kullanılabilirlik ne istediğinizi bilmediğiniz ancak ne istemediğinizi bildiğiniz kategoriye girer. UI gibi 'istekleri biliyor' kategorisi biraz daha zordur. Başkalarının deneyimlerinden ve biraz daha fazlasını öğrenmek için biraz deneyim ve çok fazla okuma gerektirir.
Sıfırdan kullanılabilir bir sistem oluşturmak
Sistem gereksinimi olarak kullanılabilirliğin doğru önceliği hakkında her mimariye ve tasarım ekibine evanjel yapacağınızdan emin olun.
Kullanılabilirliğe yardımcı olan sistem özellikleri
Aşağıdaki sistem özelliklerinin sistemin kullanılabilirliğine katkıda bulunduğu gösterilmiştir:
fazlalık
Bunun bazı örnekleri hiçbir zaman VIP'in arkasında yalnızca tek bir VM'ye sahip olmamak veya asla verilerinizin tek bir kopyasını saklamamaktır. Bunlar, iyi bir IAAS'ın çözmenizi kolaylaştıracağı, ancak yine de bu kararları vermeniz gereken sorular.
Modülarite
Modüler bir REST , monolitik SOA'dan daha iyidir. Daha da modüler microservice aslında daha müsait normalden daha HATEOS DİNLENME . Akıl yürütme, sonraki bölümdeki Verim ile ilgili tartışmada bulunabilir. Toplu işlem yapıyorsanız, 1.000.000'luk bir parti ile uğraşmaya kıyasla 10'lu makul bir parti halinde toplu işlem yapmak daha iyidir.
Esneklik
"I am always angry"
- Hulk
Esnek bir sistem her zaman iyileşmeye hazırdır. Bu esneklik, ACK'yı yalnızca RAID diskine yazdıktan sonra ve muhtemelen en az iki veri merkezi üzerinden yazma için onaylama gibi durumlar için geçerlidir. Bir diğer son trend, veri yapısının iki farklı sürümle sunulduğunda çakışmaları çözme sorumluluğunu üstlendiği çakışmayan veri yapılarını kullanmaktır . Bir sistem sonradan düşünülecek kadar dayanıklı olamaz, tahmin edilmesi ve yerleşik olması gerekir. Uzun vadede bir başarısızlık garanti edilir, bu yüzden her zaman iyileşme planı ile hazırlanmalıyız.
Günlük izi
Bu teknik olarak bir Resilience alt türüdür, ancak tüm yetenekleri yakalaması nedeniyle çok özeldir. En iyi çabaya rağmen, kullanılamama modelini tahmin edemeyebiliriz. Mümkünse, sistem olaylarını oynatabilmek için sistem etkinliklerinin yeterli günlük kaydını tutun. Bu, büyük bir manuel maliyetle, öngörülemeyen durumlardan kurtulmanızı sağlar.
Kullanılabilirlik özellikleri
'Kullanılabilirlik' için kapsamlı olmayan akılda kalıcı özellik listesi: Tartışma uğruna, kullanıcının "Alışveriş sepetimde kaç öğe var?"
doğruluk
Eğer Do gerekir en doğru olası bir cevap üretmek veya Tamam yapmak hatalar nedir? Sadece referans olarak, ATM'den para çektiğinizde, doğru olduğu garanti edilmez. Banka bunun bir hata yaptığını öğrenirse, işlemleri tersine çevirebilirsiniz. Sisteminiz asal sayılar üretiyorsa, tahmin ediyorum, her zaman doğru cevaplar isteyebilirsiniz.
Yol ver
Önceki konu sorusu için her zaman doğru cevapladıysanız bu noktayı atlayın. Bazen soruların cevabının kesin olması gerekmez, örneğin şu anda Facebook'ta kaç arkadaşım var? Ancak cevabın her zaman +/- 1 basketbol sahasında olması bekleniyor. Beklenen sonucu verirken veriminiz 100 olur.
Tutarlılık
Cevabınız bir noktada doğru olabilir, ancak ışık ekrandan çıkıp gözlemcinin retinasına girdiğinde işler değişebilirdi. Cevabınızı yanlış yapıyor mu? Hayır, sadece tutarsız hale getiriyor. Çoğu uygulama nihai olarak tutarlıdır, ancak püf noktası, uygulamanızın ne tür bir tutarlılık modeli sağlayacağını tanımlamaktadır. Şans eseri uygulamanız tek bir bilgisayarda çalışabilir, bu güzel okumayı CAP teoreminde atlayabilirsiniz .
Maliyet
Çok şey, kısa vadeli etkilerin (gelir kaybı) ve uzun vadeli etkilerin (kötü itibar, müşteriyi elde tutma) toplam etkisine bağlıdır. Müşteri türüne (ücretli / ücretsiz, tekrar / benzersiz, esir) ve kaynak kullanılabilirliğine bağlı olarak farklı düzeylerde kullanılabilirlik garantileri oluşturulmalıdır.
Mevcut bir sistemin kullanılabilirliğini iyileştirmeye doğru
Bireysel makinelerin ve bir ağın operasyonel yönetimi o kadar karmaşıktır ki, bunu bulut sağlayıcısına bıraktığınızı veya ne yaptığınızı bilecek kadar uzman olduğunuzu varsayıyorum. Kullanılabilirlik altındaki diğer konulara değineceğim. Uzun vadeli strateji için Tanımla-Ölç-Analiz Et-Kontrol cennetsel bir eşleşme, kendimi gördüğüm bir şey.
- Paydaşlarınız için neyin "kullanılabilirlik" olduğunu tanımlayın
- Eğer olur nasıl ölçmek tanımladığınız ne
- Darboğazları tanımlamak için temel neden analizi
- İyileştirmeler için görevler
- Sistemin sürekli izlenmesi ( kontrolü )
Kullanılmama nedenleri
Herhangi bir fiziksel altyapı yönetimini kapsayacak, profesyoneller tarafından yapılması gereken operasyonel yönetimin, tamlık uğruna diğer kullanılamama nedenlerine değineceğimize karar verdik. IMO'nun kullanılabilirliği de beklenen davranış eksikliğini içermelidir, yani kullanıcıya beklenen deneyim gösterilmezse, bir şey kullanılamaz. Bu geniş tanım göz önünde bulundurulduğunda, aşağıdakiler kullanılamayabilir: - Kod hataları - Güvenlik olayları - Performans sorunları