前言
本站是用來整合並拓展我們的實作技術
閱讀本文將可以了解到
- 本網站的系統架構
- 所使用的技術以及程式架構
- 架設網站過程碰到的問題以及選用的對策
- 待改善的項目
===內容開始===
網站架構
兩個網站入口, 規劃階段就是3台的Server
來考慮到Cloud server的計價是以server 數 * 小時來計算, 為了節省成本就改用以下這個架構, 只需要兩台EC2 以及一個RDS服務

webserver的部分由於我使用過jboss, 熟悉其佈署及架設介面, 所以選用開源的wildfly
入口的管理使用apache http server
程式架構
從server來看會需要我的frontend, 設計師的Frontend , 以及一台用來上稿編輯資料的CMS等三包程式, 考慮要盡可能地降低維運的難度, 我打算設計讓兩個frontend共用程式, 透過使用不同的設定檔來包版, 可以讓網站呈現出不同的資料- 身為一個java base的後端工程師, 考慮到要可以快速實作以及未來的SEO, 我使用Spring boot + thymeleaf的方案, 分工上就由designer產出UI以及靜態的htm, 由我來進行後端的串接以及佈署.
- DB的部分由於是很簡單的需求, 所以就直接使用AWS的MySQL
問題以及對策紀錄
- Cloud service - AWS
- 比較了Azure以及AWS, Azure是提供200美元的試用但只限於一個月內, 相較於aws 提供新用戶一年內750小時/月的EC2 實例, 以及多項服務都有免費額度, 考慮到盡可能低的維運成本就選用AWS
- CMS Editor - summernote
- 評估了幾個開源的像是summernote, simpleMDE, 由於希望要可以有更多的樣式可以編輯, 所以使用summernote
- Mail server - AWS Simple Email Servirce
- 原本是考慮使用google 的Gmail API, 但實際到google cloud上發現跨平台的操作考慮安全性上會需要有OAuth的驗證, 這個部分是應該的但是會增加我們的開發時間(寫API, 流程控制, 錯誤處理等等…), 所以就直接在AWS上註冊並使用SES
待改善
- CICD - pause
- 本來打算在第一階段就架設Jenkins, 但我發現免費版本的EC2實例T2 micro 的記憶體實在太少, 只要嘗試啟動Jenkins 整個host就會卡死, 更不用說我想要與我的其他service 共用服務, 所以目前是使用手動的方式進行包版, 過版
結語
大多數人可能會選用既有的平台來架設, 比如說WordPress, Wix 等等, 但對我來說會希望有更高的掌控權以及更廣的實作經驗, 以成果來說是很滿意的