Yazar Cao Yameng
Önsöz
Mimar sıkıcı bir iş
Yaşlı keşiş otuz yıl önce Zen'e gitmediğinde dağları dağlar, suyu su olarak gördü.
Daha sonra bilgiyi görünce içeri girip çıktım.Dağı görmek dağ değildir ve su görmek su değildir.
Şimdi bir dinlenme yerim var, dağların hemen önünde dağları görmek, suyun sadece su olduğunu görmek.
Zen Zen'in üçlü alanı, BT teknoloji çemberinde de geçerlidir. Yeni başlayanlar, her ürünün çok zarif olduğundan, en güçlü IDE'nin peşinden koştuğundan, eski sürücüler ülkeyi yönlendirmek ve en iyi dille dalga geçmek için kendi kendini karşılaştırmayı sever; her şey düzleştiğinde BT bir düşünme uzantısı ve dil çevirisi işidir; bunların arasında teknik mimar, basit ve hatta sıkıcı bir iştir.
Mimarın çalışmasının beş temel ilkesini özetledim. Bu beş deneyim basit, anlaşılır ve derin ve on iki yıllık BT çalışmalarımın bir özeti.
Resim açıklaması: Mimari teknolojisi, bir çocuğu kandıran bir robot kadar basit
1. Talep optimizasyonu en önemli şeydir
Daha az kontrol edin, daha az yazın, daha az güvenin, Daha az daha çoktur
Bir BT sistemi çok rollü, çok modüllü, hiyerarşik ve hiyerarşiktir.Örneğin, OSI modelinin üst uygulaması basitçe daha düşük desteğe dayanır.SOA tasarımında, aynı seviyedeki roller yalnızca diğer tarafın arayüzüne bakar.
Her rol, hızlı iş gerçekleştirmeyi kolaylaştırmak için açıkça bölünmüştür, ancak aynı zamanda mimarinin optimizasyonu için büyük bir boşluk yaratır. En alttaki kör destek, büyük bir kaynak israfıdır ve yatay zamanlama ve işbirliğinde esneklik yoktur. Ön uçtaki küçük bir mantık gereksinimi, arka uçta büyük ölçekli bir bağlantıya yol açar ve farklı hizmetlerin birbirlerinin bellek verilerini anlama yetkisi yoktur.Her roldeki mühendisler yalnızca iş kapsamlarına bakar.Bu normal ve çaresiz bir durumdur.
Mimari tasarımda yapmak istediğimiz en önemli şey, gereksinimleri azaltmak, üst seviye uygulamaların gereksinimlerini optimize etmek ve silmek, böylece aynı seviyedeki iş hataya dayanıklı olabilir. Üst düzey talep optimizasyonu, yani ön uçta daha az girdi ve arka uçta daha az sorgu ve daha fazla hata toleransı bulunurken, aynı düzeyde hata toleransı uygulamalar arasındaki talep optimizasyonu olarak kabul edilebilir.Örneğin, iki hizmet idempotent olabilir ve yeniden deneme, ayırma için iyidir ve A sistemi B sistemini bekleyecektir Çıkmaza kadar beklemek mimari bir trajedidir.
Bir e-ticaret ERP sistemi kullanıcısı sorgu düğmesine bir kez tıklar ve arka uç sistemi bir sorgu için veritabanını kilitler; gerçek işlemde sistem ne kadar yavaşsa, kullanıcı sorgu düğmesini tekrar tekrar tıklar ve daha fazla paralel sorgu, arka uç hızı o kadar yavaş olur. Bu ortamın mimarisini optimize etmek için, öncelikle gerçek kişilerin gerçek zamanlı verilere ihtiyaç duymadığını anlamalıyız.ERP istemcisi, sorgu düğmesini her 15 saniyede bir tıklanacak şekilde sınırlar.Web erişim katmanı, her oturumu dakika başına yalnızca bir sorgu ile sınırlar. Veritabanı bağlantı kitaplığında bir kontrol stratejisi katmanı oluşturun.
Multimedya servis mühendisleri için en iyi Sevgililer Günü hediyesi mükemmel bir oynatıcıdır; self servis hata toleransı için CDN'yi seçebilir, sonraki dakika talep üzerine içeriği aktif olarak önbelleğe alabilir, özel şifre çözme kodlamasını tamamlayabilir ve reklam sisteminden bağımsız olarak ayrıştırılıp yüklenebilir , Hattı değiştirip kütüğü takılı kaldığında saklayabilirsiniz ve hem reklam günlüğü hem de takılan günlüğü arka planda düşük hızda ve zamanında yüklenir.
Resimlerle açıklama: Temel talepleri kavrayın ve istememeniz gereken hiçbir şeyi istemeyin
2. Küme tasarımı için genel kurallar
Ön uç çoğaltma ve arka uç sökme, eşzamansız, üç bileşenli değiş tokuşa gerçek zamanlı değişiklik
Ön uç çoğaltma ve arka uç yıkımı, eşzamansız hale gerçek zamanlı değişim, birbirinin yerine geçebilen IO hesaplama güç alanı - mimari kümeleme gerektirir ve küme tasarımı ayarı üç püf noktasıdır:
Ön uç, ardışık düzen mantıktır ve arka uç, durumdur, bu nedenle ön uç, arka ucu kopyalar. Ön uç sunucu ağır baskı altında olduğunda, daha fazla yatay çoğaltma ve genişletme yapın Web sitesi uygulamalarında, durumsuz oturum tutma esnek ölçeklendirme ve diğer teknoloji uygulamaları yeterlidir. Arka ucu kümelemek, daha fazla iş bölmesi yapmaktır. Yaygın olanı, veritabanı bölme, tablo bölme ve anahtar değeri bölmedir. Hizmet bölmeleri ne kadar dağınıksa, mikro işlemler o kadar iyidir, ancak genel işlem yükü daha büyüktür ve kontrol edilmesi daha zordur.
Asenkrona gerçek zamanlı değişim, öğrendiğim son BT teknolojisidir. "Gerçek zamanlı işlemlerin" çoğu iş gereksinimleri değildir, ancak bir uygulama arka uç ve eş durumunu göremez ve sonuçlar varsayılan olarak gerçek zamanlı olarak işlenir. CS modunun gerçek zamanlı çalışması, destek hizmetine muazzam bir baskı getirecek ve Akran işbirliğinin gerçek zamanlı çalışması, veri başvuru sahibini bir gecede bekletebilir. Mimar, beyinsiz büyük bir işlemi çok sayıda küçük işleme ayırır. Bu, eşzamansız bir mimaridir, ancak bir işlemi bölmek, bir veri tablosunu bölmekle aynıdır.Küçük işlemlerin bölünmesi, daha yüksek bir işletme düzeyinde küresel işlem koruması gerektirir.
Küme performans planlamasında, ağ ve sabit disk IO + CPU hesaplama gücü + disk ve bellek alanı birbirinin yerine kullanılabilir ve mimar, eksiklikleri giderme seçimini tamamlamalıdır. Örneğin, veri sıkıştırma teknolojisi, GÇ'yi ve alanı değiştirmek için bilgi işlem kaynaklarını kullanır ve önbellek teknolojisi, bilgi işlem gücündeki baskıyı azaltmak için alan ve GÇ kullanır.Her yeni seçim ayrıntıda binlerce değişiklik getirecektir, ancak her değişiklik tutarlıdır Doğa kanunlarına uymanın kuralları vardır. Klasik bir mikrobilgisayar sistemi, merkezi işlem birimi + ana bellek + IO cihazıdır ve bu kavramlar aslında küme performans planlamasına karşılık gelir.
Resim açıklaması: Yaygın mimari teknikler, hava valsi kadar doğal ve zariftir.
3. Donanımın doğasını anlayın
Rol seçimi, donanımın doğal özelliklerine bağlıdır
Sabit sürücünün performans taşımasına izin vermeyin, belleğin uzun süre kalmasına izin vermeyin, ağ kablosunun kararlılık taşımasına izin vermeyin.
Mimari katman yazılım teknolojisi yeterince olgunlaşmıştır.Sözde teknoloji seçimi sahneye uyum sağlamak için daha iyidir; belirli bir rol seçimi yaparken, en derinlemesine ve en kolay gözden kaçan ilke donanımın doğasına uymaktır.
Ruhani akıl hocam, bir hizmet sabit disklere dayanıyorsa, bu hizmetin performans baskısı için uygun olmadığını söyledi. Sıklıkla / dev / shm'ye okuma ve yazma diyorum; SSD sürücüler birçok detayı hiç yoktan daha iyi yapar ve Fat32'nin ilkbaharda çıkmaza girmesine izin verir; bireysel kuyruklar ve dağıtılmış depolama, sabit sürücülerin performansıyla ilgilenir, ancak hepsi sıralı okuma ve yazma içeriği uygular ve bunlar uygulamaz. Disk alanı israfına dikkat edin.
Belleğin uzun süre dayanmasına izin vermeyin ve ağ kablosunun sabit olmasına izin vermeyin. Kulağa basit geliyor, ancak acemi programcılar her zaman düşük düzeyde hatalar yapacak ve er ya da geç teknik borç ödemek zorunda kalacaklar. Yaygın bir örnek, acemi programların çeşitli istisnaları yakalama alışkanlığına sahip olup olmadığını görmektir. Tartışmalı bir örnek için, bazı bulut hizmeti tasarımcıları kalıcı bir dosya sistemini bir işleme eşleyip bir sürece bağlamayı dener. Bir bellek parçasını bir sabit diske nasıl bağlarım?
Resimli açıklama: Doğa söz konusu olduğunda, aklıma her zaman sorunsuz koşan Xiao Po Niu gelir
4. Verilerin oluşturulması ve kaybolması
Veriler ince havadan oluşturulmayacak, ancak havadan kaybolacak
Veriler basit havadan oluşturulmayacaktır.Bilgisayarlar, giriş cihazlarından veri alır veya diğer veri kaynaklarından veri alır ve orijinal veriler için dönüştürme kuralları insanlar tarafından tanımlanmalıdır. Verileri rahat, hafif, güvenli ve güvenilir bir şekilde elde etmek için veri kaynağını seçmeli, aktarım yolunu sağlamalı ve veri dönüştürme kurallarını tanımlamalıyız.
Bir veri yaşam döngüsünde, verilerin tamamının veya bir kısmının ortadan kaybolmasını önlemek için, hataya dayanıklı doğrulama, ilgili geri yükleme, soğuk ve sıcak yedekleme ve verilerin güvenli bir şekilde silinmesi dikkate alınmalıdır.
Sıradışı işin planlanması ve uygulanması sırasında, hiç kimse bize hangi hizmetlere sahip olacağımızı söylemiyor.Kümedeki rolleri ve bağımlılıkları yalnızca erişim mantığı diyagramını ve veri yaşam döngüsünü birbiri ardına keşfederek keşfedebiliriz.
Mimarın temel becerileri arasında iyi bir erişim mantığı ve veri akış şeması çizmek vardır.Sorunun mevcut durumu açıkça tanımlandığı için sorunun yarısından fazlası çözülmüştür. İyi bir iş erişim mantığı diyagramı yalnızca birkaç daire ve çizgi ile bağlantılı değildir, aynı zamanda bilgi miktarı erişim sürecinin tüm unsurlarını içerecek kadar büyüktür ve kilit noktalar ayrıntılı olarak vurgulanmalıdır.
Resimli açıklama: Huh? Veriler alındı. Evet, götürüldü Ne tesadüf, bir şey yapmak istemiyor muyuz?
5. Tüm bağlantılara körü körüne inanmayın
Felaket kurtarma tasarımında her şeyi yapın ve kadere itaat edin
Tüm BT sisteminde güvenilir bileşenler yoktur.Mimarlar ne büyük şansa körü körüne güvenebilirler ne de sonsuz fazlalıkla kendilerini korkutabilirler, ancak kendi işlerini yapmakla kadere itaat etmek arasında iyi bir denge kurabilirler. Örneğin, TCP güvenilir bir bağlantı kurmaktır ve şimdi performans optimizasyonu yaparken herkes TCP'nin çok hantal olduğunu düşünüyor.
Resimlerle açıklama: Sorun çıkaranlar kadar, hatta daha fazlası kadar rol vardır.
son sözler
Mimari hantal ve mimari basit
Bu makale mimarlık çalışmasının "dao'sundan" bahsediyor ve mimarinin "tekniği" nden bahsetmiyor. Farklı iş sistemlerinin mimarisi tamamen farklıdır ve özetlemek ve öğrenmek için kullanılabilecek yalnızca birkaç basit ilke vardır.
Bir mimar, yapıyı optimize etmenin belirli bir yöntemini gösteriyorsa, ancak seçimin mantığından bahsetmiyorsa, aslında şirketin işi ile kumar oynamaya çalışıyor demektir.
Düşüncemizi destekleyecek bir yapımız varsa, yeni bir iş türünü devralsak bile, Pao Ding inekleri çözebilir ve domuzları öldürebilir ve bunu kolaylıkla yapabiliriz. Bir zamanlar üç tür belirsiz işi devralmıştım.Bu makalenin ilkelerine göre sökmek ve planlamak, özellikle zor olan bir şey yok.
Resimli açıklama: Panik yapmadan uçalım!