Skip to content

zh

反思影響力與權力

我正在反思影響力和權力的兩個層面:關係導向(投資於關係)和結果導向(為表現建立聲譽)。

首先,投資於關係讓我重新思考我對權力的看法。有效的經理人將50到60%的時間投入於建立和維護網絡。我可以透過促進溝通並展示我對團隊合作的承諾來鼓勵合作行為。這並不是參與辦公室政治,而是利用影響力提高團隊效能。領導多元團隊需要有效地平衡不同的優先順序。建立支持網絡並激勵人們採取行動需要花時間建立融洽的關係。

例如,塞爾吉奧·德梅洛,一位在聯合國各種人道主義和政治項目中工作的巴西聯合國外交官,重視公民的尊嚴。當地的員工並不習慣接收外國人這樣的尊重。他在這方面的投資大大提高了他的效率。他甚至學習了當地的語言,認識到語言是理解一個民族文化的關鍵,而文化是打動人心的關鍵。這種方法使他得到了人民的同情並投資於關係。

其次,為表現建立聲譽讓我意識到獲得影響力和權力的重要性。團隊領導者應該既關注關係也注重結果,因為兩者對於成功領導一個團隊都至關重要。人們傾向於給予贊揚和追隨那些有著完成任務和取得正面結果堅強紀錄的領導者。這意味著我的名字需要與高質量的工作聯繫在一起。我必須不僅做我說我會做的事情,而且要做得好。這種關注應該集中在影響最大的任務上。當一位領導者提供實際價值時,權力就是合法賺來的。

舉例來說,羅伯特·摩西是一位在紐約大都會地區工作的美國城市規劃師和公職人員,他主要因為幾十年來建立的表現聲譽而獲得權力的開關。他被稱為“做事的人”。他展示了贏得信任並使他能夠取得成果的領導原則。

總的來說,經過自我反思,我發現在關注關係和結果之間有一個甜蜜點,這兩者都是影響力和權力的關鍵方面。

我的個人成功理論

在這篇文章中,我寫關於我的成功理論,以及我如何計劃實現它。我的成功定義包含四個領域:1)個人學習和發展,2)財務自由和自主,3)我獨特技能和才能的最佳利用,以及4)家庭滿足感和社區服務。我相信透過成長心態、投資、增加抗逆商和改善人際關係,可以實現這四個領域。

我不會討論成功的祕訣,因為我認為並不存在這種東西。不同的人有自己的成功定義,這不是你可以簡單地去尋找和找到的東西。沒有萬無一失的技巧可以達到成功;相反,它需要自我反思。正如蘇格拉底所說,"未經省察的人生是不值得活的。"

首先,成功包涵個人的學習和發展。我相信成功的人總是在學習。他們會跌倒,重新站起來,然後再試一次。他們快速失敗,適應,進而改進。這個反覆的過程最終會導向成功。即使我失敗了,我仍然比那些完全不採取行動,並在自己的舒適圈內停滯不前的人過得更好。

對於接受失敗,認識自己的錯誤和弱點,然後採取行動改進,成長心態是至關重要的。當我做出內部改進時,外在環境也會隨之變化,助長我的個人成長,並提升我的信心。如果有人從不承認他們的問題或錯誤,他們將永遠不會改進,並將繼續失敗。即使他們偶然達到了一些目標,他們的成功層次也會受到限制。記得,生活是一個持續學習和改進的旅程。成功可以是無限的,我至今仍在努力進步。

其次,成功意味著財務獨立和自主。雖然金錢並不等同於幸福,但缺少金錢確實可能導至不快樂。僅僅依靠財富和成就來衡量成功是一個陷阱,因為人性使我們永遠無法完全滿足。相反,應該將財務安全和自由這類可持續的成就視為目標。這需要延遲即時的滿足感,投資未來。

此外,成功不應被定義為暫時的快樂。快樂是會波動的,我們的基因設置了一個並不定義成功的基本幸福水平。相反,更大的快樂來自於實現需要犧牲、風險、不確定性和努力的目標。

第三,成功意味著充分利用我獨特的技能和才能組合。任何少於這個水平的表現都感覺像是對生命和資源的浪費。不滿意的意願可以激發動機,並激發行動。需要努力和高抗逆商來克服挑戰,為專業目標而工作。理想情況下,我可以找到一個與工作、情緒滿足和財務報酬相符的平衡點,同時也能利用我的獨特才能。

最後,成功意味著家庭滿足和社區服務。以我自己的方式定義成功,幫助我記住重要的事。成功不是要攀登的梯子,也不是要贏得的比賽;它是我對他人可以產生的積極影響的衡量。為達到這種目標,我需要磨練我的社交技巧,以引導並影響人。

糟糕的人際交往技巧可能導致孤立,並阻礙峰值表現。因此,我持續評估和改進我與他人的關係。社交互動帶來風險,但通過努力,每個人都能找到一個讓自己能夠為社區作出貢獻的角色。

