Baş mimarın gözünde mimari ve mimarın büyümesi

Yukarı tıklayın " CSDN "," En İyi Resmi Hesap "ı seçin

Kritik anda teslim edin!

Özel muhabir: Lu Yilei, teknoloji başkan yardımcısı ve AdMaster'ın baş mimarı, CCF (Chinese Computing Society) büyük veri komitesi üyesi ve Beihang Üniversitesi'nden seçkin profesör.

Görüşülen konuklar: FreeWheel'in kıdemli başkan yardımcısı ve baş mimarı Deng Jiuqing (Jack), Tsinghua Üniversitesi'nden bilgisayar bilimleri alanında lisans ve yüksek lisans derecesine sahiptir. Halen, reklam sunucuları ve raporlama, tahmin, gelir ve gider hesaplamaları gibi veri işleme modülleri dahil olmak üzere FreeWheel'in çekirdek sistemini tasarlamak ve uygulamaktan sorumlu bir mimarlar ekibine liderlik ediyor. Ayrıca, ürün ve hizmetlerin kalitesini sürekli olarak optimize etmek için operasyon departmanıyla yakın bir şekilde çalışırken, şirketin hizmet yeteneklerini desteklemek ve geliştirmek için altyapı ekibini yönetir ve yönlendirir.

FreeWheel'e katılmadan önce Deng Juqing, başlangıç şirketi Roxbeam'de bir mimar olarak çalıştı ve düzinelerce mühendisden oluşan bir ekibin, istemci uygulamaları, sunucu programları ve yönetim araçları dahil olmak üzere P2P tabanlı video akış çözümlerini tasarlayıp uygulamasına liderlik etti. Kariyerinin başlarında, Hong Kong Bilim ve Teknoloji Üniversitesi'nin tedarik zinciri yönetimi ve GPS araç takip sistemleri ve RFID tabanlı depo takip yönetim sistemleri dahil lojistik prototip araştırma projelerine teknik destek sağladı.

FreeWheel'in Kıdemli Başkan Yardımcısı ve Baş Mimarı Deng Jiuqing

FreeWheel'in teknik ekip yapısı ve kültürü

"Programcı": Uzun süredir veri video reklamcılığı alanındasınız, FreeWheel teknik ekibinin organizasyon yapısı nasıl?

Deng Jiuqing: FreeWheel 10 yıl önce kurulduğunda, FreeWheel CTO'su Diane, diğer iki kurucu ortağı, teknik ekibin tamamını Pekin, Çin'de kurmaya ikna etti. O zamanlar, Pekin ekibinin organizasyon yapısı iki modüle bölünmüştü: UI ekibi ve Çekirdek ekip. İlki, temel olarak kullanıcı yönetimi verilerini veritabanına güncellemekten sorumluydu. İkinci Çekirdek ekip üç bölüme ayrıldı: AD Sunucusu, Veri İşleme Raporlama ve Tahmin. .

Ardından, FreeWheel yeni bir Video Entegrasyonu (istemci tarafı entegrasyonu) ekibi kurdu. Bu ekip, istemciden uca entegrasyondan sorumlu, müşterilerin web sitelerindeki oynatıcıları FreeWheel SDK'ya entegre etmelerine yardımcı oluyor ve müşterilerin reklam isteklerini AD Sunucu modülüne gönderiyor Ardından, Raporlama modülüne özel veriler üretin ve ardından verileri tahmin için Tahmin modülüne gönderin ve son olarak müşteriye iş zekası bilgileri sağlayın ve müşteri, kullanıcı arayüzündeki reklamı buna göre yönetip ayarlayabilir. Yani bu süre zarfında yaklaşık 5 takım var. 2011'den 2012'ye kadar FreeWheel, kademeli olarak Amerika Birleşik Devletleri'nde esas olarak API ve entegrasyona odaklanan bir mühendis ekibi kurmaya başladı.

FreeWheel'da teknik personel için iki geliştirme yönü vardır: yönetim ve teknoloji. İlki müdür müdür kıdemli müdür başkan yardımcısı kıdemli başkan yardımcısı CTO; ikincisi kıdemli mühendis baş mühendis baş mühendis mimar baş mimar Bölüm Baş Mimar.

