給飛行中的飛機換引擎
作者用飛機換引擎作為乙個例子。把給飛行中的飛機(或飛馳的汽車)換引擎說成我需要對乙個正在飛速發展的系統進行大幅度的架構改造。分為這3種:
在做換引擎方案選擇和設計的時候需要考慮到這麼幾個現實的情況:
作者對安全也有深刻的見解,列舉了十大原則:
1、安全問題是木桶效應。整個系統的安全程度取決於木桶最短的那塊板。針對這點,我們需要做的是對於安全的排查,需要全面覆蓋,除非子站在部署上使用者體系上徹底隔離。
2、開發層面:不要信任客戶端的任何東西。
3、開發層面:資料就是資料**就是**。第一客戶端過來的資料需要讓它當成資料來處理,不管是encoding一下也好,sql引數化(mybatis的$和#問題)也好都是這個方面的措施(從前到後一路資料都以資料的身份在程式中流轉),第二從資料庫裡出來的東西也只能是資料不能讓它變為html或js**,也需要encoding一次再在客戶端上呈現。
4、開發層面:使用者看不到不等於黑客看不到。這就要求我們在做設計的時候盡可能仔細審視ajax的介面的許可權、資料開放性和脫敏等問題。一些框架提供的腳手架生成工具以及restful api自動生成工具,即使要用也要做好許可權設定。
5、開發層面:最小化介面許可權設計復用性矛盾。
6、開發層面:一開始就要考慮安全,放出去了就沒後悔藥。
7、產品層面:做好防刷和暴力破解控制。
8、產品層面:注意產品邏輯一體性。
9、運維層面:做好異常資料監控報警。
10、運維層面:對內的資料和許可權問題。
雲時代架構讀後感(十五)
隨著電商業務開展和業績增長,系統結構和邏輯變得越來越複雜。為應對業務規模和複雜性的增長,需要將系統按照細分專業領域拆分 為應對流量和交易的增長,需要將 進行大量子站拆分。這種狀況下,soa在保持清晰的系統結構和良好的邏輯組織方面提供了有力保障,為業務優化調整及新業務的開展帶來巨大收益。通過服務封裝和...
雲時代架構讀後感(十三)
kafka上儲存的binlog未帶schema,而hive表必須有schema,並且其分割槽 欄位等的設計,都要便於下游的高效消費。對camus做的第乙個改造,便是將kafka上的binlog解析成符合目標schema的格式。checkdone的檢測邏輯 checkdone是怎樣檢測的呢?每個kaf...
雲時代架構讀後感(十)
12306也是乙個電商系統,而且看起來商品就是票了。因為如果把一張票看成是乙個商品,那購票就類似於購買商品,然後每張票都有庫存,商品也有庫存的概念。但是如果我們仔細想想,會發現12306要複雜很多,因為我們無法預先確定好所有的票,如果非要確定,那只能通過窮舉法了。作者提出的解決思路。總結 這篇文章,...