儘管我性格內向、腼腆,但我嘗試與陌生人進行互動。儘管有任何恐懼,我認識到練習對社會技巧的發展的重要性。我發現,幸福更多的是與親人共享經驗,而不是物質擁有。

總的來說,我對成功的看法隨著我年齡的增長而變化。充滿意義的生活來自於專注於學習過程,投資未來,開發我的潛能,關心我的家庭和社區,並且為成功而奮鬥,而不是害怕失敗。

反思我的家庭

在這篇文章中,我想討論我生命中最重要的人,並探討他們的遺產如何影響和指引著我。

從我母親Tammy身上,我學到了清晰思考和有條理表達的重要性。她是一名會計師,教導我童年時期的數學和勤奮工作的價值。她還向我展示了如何保持積極態度,即使面對挑戰。她培養了我愛閱讀和有效自學的習慣。她會與我進行對話,談論我在學校或書本上所學到的知識,挑戰我對情況的深入思考。她的影響塑造了我的人生觀和道德觀。我發現將我的思想用言語表達是我最好的思考方式。

我的父親Tony向我傳達了家庭的價值。作為一名工程師,他從他閱讀的書籍中,激發了我對計算機軟件的興趣。他還強調了健康和生活方式選擇中自律的重要性。然而,他有時作為一個警示的例子。我們有不同的政治觀點,和我並不同意他的一些行為方式。這些差異提醒我要保持開放的心態,接受人們思考和行為方式的變異性。試圖與他爭論經常證明是徒勞的,因為他很難邏輯地表達自己的想法,也不太可能只是通過辯論就改變他的觀點。

我的前女友Jo,教導了我關於愛情和情感責任的寶貴課程。雖然我們的關所結束,導致我經歷了抑鬱,但我了解到了我傷害她的行為的後果。我被迫更加關注我的感受,以及他人的感受。這次經驗鼓勵我成為一個更好的人,培養像耐心、情緒溝通和改正我錯誤的能力這樣的品質。從我們的關所學到的課程引申到了同居和面對生活的挑戰。我們分手後,我經歷了一段特別黑暗的時期,然而,Jordan Peterson 的書 "12 Rules for Life" 幫助我克服了這段抑鬱期。

總的來說,我父母和前女友的遺產在塑造我今天的自我方面起著無可估量的作用。我深深感激他們對我的生活所做的影響。

我的生產力計劃

在過去的兩週裡,我一直在學習經過科學證實的策略,以提升我的生產力和表現。我的目標是實現我的目標,過我一直想要的生活。解開生產力之鑰的第一步是根據我身體的自然節奏,策略性地管理我的能量。這使我每天都能在最高生產力下運作。

我不是一台機器;我身體在一天中會有自然的能量高峰和低谷。我有著一種PM-shifted的天賦型態,也是全球約20%的人口所共享的特徵。我們這一類的人喜歡晚睡晚起,覺得一天中最有活力的時候是在稍晚的時候。

以下是我根據我的身體自然能量水平安排的策略性日程:

  • 早上6點:睡覺
  • 早上7點:起床並吃早餐
  • 早上8點:通勤去工作,同時讀書
  • 早上9點:到達辦公室並開始會議

在恢復期間,我專注於創意工作和協作任務,這些任務受益於降低的抑制:

  • 上午10點:程序設計
  • 上午11點:與團隊成員一對一會議
  • 中午12點:吃午飯
  • 下午1點:設計技術架構解決方案
  • 下午2點:程式碼審查
  • 下午3點:與客戶會議

在我的能量低潮期,我專注於行政任務,並且也會休息、打盹或散步:

  • 下午4點:寫文檔
  • 下午5點:管理會議

在我最高能量水平的時候,我處理我最重要的分析任務:

  • 下午6點:通勤回家,同時讀書
  • 下午7點:在健身房運動並跑步5公里
  • 下午8點:在圖書館讀書
  • 下午9點:吃晚飯
  • 晚上10點:寫博客和寫日記
  • 晚上11點:複習CFA課程

睡眠:

  • 午夜12點:睡覺

休息對於維持我最高的表現和實現我的生活目標非常重要。

其次,將我每天的任務與我的更大的目標相連接至關重要。理解我的"最終為什麼"使我能夠將大的願望分解為更小、可實現的步驟。我做這一切的主要動機是成為一個終身學習者。

季度目標:

  • 目標1:通過特許金融分析師(CFA)一級考試
  • 目標2:通過AWS認證的解決方案架構師專業認證考試
  • 目標3:在新加坡國立大學的數字領導碩士學位課程中註冊

月度衡量指標:

  • 關鍵結果1:通過模擬CFA考試並完成練習
  • 關鍵結果2:在AWS架構中獲得真實世界的經驗
  • 關鍵結果3:在實踐領導原則的同時,領導並交付技術項目

每週行動:

  • 行動1:完成三次CFA課程閱讀
  • 行動2:完成CFA練習
  • 行動3:練習考試題目以提高回答速度

每日最重要任務(MIT):

  • MIT 1:閱讀實體書和電子書
  • MIT 2:參加當面和在線講座
  • MIT 3:在健身房時聽播客