Yukarıda tanıtılan organizasyon yapısı uzun yıllardır faaliyettedir ve 2016'dan beri yeniden düzenlenmiştir. Yüzlerce mühendis ölçeğiyle, ilk 5 takım bölünürse, organizasyonun etkinliği büyük ölçüde azalacak, bu yüzden yavaş yavaş matris yönetimine döndük. Örneğin, dikey yönde, ön uç kullanıcı arayüzü reklam sunucusu rapor çalışma modelinden, her takım belirli iş uygulama alanlarına göre bir Kadro (dikey bir işlevsel takım) oluşturur, ancak raporlama ilişkileri yine de orijinal takıma aittir. , Sanal bir ekip kurdum. Şu anda bu matris yönetimi modunda, FreeWheel'in yaklaşık 20 Kadrosu var.

"Programcı": FreeWheel'in teknik ekibi ulusaşırılık ve zaman farkı özelliklerine sahiptir Takım yönetiminde hangi deneyim ve deneyimleri paylaşabilirsiniz?

Deng Jiuqing: FreeWheel'in teknik ekibi 2007'den 2013'e kadar Pekin'deydi. 2013'ten sonra, ekip büyüdükçe, mühendis ekibi Amerika Birleşik Devletleri'nde kuruldu ve bir Fransız şirketi StickyADS'nin satın alınmasıyla ekip çalışmasında yaşanan zorluklar birdenbire arttı. FreeWheel başardı. Bu zorlukların üstesinden gelmek için birçok çalışma yapıldı.

Birincisi takımı ayarlamak ve alt bölümlere ayırmaktır. Örnek olarak bir proje alın Eski raporlama sistemini Hadoop ile değiştirin Uygulama sürecinde bir Amerikan ekibi ve Çinli bir ekip bir araya getirilerek bir fonksiyon geliştirilir.Aynı zamanda bu seviyede ince farklılaşma yapılır. İki Kadro dikey işlevsel ekip.

İkincisi, birbirine saygı duymaktır. Çok uluslu bir durumda birlikte çalışmadıkları ve saat dilimi farklı olduğu için, StickyAD'ler edinildikten sonra bile birbirlerine saygı duymak ve birbirlerinin çalışmalarının bağımsızlığını tanımak özellikle önemlidir.

Dahası, iletişimi ve işbirliğini güçlendirmeyi amaçlıyorlar. Örneğin, Rotasyon (rotasyon) planını benimseyerek, Çin ve Fransa'dan mühendisler, müşterileri ziyaret etmek, müşterilerin işlerini desteklemek ve müşteri sorunlarıyla ilgilenmek için yaklaşık iki ay içinde ürün yöneticileriyle yakın çalışmak üzere Amerika Birleşik Devletleri'ne gidebilir ve böylece mühendislerin sayısını artırabilir. Çok taraflı ekiplerle iş anlayışı ve iletişim.

FreeWheel'in teknoloji yığını ve teknoloji seçimi

"Programcı": Pek çok dikey sistem yaptınız FreeWheel sisteminin teknik mimarisinin özellikleri nelerdir?

Deng Jiuqing: FreeWheel'in dikey sistemi genel reklamcılık sisteminden farklıdır. FreeWheel trafiğe sahip değildir ancak bir teknoloji sağlayıcı olarak hareket eder. Reklam satışlarının çoğu Garantili Satıştır.Müşteri sözleşmeyi imzaladıktan sonra, FreeWheel sözleşmeyi yürütür. Örneğin, müşteriler reklamverenlerin satın alma ihtiyaçlarını, hedef trafiği vb. Öne sürerler. FreeWheel, reklamverenlerin satın alma ihtiyaçlarını karşılamak ve geliri artırmak için trafiği tahsis etmelerine yardımcı olur. Bu, sıradan öneri sistemleriyle çok fazla ilgili değildir. Doğrusal programlamaya benzer olabilir. optimizasyon.

İkincisi, FreeWheelin işi çoğunlukla marka reklamcılığına dayalıdır, bu nedenle TO'ya (Tıklama Oranı) fazla önem vermez, ancak bazen marka reklamverenleri yalnızca görüntülemenin özellikle iyi bir gösterge olmadığını düşünür. İzleyicilerin farklı özelliklerinden dolayı farklı hedef grupların görüntülenme değerine daha fazla dikkat edecek.

