1.統一文件標準。
2.統一技術棧,如前端的vue、react,伺服器端的java、python、go。
3.統一程式碼開發框架,如springboot。
4.統一中介軟體,如RPC框架、快取、訊息佇列、數據庫、檔案儲存、搜尋引擎等。
5.統一程式碼倉庫,如Git。
6.統一類庫。
持續整合(CI)是在原始碼變更後自動檢測、拉取、構建和(在大多數情況下)進行單元測試的過程,持續整合的目標是快速確保開發人員新提交的變更是好的,並且適合在程式碼庫中進一步使用,如果自動化測試發現新程式碼和現有程式碼之間存在衝突,CI 可以更加輕鬆地快速修復這些錯誤。常用的CI工具有、Travis 、Jenkins、GitLab等。
持續整合的好處
1.提高開發效率,減少重複的流程性工作。
2.防止分支大幅偏離主幹,降低程式碼合併難度。
3.頻繁部署,儘早暴露問題,持續整合無法消除bug,但卻能大大降低修復的難度和時間。
持續整合的工作方式
持續整合的基本思想是讓一個自動化過程監測一個或多個原始碼倉庫是否有變更,當變更被推播到倉庫時,它會監測到更改、下載副本、構建並執行任何相關的單元測試。
持續交付(CD)是指將通過自動化測試的軟體部署到產品環境,持續交付的本質是把每個構建成功的應用更新交付給使用者使用。在持續交付的世界裏,對完成的定義不是測試完成,而是交付到客戶手中。它強調的是不論怎麼變更,軟體隨時可以交付。
持續交付具備的能力
1.快速發佈,軟體版本可以迅速部署上線,失敗後可快速回退到上一版本。
2.可灰度,在生產部署過程中,可先部署幾臺機器,切一部分流量進行驗證,待觀察無異常後,擴大灰度範圍,直到全量發佈。
3.視覺化,能夠實時檢視發佈版本、發佈進度、發佈過程日誌。
監控是系統的眼睛,監控有發現問題、預警、告警的能力,在安全生產中,是必不可少的。通常監控平臺應具備以下指標採集、監控、告警能力:
1.基礎設施指標,如網路、CPU、磁碟、記憶體。
2.應用基礎指標,如JVM。
3.介面指標,如異常數、介面qps、介面耗時、成功率。
4.前端指標收集,存取異常、存取耗時、請求數據等。
5.中介軟體指標,redis、mq、database 耗時、qps。
6.呼叫鏈路,每一次請求都能追蹤到整個呼叫過程,如介面呼叫、方法呼叫、db操作、快取呼叫、mq呼叫。
7.業務指標打點,收集業務自定義打點數據,用於業務分析和異常告警。
8.日誌搜尋服務。
建立安全生產規範
1.禁止繞過企業安全流程,建立紅線標準。
2.禁止未經安全合規審覈,獲取或對外披露公司敏感用戶數據和業務數據。
3.禁止未經使用者同意獲取或儲存使用者個人數據(如個人資訊、簡訊、通訊錄、郵件等)。
4.禁止在企業應用中留有木馬和後門,提供未經安全審覈的命令、程式碼、指令碼執行入口和線上偵錯入口。
5.禁止引入未經安全審覈的第三方SDK、應用程式。
6.禁止未經安全審覈,對外披露企業原始碼、文件,包括下載到個人電腦、上傳至雲盤等。
Web網站安全
常見的安全漏洞包括 越權漏洞(水平越權、垂直越權)、敏感數據泄露、SQL隱碼攻擊、XSS注入、設定錯誤、目錄遍歷、檔案包含(上傳、下載)、命令注入、SSRF漏洞等。
通常大型網際網路企業,會自研安全漏洞掃描平臺,中小型公司考慮到人力成本、時間成本,可以考慮外採的方式來補齊這部分能力。
中介軟體安全
開發人員在工作中,會引入一些開源的中介軟體、SDK包、應用程式等。擁抱開源本身沒有問題,但開源的程式碼,可能會有意無意的留下一些漏洞,如果被有心人利用,可能會對企業平臺帶來重大的危害(網站異常、數據泄露、數據被刪除等)。因此在引入開源時,最好經過安全部門的審覈,關注網上的評測及反饋,及時修復漏洞,求穩不追新。
參考資料: