再小的應用也有架構,面向架構新手的架構實踐!

2022-03-26 21:05:57 字數 2113 閱讀 7511

文章主人公:小明,就職於某網際網路公司,從事後端開發工作。最近小明收到通知公司需要開發一款《證件照》應用,需要徵集架構方案,主要功能包括:

小明雖然從事後端開發工作,但是一直很關注架構這方面的知識,以往都是開發大佬們架構好的應用現在有機會自己去實踐下,打算把自己學到的知識應用於實際案例中來。

小明的腦海裡是回想了下架構的基本三原則:

小明作為架構新手,雖然幹勁十足,但是也像大部分一樣開發人員一樣架構經驗較少,不知道如何下手去開始架構,萬事開頭難啊!小明請教了下公司的西踢毆(cto),給了一句25字的架構真言:架構設計的主要目的是為了解決軟體系統複雜度帶來的問題

小明也算骨骼驚奇,久經沙場(996沒少鍛鍊人~~),思考了「架構真言」既然是為了解決軟體系統繁雜度的問題,那不得先找出系統的複雜點在**嗎?

小明根據「架構真言」開始思考《證件照》應用的複雜點,首先它是一款工具類應用,主要功能是進行影象處理:

小明發現影象處理和影象儲存可能比較複雜,公司現階段沒有專門做影象處理團隊,也沒有大資料團隊,這兩個問題是要優先解決的問題。

小明現在使用的手機是galaxy s9一張**大概是6m,如果初期應用日活1w,假設有20%的人會處理,那一天的儲存量大約10g,執行乙個月就需要300g的儲存空間,這個配置個幾t的磁碟可以跑個1年左右。不過這只是1w日活還要考慮到十萬、百萬級別的時候怎麼辦。

經過討論小明列出了一些複雜的地方並按優先順序做了排序:

影象儲存

影象處理

訂單處理

物流處理

對於影象儲存複雜性,小明第乙個想到的是乙個分布式檔案儲存方案,這樣資料容量、可用性都可以得到很好的保障。他首先將這個想法和西踢毆交流了下,西踢毆也沒有否認這個方案只是讓小明考慮下成本方面的因素,小明回頭一想確認引入"分布式檔案儲存"首先會帶來以下幾點問題:

小明思考了下簡單優於複雜原則,決定使用最簡單的本地磁碟儲存影象檔案,但是使用本地磁碟的方案一定要考慮擴充套件性,將來隨時都可能擴容、遷移資料,於是小明對影象儲存做了個簡單的抽象層:

小明對於儲存複雜性應用了架構原則中的原則簡單優於複雜演化優於一步到位,同時對於儲存的可變性,通過引入抽像層能夠有效合理的應對未來的變化。

初步定下來影象儲存後,小明開始對影象處理複雜性的問題進行設計,一張證件照的製作流程大致如下:

對於影象處理小明考慮合適優於業界領先原則,考慮人力、物力的成本選擇合適的方案,而不是一開始就說要自研一套影象處理系統,投入大量的時間和人力去做最後得不償失。經過一番操作,小明最後整理出一張基礎架構圖交給了西踢毆,等待西踢毆的轉身~~

根據架構設計的主要目的是為了解決軟體系統複雜度帶來的問題的綜指,小明首先找出系統的複雜點,然後經過優先順序排序,一步步的解決複雜性的問題,最後結合實際情況設計出一套可行的架構方案。架構設計也是有套路可尋的,雖然案例架構比較簡單沒有大規模的分布式、高可用、高併發場景,再小的應用也是有架構,也要經過深思熟慮再去實行不然會是滿地的技術債,後期要花更多的成本去維護重構。

《架構文摘》每天一篇架構領域重磅好文,涉及一線網際網路公司應用架構(高可用、高性 能、高穩定)、大資料、機器學習等各個熱門領域。

論面向服務架構及其應用

摘要 soa定義 面向服務的體系結構 soa 是乙個元件模型,它將應用程式的不同功能單元 稱為服務 通過這些服務之間定義良好的介面和契約聯絡起來。介面是採用中立的方式進行定義的,它應該獨立於實現服務的硬體平台 作業系統和程式語言。這使得構建在各種這樣的系統中的服務可以以一種統一和通用的方式進行互動。...

面向服務的企業應用架構1

anne在部落格中說soa已死,指的是無謂的技術辯論已死,如什麼是最好的esb,ws 和rest什麼為優,jax rs,哪種規範最好。這些長久以來一直是大家研究的焦點,但事實上,這些並不是soa的核心,soa更是一種架構理念,和具體的實現技術無關。soa架構的目的是以系統的集成為主要目的。當大型企業...

面向服務的企業應用架構2

使用soa架構的企業,應該是有一定it系統基礎的企業,最好是已經實施過erp,或者hcm,crm等的企業。企業發展到一定的程度,會需要上線相應的erp來規範化流程,資料。而當企業進一步發展後,單一的erp產品已經無法滿足業務變化的需要,比如乙個業務不僅和生產相關,同時還和人力資源相關,另外還和公司內...