Ek olarak, FreeWheel sistemi, xTR'yi izlemek için bazı özel istatistiksel bilgilere (TO'ya benzer) sahip olacak, her gösterime karşılık gelen, faturalandırma için bir değerlendirme sayısına sahip olacak ve buna dayalı olarak reklamveren faturalandırma etkinliklerinin oranını optimize edecek. - TO ile optimize edilmiş tıklamalara benzer. Şu anda en yaygın kullanılan algoritma doğrusal regresyondur ve bazı tahminler yapmak için yapay sinir ağları da kullanılmaktadır.Temel bir model kurulur ve çevrimiçi olarak dağıtılır.Bir talep geldiğinde, modele göre değerlendirme sayısına karşılık gelen olayın olasılığını hesaplayacak ve ardından Genel bir sisteme benzer daha yüksek olasılıklı sonuç. Bu temelde, A / B Testi bazen modelin etkisini test etmek için kullanılır.

Bu modelin gerçek zamanlı değil günde bir kez güncellenmesi, ancak tahminlerin gerçek zamanlı olması dikkat çekicidir.Model bir hizmet haline getirilerek online olarak güncellenir, her istek kontrol edilir ve seçilmesi gereken reklam tahmin edilir.

"Programcı": FreeWheel teknoloji yığınının bileşimi nedir?

Deng Jiuqing: Yukarıda belirtilen Raporlama ve veri gereksinimleri temel olarak Hadoop'a dayanmaktadır.Veri toplama temelde her sunucudan Kafka aracılığıyla neredeyse gerçek zamanlı gereksinimlerde merkezi veri işleme sistemine iletilir.

FreeWheel, sorguyu optimize etmek için alınan Günlüğü işleyen ve ardından HDFS'ye kaydeden kendi veri içe aktarma modülü Veri Alım İşlem Hattını kurmuştur.Ayrıca, hata toleransı için Olağanüstü Durum Kurtarma olarak başka bir ardışık düzen vardır ve veri dosyaları Amazon S3'e yerleştirilir. Ve Kafka aracılığıyla gerçek zamanlı performansı gerçekleştirin. Bu temelde, Mini Batch ayrıca Dashboard oluşturmak için gerçek zamanlı verileri işler. Sorgu kolaylığı için, Parquet formatı depolama için kullanılır. Depolama ayrıntı düzeyi, olay düzeyine bağlıdır, bir olay bir kayda karşılık gelir ve toplama yapılmaz. Bu temelde, sonuçları almak için Presto'yu kullanıyoruz ve doğrudan Presto ile sorgulamak için bazı bağlayıcılar yapıyoruz.

Sunucu AD Sunucusu için, C ++ ve daha fazla kitaplık kullanılır.Yeni kod C ++ 11'i kullanır, iletim Protokol Arabelleklerini kullanır ve NoSQL, Aerospike'ın ücretli sürümünü kullanır. Memcached ayrıca bazı meta verileri önbelleğe almak için kullanılır. AD Server, talebi alır ve işledikten sonra sonucu döndürür, işlemi Kafka üzerinden kaydeder ve veri işleme sistemine yükler.

Ardından üçüncü taraf sistemlere (reklam yönetimi sistemleri gibi) API hizmetleri sağlar. Örneğin Operative, Sipariş Yönetimi konusunda uzmanlaşmış bir şirkettir. Aynı zamanda, müşterilerin genellikle kendi CMS sistemleri vardır. API aracılığıyla müşteriler, verileri MySQL veritabanımıza aktarır. API ve UI daha önce Ruby on Rails'di. Şimdi UI ile API'yi ayırıyoruz ve Tek Sayfa Uygulamasına benzer bir mimari kullanıyoruz. Yeni API Golang'ı kullanıyor ve ayrıca API hizmetlerini yönetmek için Docker / Kubernetes'i kullanmaya çalışıyoruz; UI'lerin çoğu eskiden Sunucu Tarafı Oluşturma idi, ancak şimdi ayrılık nedeniyle tarayıcı tarafına taşınıyorlar ve kullanılan kitaplık Facebook'un React.js.