最後,為了將我的每日習慣與我的長期目標相配合,我必須建立可持續的習慣。學習有效習慣背後的科學可以幫助這些生產力策略堅持下去。其中一種有助於實現我最終目慙的行為是多閱讀書籍。

養成習慣:

  • 步驟1:設計線索。當我在早上的火車通勤路上感到無聊時,我將開始閱讀的習慣。
  • 步驟2:將習慣與渴望相連接。我相信持續學習和改進。
  • 步驟3:寫下反應並消除障礙。我將保持我的Kindle充滿電並放在口袋裡,還有我想讀的一些書的清單。
  • 步驟4:創建獎勵。我將在真實世界中應用新的知識,並在我的博客上分享我的學習。

總結來說,當我在早上火車通勤時感到無聊[提示]時,我將拿出我的Kindle並從我的閱讀清單中讀一本書[反應]。我之所以這樣做,是因為我是一個相信持續學習和提高的人[渴望]。我的獎勵將是在真實世界中應用新的知識,並在我的博客上分享我的學習[獎勵]。

給予與接受 - 書籍評論

在這篇博客文章中,我將對亞當·格蘭特(Adam Grant)的書籍《給予與接受》進行評論。我認為學習和成長是人類的基本需求。分享這本書的見解對我來說是一種主動學習的方式,希望對你也有所幫助。

首先,誰是亞當·格蘭特?他是沃頓商學院的一位年輕教授,以其深刻的研究和書籍而聞名。在他三十五歲之前,他已經寫了五本暢銷書。

在《給予與接受》一書中,格蘭特挑戰了一些常見的假設,如"贏者全拿"和"好人最後才完成"。這些表述反映了人們害怕過於慷慨會讓別人占你便宜的觀念。這種恐懼常被電視劇和電影加以強化,這些媒體建議成功的人必須無情。例如,電影《華爾街之狼》將金融業描繪為貪婪是善舉,成功需要成為一個怪獸般的領導者。

然而,書中指出,這種觀點並不真實。格蘭特列出了成功的四個支柱:強烈的動力、能力、機會(或者說運氣),以及你與他人的互動方式。他將人們分為三種類型:接受者、匹配者和給予者。

接受者只關注他們能得到什麼。匹配者只在他們期望得到回報時才給予幫助,這種“交換條件”的心態在政治中很常見。而給予者則將他人的利益置於自己之上,不期待回報地幫助別人。

在現實生活中,人們常常展現出這些風格的混合,適應不同的情況。那麼哪種風格最成功,特別是對於銷售員來說?令人驚訝的是,書中揭示了前10%的銷售員都是給予者。為什麼呢?一個原因可能是互惠原則:人們更願意幫助那些幫助過他們的人。

數據也顯示,給予者要么是頂尖的表現者,要么是底層的表現者。區別在於是否設定了邊界。沒有設定邊界的給予者會發現自己被耗盡,沒有時間進行個人成長。設定邊界的人會更有效,並發現幫助他人往往有助於他們自己的發展。

我並不優先於財富、權力、快樂、競爭,而是偏好並優先於幫助、責任、社會公正和同情等價值觀。這可能似乎與直覺相反,但採取更利他的態度可以在關係中實現互利。研究表明,那些經常將時間和知識給予同事的人往往能得到更高的加薪和晉升。

總的來說,成功的關鍵原則是:1)出現,2)努力工作,3)善良,4)成為一個給予者。努力讓人們笑,娛樂他們,並致力於創造一個更好的世界對於在緊密的工作環境中建立良好的聲譽至關重要。這不是零和遊戲;目標是互相幫助。如果在你讀完這篇博客文章後,我還有任何可以進一步幫助你的方式,請隨時與我聯繫。

品牌策略建議

在這個提議中,我對Thought Machine提供戰略建議,這是一家金融科技產品公司。Thought Machine開發了一款正在改變銀行業並使銀行能夠向客戶提供創新服務的核心銀行產品。

Thought Machine的增長令人印象深刻,最近在由業界領先的風險投資公司和全球銀行(包括Nyca Partners、Molten Ventures、摩根大通和渣打銀行)主導的C輪融資中籌得2億美元。這使我們的總融資額達到3.5億美元,估值超過10億英鎊。我們為一個多元化的銀行客戶群提供服務,範圍從Tier 1到挑戰者銀行,例如Atom Bank、Curve、Lloyds Banking Group、Monese、SEB、渣打銀行、TransferGo、Arvest、ING和摩根大通。

我們的產品,Vault,作為一個在雲原生平台(包括亞馬遜網路服務,谷歌雲平台和微軟Azure)上運行的分類帳,而無需依賴舊技術。Vault的靈活性由智能合約驅動,可以配置任何類型的零售銀行產品,包括當前的帳戶,儲蓄,貸款,信用卡和抵押貸款。

