Elasticsearch 效能調整與自動維運
在Index Management中有個index templates的頁簽,在這裡可以改變一些index的行為或是屬性, 有些index屬性對於整個ELK的查詢或是機器的影響是很巨大的,當Log量越大的時候就需要改變一些設定, 尤其是放在雲端的ELK,如果使用越大的機器消費金額就會變得很可觀,在不是賺錢的機器上還是能省則省。
- Bruno Jan
- Comments
Read more
Next.js 的Layout最佳配置
新專案即將完成之際,我們開始對各個頁面上的效能與一些過去被我們忽略的問題進行修正, 在這修正的過程中我發現了在每一次頁面切換時都會出現網站的Logo消失又再出現的問題, Logo是一個經常變動的圖片所以在專案中是透過GQL取得Logo的CDN位置後才做渲染的, 再深入排查後才發現原來過去我的觀念不是非常正確所以用這篇來筆記一下正確地處理做法,當作小抄避免未來再犯同樣的錯誤。
- Bruno Jan
- Comments
Read more
如何讓AWS EC2開機後就能上線
在雲端服務一定會遇到的是機器的擴展(scale out)與縮編(scale in)的問題,如果一個AutoScaling Group觸發了機器的成長時肯定是無法靠手動 的方式來安裝機器,所以必須要透過全資動畫的方式進行,這時候我一開始的想法是在AutoScaling發生的時候觸法Jenkins的Job來安裝系統, 但這有個問題是我整個aws的服務都必須依賴在Jenkins上,後來同事指導了一個做法只需要透過AWS的設定就可以自動裝機了!
- Bruno Jan
- Comments
Read more
Terraform 做 AWS IaC
一直在公司使用ansible來做Cloud configuration但是ansible在cloud configuration上說真的略顯不足, 在之前的文章中我們很常使用`aws cli`來做相對應的處理。使用aws cli時要有更好的可讀性與維護性,通常都以JSON的格式輸入 因此在ansible中的playbook上就會有多餘的一些步驟去設定餵給aws cli的JSON。
- Bruno Jan
- Comments
Read more
透過Jenkins啟動Selenium Grid執行自動化測試
QA測試當然不是只測試RD這次上線的範圍而已,而是把過去上線的功能都要在驗過一遍才能算是經過QA測試的版本,但是隨著時間的積累線上的系統越來越多 有時候QA無法透過手動的方式完成所有驗證,這時候都會導入自動畫測試selenium來協助QA做完系統的驗證,在目前我服務的公司把CD與自動化測試的部分做了整合, 當QAT部署完成後就會驅動QA的自動化驗證,但是當自動化驗證的Job越來越多一台機器已經很難在3-5分鐘內完成自動化測試怎麼辦?
- Bruno Jan
- Comments
Read more
AWS ECS Preparing Release 紀錄
我們在aws 做Production deploy的時候,都會有一個pre production的環境,這個環境主要是為了在部署流程結束後可以做概念性驗證的環境 (主要測試:db connection是否正常、網路連線、裝機腳本等等)另一個方面可以預熱application,不過我們開始有越來越多採用docker的 application並且使用ECS的部署模式,但是ECS的Service建立後就無法修改Target Group,因此沒辦法如同EC2的部署模式只在最後切換Target Group
- Bruno Jan
- Comments
Read more
Redis Data Types 介紹
Redis在4.0之前其實只有5個資料型態,不過到了現在新的版本多了一些不同的形態如stream, geo等等,不過本篇只會針對原有的string, sort set, hash set, set, list這五個形態來做說明。
- Bruno Jan
- Comments
Read more
[ProtoBuf] ProtoBuf Serialize 與 DeSerialize!
這一篇應該是我ProtoBuf的系列文章第二篇,上一篇只簡單說了一些安裝方式與一些定義檔 的設定根本就不知道該如何使用這一個好用的序列化工具。依樣會是使用protobuf-net 這一個套件來做一個簡單的紀錄。
- Bruno Jan
- Comments
Read more
[ProtoBuf] 初次見面
目前會採用ProtoBuf序列化是因為先前使用JSON有效能上的問題與在存取Redis上產生較高的延遲,所以改採用ProtoBuf來作為資料序列化與存放到Redis的主要格式。雖然在閱讀上需要自己寫小工具做轉譯,但在一般情況擁有較好的效能展現。
- Bruno Jan
- Comments
Read more
【Redis】Redis Pub/Sub 製作應用程式間推播通知
在很多時候我們的部屬環境是很複雜的,無法使用單一個應用程式來解決我們的問題...(例如:Windows server與Linux Server、多個網站或多個不同類型執行個體、網站搭配console應用程式)此時當應用程式間需要配合時是一個很重要的議題,很多人會把資料存放到資料庫,應用程式在定期去擷取尚未處理的資料,等相關資料處理完畢後再到資料庫注記哪些記錄是已經處理完畢的,在這樣的軟體設計與環境相對簡單許多,但是在系統繁忙的時間中,這可不是一個樂觀的狀態了.. 現在Redis具有這樣的功能,可以協助我們設計應用程式間可以互相配合的一個機制,如此一來我們就不需要在透過定期存取資料庫,相關的訊息或相關的資料可以及時的處理!
- Bruno Jan
- Comments
Read more