Tahmin ve Makine Öğreniminde kullanılan diller, bazı hizmetleri oluşturmak için kullanılan Python ve Golang'dır.Ayrıca performansa duyarlı alanlarda bazı C ++ da vardır. Ana kitaplık Google'ın TensorFlow'udur.

"Programcı": Teknoloji seçiminiz çok iyi Presto'yu seçmenizin nedeni nedir? Piyasada başka seçenekler de var, peki ya Druid?

Deng Jiuqing: Presto'nun kullanılmasının ana nedeni, veri sisteminin yükseltilmesidir. Eski sistem, veri kayıtlarını çeşitli düğümlere bölen ve bunları C ++ 'da işleyen ve daha sonra ek toplama ve işleme için merkezi bir düğümde birleştiren, kendi kendine oluşturulmuş bir MapReduce'a benzer C ++ kullanır. Bu sistemin temel sorunu, toplamadan sonra verileri değiştirmenin ve korumanın zahmetli olmasıdır. FreeWheel, toplu raporları depolamak için sütunlu Infobright veritabanını kullanır. Infobright, HP Vertica'ya benzer, topluluk sürümünü kullanıyoruz. Bu sistemin ana görevi veri bakımıdır.Verilerde sorun yaşandıktan sonra, güncellemenin verileri yeniden yüklemesi gerekir ki bu nispeten büyük ve zaman alıcıdır.

İkincisi, bazı uygulamalara atıfta bulunduktan sonra, Presto tasarımının nispeten basit olduğu ve FreeWheel'in mimari tasarım gerekliliklerine göreceli olarak uyumlu olan Bağlayıcının kendi başına uygulanabileceği bulunmuştur. Presto kullanmanın bir başka nedeni de sektördeki arkadaşlardan gelen geri bildirimlerin daha iyi olmasıdır.

Druid'in felsefesi ve sistem tasarımı çok iyi Impala ve Kudu gibi diğer sistemler de çok iyi ancak seçim yapmamanın sebebi Facebook'un topluluğun büyüklüğü ve arkasındaki teknik ekip göz önüne alındığında daha güvenli görünmesi.

Ek olarak, hem Teradata hem de Amazon Presto'nun desteğine sahiptir.Örneğin, Amazon'un artık Presto'yu yeniden paketleyen Athena adlı yeni bir servisi var.Bu açıdan Presto daha güvenli bir seçim. Topluluk desteği de önemli bir husustur. Örneğin, kullandığımız Infobright'ın açık kaynak sürümünün kendi tarafımızdan korunması gerekiyor, bu da hatalarla başa çıkmayı zorlaştırıyor.

Veri analistleri için bir kariyer rehberi

"Programcı": FreeWheel'in çok güçlü veri analizi yetenekleri var Veri analistlerinin ne tür becerilere ihtiyacı olduğunu düşünüyorsunuz? En önemli noktalar nelerdir? Sonuçta, teknolojiye, ürünlere ve işe yönelik bir önyargı var.

Deng Jiuqing: Kişisel olarak verilerin veri analizinde ilk şey olduğunu ve ikinci şeyin prosedürler olduğunu düşünüyorum. Bir insan her zaman programlama dilleri veya çeşitli yazılımlar gibi süslü içerikler konuşursa, yolunu bulmadığını düşünürdüm.

Veri analistleri önce veri hacmi ve veri gecikme gereksinimleri gibi veri özellikleri dahil olmak üzere verilere bakmalıdır Sonuçta, gerçek zamanlı gereksinimler farklıdır ve yöntemler farklıdır. İkinci olarak, depolama stratejileri, veri işleme, veri görüntüleme, erişim modu, sorgu modu vb. Vardır. Örneğin, birden fazla müşterimiz var.Başlangıçta veriler otomatik olarak saklanıyor ve müşteri kimliği ön tarafta bulunmuyor.Bu nedenle, bir veri parçasını kontrol etmek istediğinizde, sabit diskteki kontrolü atlamanız gerekebilir ki bu çok verimsizdir. Daha sonra ön tarafa müşteri kimliğini koyup sorguladım, okuduktan sonra Batch Mode oldu, bu da verimi 10 kattan fazla artırdı. Bu nedenle, odak noktamız, verilerin özelliklerini her açıdan anlamak ve ardından bu temelde hangi araçları kullanacağımızı düşünmektir. Bu nedenle, görüşme sırasında, esas olarak veri işleme özelliklerini anlamasına odaklanıyoruz.