我們使用Clock Mode框架來評估品牌與消費者在三個階段之間的每一個交互:購買前,購買和購買後。購買前的階段包括像社交媒體,金融科技事件,合作夥伴和回應提案(Request for Proposals)的元素。購買階段涉及使能,API,自助服務和產品服務。購買後階段包括支援服務,認證程序,培訓內容和新聞通訊。

我們進行了品牌審計,以確定人們對我們品牌的直接,強烈的聯想。積極的聯想包括"現代","聰明","技術","可信","精簡","創新","可擴展","可配置的","高效能","安全","可靠"和"品質"。消極的聯想可能包括複雜性,不是"一站式銀行",整合期間的摩擦和有限的本地市場存在。

基於品牌審計,我們創建了一個期望的品牌形象。 Thought Machine品牌的核心精神是有遠見,簡單且強烈,是現代銀行的基礎。我們的擴展品牌形象涵蓋了一系列特點,從技術導向,有點書呆子的人到象徵雲技術和產品優先的策略。

以下是我對Thought Machine的戰略建議:

  1. 差異化:專注於從傳統供應商中脫穎而出,建立一個優質的雲平台。強調智能合約的獨特功能,提供無與倫比的可配置性。加強我們身份的這一方面可以提高認知度並加快增長。

  2. 相關性:提供銀行不會或不能內部建立的雲平台。許多銀行被複雜,孤立的舊系統所困擾。我們應努力提供產品,使其在銀行業中的地位不可或缺。

  3. 可持續性:通過提供更換過時的主機服務器為更現代的,基於雲的解決方案,以保持競爭優勢。與銀行和整合夥伴建立長期關係,以確保在規模和速度上的成功。

如果您對此提議有任何問題,請隨時與我聯繫:Victor Leung on LinkedIn

在AWS工作區設置Ubuntu桌面

自2009年大學時期以來,我就一直是Ubuntu桌面版的粉絲。用它來替代Windows桌面非常令人興奮,儘管這條旅程充滿了挑戰,如與網攝、聲音和鍵盤相關的硬件兼容性問題。

我愛Ubuntu的原因是其社區支持。我總是可以在Google上找到對我問題的答案。然而,當我剛開始時,我會盲目地將命令複製並粘貼到終端,有時在不知道如何恢復變更的情況下破壞環境。結果,我不得不多次重新安裝Ubuntu桌面。

現在,我已經將Ubuntu桌面遷移到一個AWS EC2實例上。它與Google Chrome的遠程桌面設置配合得很好,而且我喜歡根據自己的需求選擇CPU、內存和存儲硬件的靈活性。雖然聲音可以正常工作,但我對瀏覽器滾動體驗感到失望,特別是在串流YouTube視頻時,這種體驗感覺上有延遲。

今天早上,我看到一則宣布Ubuntu桌面可在AWS Workspace上使用的消息,我立即決定試試看。我以前用過AWS Workspace——一種完全管理的虛擬桌面基礎設施(VDI),並發現使用遠端桌面協議(RDP)的Windows實例的用戶體驗更好。由於RDP是由微軟開發的專有協議,我寧願不使用它。與此同時,Linux桌面使用PCoIP,有時可能會感到延遲和反應不靈敏。此外,帶有MATE桌面的Amazon Linux2映像並不符合我的喜好。

今天,我終於有了我喜歡的選擇:在AWS Workspace上使用Ubuntu桌面,並使用WorkSpaces串流協議(WSP)進行設置。我就在這個設置下寫這篇部落格文章。

分步指南

步驟0:在開始之前,您需要設置一個目錄。您可能不確定選擇AWS管理的Microsoft AD還是簡易AD。在我情況下,我只需要一種價格低廉的Active Directory兼容服務,所以我選擇了簡易AD,如下圖所示:

步驟1:一旦設置好目錄,你就可以選擇它來創建一個AWS管理的工作區。這個過程需要一些時間,你也需要進行註冊。

步驟2 & 3:接下來,創建一個用戶並識別他們。

步驟4:選擇Ubuntu Desktop捆綁包。UI缺少搜索和過濾功能,所以你可能需要導航到最後一頁來找到Ubuntu選項。你可以從各種硬件配置中選擇。我選擇了性能選項,因為它目前有免費層次的推廣。

步驟5:選擇“一直開著”或“自動停止”。我選擇有一小時超時的"自動停止",以節省成本。

步驟6:現在跳過可選的加密。

最後,等待狀態從“等待”變為“就緒”。然後,您可以使用註冊碼開始連接。您可以下載AWS客戶端並在您的筆記本電腦上安裝它,但我特別喜歡AWS Workspace上的Ubuntu桌面的一個功能,那就是可以通過Web來訪問它。要啟用此功能,請遵循以下所述的一個步驟:

前往WorkSpaces控制台 https://console.aws.amazon.com/workspaces/,在導航窗格中選擇“Directories”。選擇你的目錄,然後選擇“Actions”,接著選擇“Update Details”。展開“Access Control Options”並定位到"Other Platforms"。選擇"Web Access"然後選擇"Update and Exit"。

