SaaS技術棧有多複雜?

【特別聲明:本文基於Tools and Services I Use to Run My SaaS進行修改。】

軟件SaaS化由於需要考量架構的各個方面,所以需要的技術棧非常全面。

以一個客戶管理SaaS應用爲例,可能涉及的技術棧包括:

開發

開發就是把系統做出來的意思。開發涉及編碼、項目管理、測試等多個環境。其中爲了創作一個產品,不僅僅是自己編寫代碼,還需要引入大量的第三方庫或開發框架,幫助自己快速構建應用。

在軟件開發的領域,有人將它與製造業進行了一個類比,發現有異曲同工之妙。因此,軟件生產,軟件供應鏈等類比詞彙開始流行。

  • 後端:Java, Maven等 。

  • 前端:JS, Vue框架,Bootstrap界面,SCSS,Webpack,Express,Babel,Hugo等 。

  • API:node-canvas,Java web等 。

  • 庫:ffmpeg,popper等 。

  • IM:Crisp 。

  • 開發工具:VSCode,prettier(代碼排版美化)。

  • 項目管理:Trello,Kanban,禪道 。

  • 文檔協作:語雀,Notion,Typora 。

  • 調試:Postman 。

雲設施

可以選用一站式雲設施提供商,如Azure,AWS,阿里雲等,也可以選用各個領域的專業服務商。

  • 雲服務器:Azure,AWS,阿里雲,DigitalOcean等 。

  • 域名系統:Namecheap 。

  • 靜態託管:Netlify 。

  • 郵件推送:Postmark,SendGrid 。

  • 短息推送:OneSignal 。

數據存儲

數據庫存儲包括數據庫、緩存和對象存儲集中方式。數據庫用於存儲結構化的業務數據和系統配置數據,緩存用於提升應用的訪問速度,對象存儲用於存儲非結構化數據(文檔、圖片和視頻音頻等)

  • 數據庫:MySQL,PostgreSQL 。

  • 緩存:Redis 。

  • 文檔數據庫:MongoDB 。

  • 對象存儲:minio 。

  • 日誌數據庫:InfluxDB 。

運行環境

  • 操作系統:CentOS 。

  • HTTP服務器:Nginx 。

  • 負載均衡:HAProxy 。

  • 進程管理:Systemd, PM2 。

  • Web服務器:Tomcat 。

Devops工具

SaaS系統需要應對快速迭代的業務,部署必須引入DevOps工具,以提升部署的效率。

  • 自動配置軟件環境:Ansible 或 Terraform 。

  • 構建工具:Jenkins 。

  • 代碼倉庫:Gitlab 或 Github 。

  • 鏡像製作工具:Packer 。

日誌&監控

傳統個的單機部署應用,監控往往投入較少,大部分時候都是被動的事件響應機制。而SaaS軟件由於其多租戶的特殊性,提前發現問題顯得非常的重要,因此監控業務也是工作的重點之一。

  • 全棧工具:ELK 。

  • 日誌分析:Grafana,Graylog 。

  • 採集轉發:Telegraf 。

  • 錯誤跟蹤:Sentry,Statuscake,Papertrail 。

應用分析

應用分析簡稱APM,是指應用程序性能管理或應用程序性能監視,是幫助優化和監視應用程序性能的必要工具。在IT基礎架構領域,APM已經是非常成熟的商業市場。

  • 用戶訪問分析:百度統計,Google Analytics, Matomo 。

  • 應用程序性能分析:OpenAPM 。

  • 代碼級性能分析:Stackify Retrace, New Relic, AppDynamics, and Dynatrace 。

  • 網絡性能分析:Extrahop 。

支付

全方面支持企業用戶的各種付款方式,包括:PayPal、信用卡、微信支付、支付寶等,也可以使用一種集成化的中間支付平臺解決所有的支付方式,例如:Stripe 。

設計工具

  • 原型設計工具:Sketch,Axure 。

  • 原型設計平臺:墨刀、Figma 。

  • 圖標庫:Boostrap,Font Awesome,Nucleo 。

另外,還需要一些圖片壓縮工具,圖片格式轉換工具。

通過以上技術棧,我們發現大部分都是開源組件,也有少部分免費(或接近免費)的SaaS和PaaS類服務。搭建一個SaaS化應用,需要從如下幾個角度開始工作:

  1. 結構業務,分析技術棧 ;

  2. 迭代式開發,快速實現業務功能 ;

  3. 科學使用各種不同的組件 ;

  4. 組件之間的集成 ;

  5. 引入DevOps實踐 ;

  6. 服務器運維 ;

  7. 安全 。

SaaS應用是一個宏觀架構,對產品經理的業務能力、技術能力和哲學思考能力提出了極高的要求。如果SaaS項目的產品經理不具備宏觀思維,沒有全棧的開發經驗,那麼構造一個SaaS應用幾乎是不可能完成的任務。

本文由Websoft9原創發佈,轉載請註明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章