"Programcı": Ürün ve hizmetlerin kalitesini optimize etmek için operasyon departmanıyla yakın bir şekilde çalışıyorsunuz Dijital pazarlamanın gelecekteki gelişme yönü hakkında ne düşünüyorsunuz?

Deng Jiuqing: Sanırım iki tane daha bariz yön olacak. Biri veriye dayalı. Gelecekte daha fazla veri üretilecek. Pek çok karar, geçmişte kişisel deneyime dayanmak yerine verilere dayanıyor. İki parça veri vardır: Birincisi Hedefleme, yani reklamları herkesi hedeflemek anlamına gelir. Facebook, Yahoo, Verizon ve Google iyi örneklerdir. Amaçları daha fazla kullanıcıya ulaşmak ve kullanıcılardan daha doğru bilgi almaktır. Pazarlama gelirini artırmak için konumlandırma bilgileri. Yahoo ve Verizon perspektifinden bakıldığında, trafikleri özellikle üst düzey trafik olmamasına ve içerik yüksek kaliteli olmamasına rağmen ("yüksek kaliteli" profesyonelce üretilmiş yüksek kaliteli video içeriğini ifade eder, otoportre veya kullanıcılar tarafından yüklenen içeriği çekmeyi değil), YouTube da Öyleyse, ancak Hedefleme verilerinin değerini anlıyorlar. Diğer parça ise rapordur (veya İçgörü ve Ölçüm), yani bir reklamın etkisinin nasıl değerlendirileceği: kaç kitle, kaç erişim oranı, her bir kişinin onu kaç kez gördüğü ve nasıl göründüğü. En yaygın kullanılan teknoloji, daha fazla günlük özelliğine sahip olan ve planlanmış raporlarla sınırlı kalmadan daha etkileşimli sorgular sağlayan Hadoop'tur.

Veriye dayalı bir çerçevede, daha fazla veri bilimi ihtiyacı üretilecek, bu nedenle FreeWheel değişen uzun vadeli veya kısa vadeli içgörüler sağlayacaktır. FreeWheel, esas olarak kendi işletmelerinden ve müşterilerinden gelen iş geliştirme eğilimlerini özetlemek için her çeyrekte "FreeWheel Video Sektörü Geliştirme Eğilimi Raporu" nu (kısaca Video Para Kazanma Raporu, VMR) yayınlamaktadır. Dahili uygulamamız, orijinal verileri Hadoop'a koymak ve Presto ile sorgulamaktır. Bu verilerden, reklam tüketimindeki artış, reklam tüketim oranı ve farklı görüntüleme cihazlarının değişiklikleri gibi pek çok ilginç içerik elde edilebilir.

İkinci eğilim, yapay zekanın eklenmesi de dahil olmak üzere daha programatik etkileşimler ve işlemler. Programlar, insanlar yerine doğrudan API'ler aracılığıyla etkileşime giriyor. DSP entegrasyonu, SSP entegrasyonu, Gerçek Zamanlı Teklif Verme, Ad Exchange pazarı gibi, bunlar yapay zeka tarafından tamamlanacak, kullanıcıların yalnızca nispeten yüksek seviyeli hedef ve planlardan bahsetmesi gerekiyor, program otomatik olarak tümleştirebilir, optimize edebilir ve çalıştırabilir Tabak.

"Programcı": Çünkü reklamın etkisinin nasıl değerlendirileceğinden bahsetti. Görünen o ki, Admaster'ımız da bunu yapıyor, bu yüzden ben de sormak istiyorum, şu anda pazarlama endüstrisinde gerçekten çok fazla yanlış trafik var, bunu belirlemek ve taramak için hangi mekanizmayı ve yöntemi kullanıyorsunuz?