現在您可以在https://clients.amazonworkspaces.com/webclient的任何瀏覽器上訪問Ubuntu桌面。輸入你的註冊碼以繼續。

輸入您的用戶名和密碼。 (如果您忘記了目錄密碼,您可以通過AWS控制台重置它。)

你辦到了!您已經成功地登入至一個完全功能的Ubuntu桌面網頁瀏覽器。

這種設置非常便利,允許我從任何地方訪問我的工作區。到目前為止,性能一直很出色,而且我對用戶體驗感到滿意。如果您對此設置有任何疑問,請隨時提問,我將很樂意與社區分享更多信息。

在AWS上設置三層架構

今天,我將演示如何使用虛擬私人雲(VPC)服務在亞馬遜網路服務(AWS)上設置三層架構。以下是說明設置的架構圖,主要分為三層。

第一層是演示層,用戶可以通過網關直接訪問公共子網。第二層是邏輯層,主要處理商業邏輯。此層位於私人子網中,以限制訪問並坐落於負載平衡器後面。負載平衡器能夠靈活且水平擴展以處理不同時間的變化的流量需求。第三層是數據層,其中包含一個位於私人子網的MySQL數據庫。只允許通過第二層訪問。為了提高可用性,我在兩個可用性區域中部署了架構,並將數據庫備份到另一個區域。這確保了如果一個可用性區域失敗,應用服務將保持運行。

首先,我將創建一個名為victorleungtwdemo的VPC網絡。按照架構圖,我將選擇172.17.0.0/16的CIDR區塊。此/16子網將給我提供65,535個IP地址,為未來的擴展提供了空間。

接著,我將創建六個子網。第一個子網命名為pub-subnet-1。我將它與我剛剛創建的VPC關聯,並選擇適當的可用區域(Zone A)。我也將指定這個子網的IP地址範圍。為了確保可擴展性,我將將其設置為/24子網。

繼續此過程,我將創建其餘的五個子網。如下圖所示,我現在在不同的可用區域有六個子網。

接著,我將創建一個新的網路閘道,命名為victorleungtw-igw

創建完成後,我將把它連接到我的victorleungtwdemoVPC。

現在,讓我們看看路由表。創建VPC時,系統會自動生成一個默認路由表。我創建的所有子網默認都會連接到這個表。

然後,我將創建一個名為pub-route的新路由表,該表將管理數據路由到公共網絡。此外,我將將原始路由表重命名為priv-route。對於數據庫子網,我將創建另一個名為nat-route的路由表。

此時,我有三個路由表。每個表都有一個默認路由。

對於pub-route表,我將向victorleungtw-igw添加一個路由0.0.0.0/0。這允許所有在關聯子網中的機器訪問公共互聯網。

接著,我將把我的公共子網,pub-subnet-1pub-subnet-2,與pub-route表關聯。

然後,我將添加nat-route,並將其關聯到priv-subnet-1priv-subnet-2

最後,不需要擔心剩下的私有路由表;所有子網默認都會連接到priv-route

現在,讓我們繼續創建一個網路地址轉換(NAT)閘道。我將選擇priv-subnet-2作為其子網並為其創建一個彈性IP(EIP)。

我將NAT閘道加入NAT路由表並設置路由為0.0.0.0/0

至此,我已經完成了約70%的網絡架構。接下來,我將配置所有相關的安全組設置。

為了安全起見,我將為我的堡壘主機、負載平衡器、Web服務器和數據庫創建單獨的安全組。

現在,該啟動相關的EC2實例了。

在創建RDS服務器之前,我也將創建一個RDS子網組。

設置好RDS服務器後,帶有適當的VPC和安全組,我們可以返回到我們的EC2實例。

接著,我將為Web服務器設置一個目標組並將它們添加到其中。

最後,我將創建一個應用負載平衡器。

設置好一切以後,我們現在可以測試系統。從堡壘主機,我可以SSH到兩台Web伺服器,啟動一個Nginx服務器,並驗證從應用層訪問數據庫的訪問。

這就結束了在AWS上設置三層架構的指南。如果你有任何問題,請隨時聯繫我.

關於我的職業生涯的故事

我開始我的職業生涯時在布里斯班擔任助理市場經理,但一年後我冒了很大的風險,回到香港,用我一年的積蓄創辦自己的初創公司。我看到一個機會,就是建立一個讓用戶能夠找到附近餐廳的網站。

我在大學時候學習Pascal和Java,因此能夠進行編程。然而,我對HTML、CSS和Javascript的知識有限,所以我必須學習這些技能,以便為我的初創公司建立網站。我學到了許多技術技能,比如使用Meteror.js並連接到mongo數據庫。這很困難,因為我每天都在寫程式碼,而且我自己一個人寫。我寫了一份商業提案,提交給政府申請資金。然而,經過一個月的工作,只有5個餐館老板登記到我們的網站,總收入僅幾百元。我們失敗了,因為我們無法吸引更多的客戶,而且我們的資金也很快就用完了。

