1. 程式人生 > >《App後臺開發運維與架構實踐》第3章 App後臺核心技術

《App後臺開發運維與架構實踐》第3章 App後臺核心技術

3.1 使用者驗證方案

3.1.1 使用HTTPS協議

HTTPS協議是“HTTP協議”和“SSL/TLS”的組合。SSL(Secure Sockets Layer),即安全套接層,是為了解決因HTTP協議是明文而導致傳輸內容會被偷窺和篡改的問題。SSL協議標準化後名稱改為TLS(Transport Layer Security)協議,即傳輸層安全協議

3.1.2 基本的使用者登入方案

3.2 App通訊安全

3.2.1 URL簽名

3.2.2 AES對稱加密

  • 對稱加密的原理

採用單鑰密碼系統的加密方法,同一個金鑰可以同時用作資訊的加密和解密,這種加密方法稱為對稱加密,也稱為單金鑰加密。

  • AES演算法加密App後臺返回的token資料
  • AES演算法加密請求過程中所有的敏感資料

3.2.3 更進一步的通訊安全

  • 使用自定義的通訊協議傳輸敏感資訊。
  • 使用RSA(非對稱加密演算法)加強通訊的安全性。
  • 使用梆梆加固、愛加密等第三方工具對App進行加密。
  • 涉及到特別敏感的資訊(比如支付密碼),每次都需要使用者輸入支付密碼確認,支付密碼永遠不在App端儲存。
  • 使用自主開發的輸入控制元件輸入敏感資訊。

3.3 簡訊服務

根據價格、簡訊的到達率和延時情況選擇合適的簡訊平臺。

3.4 處理表情的一些技巧

  • 表情在MySQL的儲存

表情UTF-8編碼有的是3個位元組,有的是4個位元組,所以一般的UTF編碼(長度只有3個位元組)是沒法儲存表情資料的。解決方案:把MySQL升級到5.5以上,然後把字元編碼改為utf8mb4_general_ci;如果在不升級的情況下,將含有表情資料的欄位型別改為blob。

3.5 高效更新資料

  • 內容的推拉

  • 資料增量更新策略

3.6 圖片處理

3.7 視訊處理

3.8 獲取APK和IPA檔案裡的資源

3.9 檔案系統

3.10 ELK日誌分析平臺

  • ElasticSearch:一個基於Lucene的分散式搜尋服務,用來提供儲存搜尋。
  • Logstash:收集處理解析日誌。
  • Kibana:一個開源和免費的工具,其可以彙總、分析和搜尋重要資料日誌並提供友好的Web介面,用來報警統計展示。

 

3.11 Docker構建一致的開發環境

Docker是一個用於統一開發和部署的輕量級容器,讓開發者打包其應用及相關的依賴包到一個可移植的容器,釋出該容器到其他機器,就能很容易地實現應用的部署。

  • Docker原理

傳統的虛擬化技術體系在伺服器作業系統上安裝了多個虛擬機器,每個虛擬機器上通過虛擬化技術實現了一個虛擬作業系統,在這個虛擬作業系統上執行應用。

Docker的虛擬化技術體系在伺服器的作業系統上有一個Docker服務在執行,在這個Docker服務上執行著多個Docker容器,每個Docker容器中執行著應用,容器與容器間的應用是相互隔離、相互獨立的,但通過Docker服務佔用著伺服器的硬體和網路資源。