Deng Jiuqing: Bu sorunu anlıyorum. Aslında, işimiz sıradan pazar odaklı şirketlerden biraz farklı. Biz daha çok bir reklam teknolojisi sağlayıcısıyız. Müşterilerimizin çoğu büyük içerik sağlayıcılarıdır, bu nedenle bu tür sahte trafik önleme çalışmaları Çok fazla değil. Ancak yine de bazı denetimler yapacağız. Daha önce de belirtildiği gibi, orijinal Günlüğü kullanıyoruz. Artık ana yöntem, belirli bir IP'den gelen tüm trafiği izlemek, her kullanıcının bir kimliği vardır ve ayrıca her kullanıcının davranışını izlemektir. Örneğin, bu kullanıcı tekrarlayan bir istek gönderiyor veya bu IP'yi içeren bu kullanıcının her gün çok fazla sayıda isteği var ve bu IP bilinen bir sunucu entegrasyonu değil veya belirli bir kullanıcı çok yüksek hızda bir istek gönderiyor Hızla, bu durumlara benzer bir çok gönderi var, istatistiklere gidip sorun olup olmadığına dikkat edeceğiz. Aslında, çoğu zaman izlemek ve izlenecek bazı kurallar eklemek için bir eşik belirlemeye güveniriz. Daha önce, şüpheli IP'lerin bir listesini veren White Ops adında bir gözetim şirketi vardı. Kontrol ettikten sonra, listesinde temelde IP adresimiz yok. FreeWheel tarafından tespit edilen yanlış trafik nispeten küçüktür çünkü çok fazla ekonomik itici gücü yoktur. Oluşturduğumuz yasadışı trafik, bazı çok karmaşık araçlardan ziyade, entegrasyon hataları veya nispeten düşük seviyeli bazı robotlardan kaynaklanmaktadır.

"Programcı": Yurtiçi ve yurtdışında dijital reklamcılığın benzerlikleri ve farklılıkları nelerdir?

Deng Jiuqing: Sanırım sektörün geçmişi yine de farklı olabilir Görünüşe göre yurtdışında olduğu gibi reklam vermelerine yardımcı olacak çok fazla büyük ölçekli ticari üçüncü taraf sistemi yok. Portal web siteleri gibi Çin'deki nispeten büyük içerik sağlayıcılarından bazıları kendi reklam sistemlerini kullanıyor ve iyi bir iş çıkarıyor. Youku ve iQiyi gibi büyük video sitelerinin de kendi reklam sistemleri vardır.

Öte yandan, Amerikan TV istasyonları nispeten iyi içerik hizmetlerine sahiptir ve telif hakkı koruması ve telif hakkı yönetimi nispeten eksiksizdir.Amerika Birleşik Devletleri'nde bunu iyi yapmak için bir temelleri de vardır. Bu nedenle, yabancı içerik sağlayıcıların, kendi başlarına bir sistem kurmak zorunda kalmadan üçüncü taraf teknoloji sağlayıcılarını kullanmaları ekonomik olarak makuldür. Çünkü avantajları, onlar için bir maliyet sorunu olan teknolojide değil, içeriğin üretimi ve satışında yatıyor. Bu konudaki fark nispeten büyüktür.

Mimarın baş mimarın gözünde mimarisi ve büyümesi

"Programcı": FreeWheel'in baş mimarı olarak, mimariyi nasıl anlıyorsunuz?

Deng Jiuqing: Bu noktada Microsoft Office'in direktörü Terry Crowley, "Bir Programcının Eğitimi" adlı bir makale yayınladı. Makale bunu çok iyi özetliyor ve bir göz atmanızı öneririm. Benim anlayışım temelde makalesi ile tutarlı. Buna ek olarak, Googleın Jeff Deani de birçok benzersiz bilgiye sahiptir.

Genel olarak, mimari tasarımın pratik ve uygulanabilir olmasını sağlamak için mimari ideal ile gerçeklik arasında bir uzlaşma olmalıdır ve çok "yazlık" olmamalıdır. Spesifik özet aşağıdaki gibidir:

1. Sisteme uçtan uca bakın

Çünkü ders kitabı öğretimi veya makale girişinde ne olursa olsun, açıklama ve analiz genellikle bir sistemin sadece küçük bir bölümünde yoğunlaşır ve basitleştirilip varsayılır. Ancak gerçekte, sistem uçtan uca ele alınmalıdır, bu nedenle sorunları ele almak için bu modeli kullanırsanız, daha uygun bir sonuç alırsınız. Aksi takdirde, yalnızca parçayı görebilir ve genel kontrolü kaybedebilirsiniz. Google'dan Jeff Dean, tüm sistemin nasıl birbirine bağlı olduğunu anlama ihtiyacını vurgulayarak bu konuyu da ayrıntılandırdı.