如果我可以重新來過,我會學習關於精益創業的程序。我一開始並不知道什麼是MVP(最重要的產品)。我建立了許多很酷的功能,如即時地圖和附近餐館的地理定位。然而最終沒有人使用這些功能,因為它們並不是重要的特性。大部分的網站流量都是來自Google搜索,所以我應該在當時更專注於SEO而不是地理位置搜索。我會用敏捷的Scrum方法進行迭代,並獲得客戶的反饋,根據反饋來優先執行功能。

我學到了許多技術技能和商業知識。我能夠獨力使用JavaScript進行全棧開發,並且在我自己的業務失敗後,我能夠找到另一份軟體工程師的工作。

後來,因為我的初創公司失敗,我找到了一份全職工作,成為了澳洲企業諮詢公司Industrie IT的軟體工程師。我的第一個客戶是Riot Games,擁有《英雄聯盟》的遊戲公司,該公司由騰訊擁有。這個項目是重新設計遊戲商店,用來購買角色皮膚。我是唯一負責實作的前端開發者。我一直致力於寫一個功能,並在購買按鈕上添加CSS動畫。

我低估了這個功能的複雜性,我承諾在一週內完成這個功能。然而,這裡有一些風險,因為動畫設計和資產都是由設計師提供的。我們工作的時區不同,我在香港,設計師在拉丁美洲。我們的工作時間幾乎沒有重疊,設計師的進度也因為產品所有者無法決定哪種動畫更好而被推遲了。

在展示會結束的前一天,我終於收到了動畫檔案,但這個文件是用photoshop提供的,我沒有許可證可以開啟。這種動畫的格式與舊的瀏覽器不兼容,比如Safari 4的內置瀏覽器。它不支援最新的CSS語法,並且它不能正確地顯示

Introducing Amazon Web Services (AWS)

Hello everyone, my name is Victor Leung and I am an AWS community builder. In this article, I would like to introduce Amazon Web Service (AWS). You may be wondering, what is AWS? It is the world's most comprehensive and well-adopted cloud platform. Customers trust AWS to power their infrastructure and applications. Organisations of every type and size are using AWS to lower costs, become more agile and innovate faster.

AWS provides on-demand delivery of technology services via the internet with pay-as-you-go pricing. You can use these services to run any type of application without upfront costs or ongoing commitments. You only pay for what you use.

Moreover, AWS gives you more services and more features within those services than any other cloud provider. This makes it faster, easier and more cost-effective to move your existing application to the cloud and to build anything you can imagine.

You can rely on AWS's globally deployed infrastructure to scale your application to meet growing demand. There are so many regions in the world, how to choose? You can start with the region closest to you and your customer. A region is a physical location in the world that consists of multiple Availability Zones. Each availability zones consist of one or more discrete data centres, each with redundant power, networking, and connectivity, housed in separate facilities. In the future, if your company expands to other regions, you can take advantage of AWS facilities as well. The AWS Cloud spans 84 Availability Zones within 26 geographic regions around the world, with announced plans for 24 more Availability Zones and 8 more AWS Regions.

As for the computing power on the cloud platform, there are several types to choose from. You can use the EC2 virtual server service to deploy your server on the platform. And there are so many types of EC2, how to choose? In fact, it is decided according to your needs, the four aspects are the CPU, memory, storage and network performance. According to the type, age, capability and size, there are certain naming conventions, such as M5d.xlarge.

Generally speaking, for the instance selection process, you can start with the best-guess instance. Then determine the constrained resources. For example, C5 instances are optimised for compute-intensive workloads. It is suited for high-performance web servers. It has cost-effective high performance at a low price per compute the ratio. Besides, for M5 instances, they are general purpose instances. It has a balance of compute, memory, and network resources. It is a good choice for many applications.

Once you started an EC2 instance, you may change the instance type as well. You can resize for over-utilized (the instance type is too small) or under-utilized (the instance type is too large) cases. This only works for EBS-backed instances. The steps are 1. Stop instance 2. Instance Settings -> Change Type 3. Start Instance. You cannot change the instance type of a Spot Instance and you cannot change the instance type if hibernation is enabled.

There are a couple of available CloudWatch metrics for your EC2 instances:

  • CPUUtilization: the percentage of allocated EC2 compute units
  • DiskReadOps: completed read operations from all instance store volumes
  • DiskWriteOps: completed write operations to all instance store volumes
  • DiskReadBytes: bytes read from all instance store volumes
  • DiskWriteBytes: bytes written to all instance store volumes
  • MetadataNoToken: number of times the instance metadata service was successfully accessed using a method
  • NetworkIn: number of bytes received by the instance
  • NetworkOut: number of bytes sent out by the instance
  • NetworkPacketsIn: number of packets received by the instance
  • NetworkPacketsOut: number of packets sent out by the instance

Besides, you can install the CloudWatch agent to collect memory metrics and log files.

When purchasing EC2, there are many options. You can start with an on-demand instance first, billed by the second, with no long-term contract. After you try it out in the future, you can choose a more cost-effective reserved instance and pay for a long-term lease of one to three years, which will save you money in the long run.

After choosing the purchase method, you can put the EC2 virtual machine into the auto-scaling group. When the demand increases, the number of EC2s can be increased at the same time, thereby increasing the computing power. When the peak period is over, such as when there is no traffic in the early morning, the number of EC2s can be automatically reduced. This automatic scaling function can be scaled independently according to different indicators, and this function is free to use.

For EC2 Load Balancing, by default, the round robin routing algorithm is used to route requests at the target group level. It is a good choice when the requests and targets are similar, or if you need to distribute requests equally among targets. You can specify the least outstanding requests routing algorithm, with consideration for capacity or utilization, to prevent over-utilization or under-utilization of targets in target groups when requests had varied processing times or targets were frequently added or removed. If you enable sticky sessions, the routing algorithm of the target group is overridden after the initial target selection.

Elastic Load Balancer (ELB) can be used to automatically assigned to one or more availability zones, and at the same time, it can check the health status of the backend servers, and increase or decrease resources horizontally according to traffic requirements. There are also several different options for load balancers. For Application Loan Balancer (ALB), which is configured according to the OSI layer 7, which is HTTP. Other load balancer can also be distributed through the fourth layer of the network OSI, using the protocols of TCP and UDP, as well as the distributor of the gateway.

Suppose your business is unlucky to encounter a large-scale accident, such as a natural disaster, an earthquake, damage to a data centre, a technical impediment, or a human error, such as an employee running a command rm -rf deletes all the data, so what should you do? Actually, there are different methods, and there are also different restoration times and origins.

As for the different methods, different costs would be charged. The higher the cost, the faster the recovery. If your business can tolerate a few hours of service interruption, a normal backup and restore scenario is fine. But if it doesn't work, and it takes a few minutes to restore service, then it's a matter of replicating an identical environment in a different region, and in a standby state.

Let me give you an example, such as deploying a website to an environment in Singapore, and deploying a backup environment in Hong Kong at the same time. Through the Route53 domain name system, the domain name is pointed to the Singapore region. When a problem occurs in the Singapore area and the entire area cannot be used, the domain name can be transferred to the Hong Kong area immediately, and normal services can be resumed. The process can be changed manually or automatically, or even distributed proportionally or on a user-by-user basis.

However, operating in two regions is relatively expensive. For generally small-scale problems, such as component failures, network issues, or sudden increases in traffic, deploying to two or more Availability Zones is fine. When a zone is unavailable, it is immediately moved to another available zone, and data can be independently replicated.

Regarding to database, you can choose RDS, which is compatible with MySQL database and can be resized. RDS is a hosted service that handles patching, backup and restore functions for you. In the future, you can also consider using Aurora. The throughput can reach about three times, but the price is also more expensive, depending on whether you want to achieve the performance of a business database.

RDS allows multi-AZ deployments, which provides enterprise-grade high availability, fault tolerance across multiple data centres with automatic failover, and synchronous replication and enabled with one click. When failing over, Amazon RDS simply flips the canonical name record (CNAME) for your DB instance to point at the standby, which is in turn promoted to become the new primary.

The RDS read replicas provide read scaling and disaster recovery. It relieve pressure on your master node with additional read capacity. It bring data close to your application in different regions You can promote a read replica to a master for faster recovery in the event of disaster.

If you need strict read-after-write consistency (what you read is what you just wrote) then you should read from the main DB Instance. Otherwise, you should spread out the load and read from one of the read replicas. The read replicas track all of the changes made to the source DB Instance. This is an asynchronous operation. Read Replicas can sometimes be out of date with respect to the source. This phenomenon is called replication lag. Replica Lag metric in Amazon CloudWatch to allow you to see how far it has fallen behind the source DB Instance.

Amazon RDS encrypted DB instances use the industry standard AES-256 encryption algorithm to encrypt your data on the server that hosts your Amazon RDS DB instances. To protect data in transit, all AWS service endpoints support TLS to create a secure HTTPS connection to make API requests. Manage secrets, API keys, and credentials with AWS Key Management Service (AWS KMS). As the team expands, with AWS Identity and Access Management (IAM), you can specify who or what can access services and resources in AWS, centrally manage fine-grained permissions, and analyze access to refine permissions across AWS. Multi-factor authentication (MFA) in AWS is a simple best practice that adds an extra layer of protection on top of your user name and password. Firewalls (web application, network) and DDoS protection. Thread detection, manage secret alerts, and configure security controls for individual AWS services using AWS Security, Identity & Compliance.

Amazon CloudFront is a content delivery network (CDN) service built for high performance, security, and developer convenience. It speeds up the distribution of your web content to your users, through a worldwide network of data centres called edge locations. The user request is routed to the edge location that provides the lowest latency (time delay), so that content is delivered with the best possible performance. For example, the first client sends a request in the United States, and then needs to cross half the world to Singapore to get the content, but for the second request, it is good to get the previous cache file in the data centre near the United States, which greatly reduces the distance and feedback time.

For dynamic content acceleration, you can use standard cache control headers you set on your files to identify static and dynamic content. Dynamic content is not cacheable, it proxied by CDN to the origin and back. Faster response time = Reduced DNS Time (Route 53) + Reduced Connection Time (Keep-Alive Connections & SSL Termination)+ Reduced First Byte Time (Keep-Alive Connections)+ Reduced Content Download Time (TCP/IP Optimization). It can further optimise using Latency-based Routing (LBR), run multiple stacks of the application in different Amazon EC2 regions around the world, create LBR records for each location and tag the location with geo information. Route 53 will route end users to the endpoint that provides the lowest latency.

AWS CodePipeline is a fully managed continuous delivery service that helps you automate your release pipelines for fast and reliable applications. It can use to prevent issues by running tests and performing ng quality check. Amazon CloudWatch is a monitoring and observability service. It provides you with data and actionable insights to monitor your applications, respond to system-wide performance changes, and optimize resource utilization. Upon detection of abnormal patterns or healthh check returns error, you can trigger an alarm or actions, which could further trigger AWS Lambda, it is serverless, event-driven compute service that lets you mitigate the issue, such as restart the server or revert to the previous stable version. You can then recover from failed service instances.

For storage of objects, there are 6 choices of Amazon Simple Storage Services (Amazon S3) storage classes: S3 standard, S3 standard-IA, S3 One Zone-IA, S3 intelligent-tiering, S3 Glacier, S3 Glacier Deep Archive. The Amazon S3 Glacier storage classes are purpose-built for data archiving, providing you with the highest performance, most retrieval flexibility, and the lowest cost archive storage in the cloud.

For S3 Data Consistency, the New Objects (PUTS) has Read After Write Consistency. When you upload a new S3 object you are able to read it immediately after writing. Overwrite (PUTS) or Delete Objects got Eventual Consistency. When you overwrite or delete an object, it takes time for S3 to replicate versions to AZs. If you read it immediately, S3 may return you an old copy. You need to generally wait a few seconds before reading.

Another storage option is EBS. What is Amazon Elastic Block Storage (EBS)? Block storage volumes as a service attached to Amazon EC2 instances. It is flexible storage and performance for dynamic workloads such as stateful containers. It can be created, attached, and manage volumes through API, SDK, or AWS console. It has point-in-time snapshots and tools to automate backup and retention via policies.

gp3, General Purpose SSD are great for boot volumes, low-latency applications, and bursty databases.

  • IOPS: 3,000 - 16,000 IOPS
  • Throughput: 128 - 1,000 MiB/s
  • Latency: Single-digit ms
  • Capacity: 1 GiB to 16 TiB
  • I/O Size: Up to 256 KiB (logical merge)

io2, Block Express are ideal for critical applications and databases with sustained IOPS. It’s next-generation architecture provides 4x throughput and 4x IOPS.

  • Up to 4,000 MiB/s
  • Up to 256,000 IOPS
  • 1,000:1 IOPS to GB
  • 4x volume size up to 64 TB per volume
  • < 1-millisecond latency

st1, Throughput optimized are ideal for large-block, high-throughput sequential workloads.

  • Baseline: 40 MiB/s per TiB, up to 500 MiB/s
  • Burst: 250 MiB/s per TiB, up to 500 MiB/s
  • Capacity: 125 GiB to 16 TiB
  • I/O Size: Up to 1 MiB (logical merge)

sc1, Cold HDD are ideal for sequential throughput workloads, such as logging and backup.

  • Baseline: 12 MiB/s per TiB, up to 192 MiB/s
  • Burst: 80 MiB/s per TiB, up to 250 MiB/s
  • Capacity: 125 GiB to 16 TiB
  • I/O Size: Up to 1 MiB (logical merge)

For EBS availability, EBS volume data is replicated across multiple servers in an Availability Zone to prevent the loss of data from the failure of any single component. Protect against failures with 99.999% availability, including replication within Availablity Zone (AZs), and 99.999% durability with io2 Block Express volumes. EBS Snapshots are stored in S3, which stores data across three availability zones within a single region.

Besides, there is Amazon Elastic File System (Amazon EFS). It is serverless shared storage - no provisioning, scale capacity, connections and IOPS. It is elastic - pay only for the capacity used. Performance build-in scales with capacity. It has high durability and availability - designed for 11 9s of durability and 99.99% availability SLA.

AWS CloudFormation is a service that helps you model and set up your AWS resources so that you can spend less time managing those resources and more time focusing on your applications that run in AWS. Infrastructure as code (IaC). Consistent across accounts and regions. Dev/test environments on demand. An Amazon Machine Image (AMI) is a supported and maintained image provided by AWS that provides the information required to launch an instance.

Finally, to sum up, there are many AWS services to archive well architecture with operational excellence, security, performance efficiency, reliability and cost optimisation. There is so much to learn and let’s keep learning. Thank you very much for taking the time to read this article. Let me know if you got any questions, happy to connect