2. Karmaşıklığın anlaşılması ve kontrolü

Çünkü bir sistem olduğu sürece, sonunda oldukça karmaşık hale gelecektir ve onu gitgide daha karmaşık hale getiren çeşitli nedenler vardır. Bununla ilgili, karmaşıklığı olabildiğince tek bir yerde tutma ve ardından bazı hiyerarşik ve modüler yöntemlerle izole etme gibi deneyimlerim var. Bence mimari için en önemli görevlerden biri karmaşıklığın kontrolüdür, çünkü eğer tüm sistemler sonunda çökerse, temelde kontrol dışı karmaşıklıktan kaynaklanır.

3. Dağıtılmışa odaklanın

Şu anda, tüm sistemler temelde dağıtılmıştır, bu nedenle sistem tasarlanırken, temelde ilk önce dağıtılır.Bu sistemin dağıtıldığı varsayılmalıdır. Dağınık ne anlama geliyor? Örneğin, bir istek başarısız olabilir Başarısızlıkla başa çıkmak zorundasınız Beklediğiniz süre içinde bir istek geri gönderilmeyebilir ve kaynak rekabeti içerebilen bazı zaman aşımı tasarımları olacaktır. Sonuçta, tek bir makinede ve tek bir programda meydana gelmeyen her türlü hata bu üründe görüneceğinden, tasarım yapılırken bu faktörler dikkate alınmalıdır.

4. Performans

Donald Knuth bir keresinde çok iyi bilinen bir söz söylemesine rağmen, "Tüm olgunlaşmamış performans optimizasyonu tüm kötülüklerin köküdür", yani erken optimizasyon tüm sistem için iyi değildir. Ancak, çok net olmayabileceğini düşündüğüm başka bir nokta daha var. Aslında, tüm sistem tasarımlarında bazı performans hususları olmalıdır. Optimizasyonun erken yapılmaması gerektiği söylense de birkaç işaretleme yapılmalıdır. Bununla ilgili olarak, Jeff Dean'in bir PPT'de listelediği şey şudur: Sabit disk, SSD, bellek veya CPU Önbelleği olsun, çeşitli donanım ve yazılımların çeşitli gecikmeleri ve çeşitli çıktıları hakkında bazı nicel anlayışa sahip olmalısınız. , Bu performansla ilgili tahmininizin çok kötü olmayacağından emin olmak için bir büyüklük anlayışı olmalıdır. Çünkü mimari ters gitmeye başlarsa, performans tasarımında bir darboğaz oluşur ve sonunda tanıtılması son derece zor olacaktır.

5. Teknoloji dışındaki faktörler

Bana göre mimari, aşağıdakiler dahil çeşitli faktörlerin kapsamlı bir değerlendirmesidir:

  • Teknoloji, yani şu anda hangi teknolojilerin mevcut olduğu;

  • Personel tahsisi, şu anda mevcut olan teknik personeliniz. Çünkü farklı mühendisler farklı teknolojiler kullanabilir. Örneğin, Erlang VM'deki Elixir gibi bazı popüler diller ve Spark ve Scala gibi uygulanabilir kişiler ve Python, PHP veya Golang, C ++ vb. Gibi diller aynı değildir. aynısı.

  • Ürünler, farklı ürünler insanlar ve teknoloji için farklı gereksinimlere sahip olabilir;

  • Zaman çizelgesi, ürününüzü ne zaman piyasaya sürmeyi planlıyorsunuz?

Mimarinin bu bakış açılarından değerlendirilmesi ve bir uzlaşma, yani uygulanabilir bir konum bulması gerekiyor. Bazen bu sınırlı koşullar altında, her açıdan tatmin edici bir denge bulmak zor olabilir. Mimarların bu faktörlerden seçim yapması gerektiğini düşünüyorum.Örneğin bir ürün iyi değilse bazı fonksiyonlar kesilecek, bu insanlar ve bu teknolojiler uygun değilse teknolojiyi veya insanları değiştirmeleri gerekebilir; zaman çizelgesi karşılanamazsa gecikecektir. -Bu faktörleri ayarlayarak denge arayan dinamik bir süreçtir.

"Programcı": Bir programcıdan mimara yavaş yavaş büyüdüğüm için, bu iki rol arasındaki en büyük fark sizce nedir?

Deng Jiuqing: Programcı yerel bir sorunla daha çok ilgilenirken, mimar genel düşünceye daha fazla odaklanabilir. Programcıların gözünde, sivri uçlu bir dünyaya daha meyillidirler. Pek çok varsayım olabilir, ancak mimarların çoğu zaman bu kadar çok varsayımı olamaz. Problemi, sahip olduğu insan kaynakları, teknik sınırlamalar ve zaman çizelgeleri dahil olmak üzere fiili duruma göre ele alması gerekir. -Bu faktörlerin kısıtlamaları altında seçimler sınırlı olacak ve her şey artık ideal olmayacak.

Öte yandan, mimarın bilgi derinliği ve genişliği programcınınkinden daha yüksek olabilir. Çünkü mimarın belirli kararları bazen başkalarının nihai sonucunu bile etkiler. Programcı çok fazla kod yazıyorsa ama bu kod bir ürün yapamıyorsa, bu hiç şüphesiz zaman kaybı ve bu konuda mimarın daha fazla sorumluluk alması gerektiğini düşünüyorum.

Son olarak, mimarların teknolojiden çıkması gerekiyor - bu sizinle paylaşmak istediğim bir öneri, yani sadece teknolojiye bakmakla kalmayıp, teknoloji ve teknoloji dışındaki faktörleri de kapsamlı bir şekilde ele alıp matematiksel bir optimizasyon olarak hayal edin. Sorun. Başka bir deyişle, size teknoloji ve personel gibi bazı materyaller vermektir.Ürünler ve ekipler dahil sonuçlar elde etmeniz gerekir.Şu anda bütçe ve zaman kısıtlamaları dahil birçok durum istenmeyen ve sınırlıdır, bu yüzden düşünmek zorundasınız. Daha iyi veya en azından uygulanabilir bir çözüm elde etmek için çeşitli girdilerin, kısıtlamaların ve hatta çıktıların ayarlanması dahil olmak üzere bu sorunla esnek bir şekilde nasıl başa çıkılacağı. Mimarlar dünyası sadece teknoloji değil, genellikle personel, iletişim ve ürünler gibi çeşitli faktörleri içerir. Bu faktörleri hesaba katmak, eksiksiz bir mimari tasarımdır.

-------- Sıcak haber incelemesi --------

Çoğu otomobil sahibinin yaptığı hatalar nelerdir ve bir arabayı tutmanın üretken olmayan işlemleri nelerdir?
önceki
Çok pratik Linux komut satırı becerileri
Sonraki
Pekin Dostluk Hastanesi Tongzhou Bölgesi bu Cumartesi bir deneme başlattı ve bu tıbbi kılavuzu topladı
Aomori Yamada 3-1 büyük Kashiwa'nın içinden geçer ve Japon Liseler Şampiyonası'nı kazandı
New York Times ve Everlane, iklim değişikliğine dikkat çekmek için birkaç kıyafet üzerinde işbirliği yaptı.
#Meme: Assange tutuklandığı için ortaya çıktı, ancak netizenler onu bir meme olarak kullanmak istedi
Pekin "En Güzel On Ağaç Kralı" açıklandı! Evinin önünde ağaç var mı bak
2019 Kuzey Amerika Otomobil Fuarı: Cadillac XT6 Dünya Prömiyeri, American Luxury Mobile Space
Hafif mikro hizmet mimarisi ve optimum dağıtım
Guangqu Road METROBÜS 2020 yılında devreye alınacak ve 26 kilometrelik hattın tamamına 5 halk otobüsü park binası kurulacak.
58 Aynı şehirdeki iOS istemcisinin IM sisteminin gelişimi
"Quanyou" kuzgunu medya web sitesine uçtu, P&G 1 milyar medya bütçesinden tasarruf ettiğini söyledi | Party B Daily
Geliştiricilerin hangi geliştirme dillerinde uzmanlaşması gerekiyor?
Go neden en sevdiğim dil?
To Top