網站可靠性工程工作手冊導讀會一遊

最近工作上沒什麼事,可能是快要尾牙了吧?雖然一樣很多新需求、新功能追著我跑,不過每天都還算充實快樂,只是要努力的試著學習怎麼克服溝通這門學問…

於是乎,最近就常常十二月排了一些活動,像是這次天瓏書局協辦由江少傑(之前Yahoo 的工程師)帶了一場「網站可靠性工程工作手冊」的導讀會兼簽書會(笑,技術書籍也搞這個簽名會啊><)

基礎、基礎、還是基礎

原本從我們公司到天瓏書局很遠,光是六點準時下班都還是預計會遲到。中間我稍微跑了一下,發現還真的遲到了幾分鐘….不過還好,工程師們也都是忙碌的,因此活動還沒開始!

作者前面一直講很多翻譯的甘苦談、出版社的困境、現在技術學習的方式與以前不太一樣甚至談到教育與人生….哈哈,阿還有在Yahoo的工作等等,但我心裡想:我來不是想聽這些的啊><

不過講者也在過程中其實也算導讀一些東西啦,有點發散,大概我比較有印象的關鍵如下:

  • Agile , CI/CD , Scrum , Test 其實這幾個都互相關聯與奠基著,穩定與速度也互相關聯著。為什麼我們的軟體專案會失敗,其實就是不知道這中間許多的細節與關聯、盲目的導入只是帶來更多的坑
  • 一次只上一點點的改變,而不是一大包放上去,這才是CICD的做法、也是為什麼要自動上版的原因(想到我們公司CICD顯然就與這樣的想法背道而馳,而且還沒有測試,希望在我任內能將其補齊!)
  • 團隊之間必須要有「信任」,「信任」很重要,然後也讓我想到我在看這本書剛開頭也講到所謂的「不究責」的文化,這帶給我蠻大的提醒,我們不是要來抓戰犯、而是要共同一起解決問題、處理問題啊!
  • 這本書是一種案例研究,如果你企圖將書上講的方法都硬套在你的公司上,那只會帶來失敗,你應該要認真好好的認識與理解你們公司的domain , 學習到本書各案例背後的精神與概念,帶去case by case 解決你們公司的問題

我問的問題

在會後,我問了幾個很笨的問題

譯者回答,基本上應該是不會的,甚至可以直接看這一本也無所謂,就當成是案例研究,他也建議可以看第一本的內容互相對照,網路上也有免費的英文版可以看呢!

  • 做Developer不是SRE的角色,能看懂這本書嗎?

譯者說,不會,而且開發者也應該也要試著看看這本書,學習與他人「溝通」…這是蠻重要的等等,旁邊也有一個工程師也說到看得懂(看起來也是他的好朋友或社群夥伴吧?!)

剛開始讀這本書

我目前才剛看一點點而已,不過就有幾個概念對我蠻有所突破的。例如我們不該追求什麼「百分百可靠度」、也了解DevOps & SRE的不同、上面說到不究責的文化等等…

如果對這本書有更進一步的資訊可以參加FB的社團,在FB搜尋書名就可以看得到~

小君曰:DevOps也是一門學問呢但也是一種文化!!我也正在努力的學習中

2020AWSDevDay 一日遊

最近請了一天公假,和很多後端組的同事一起參加今年2020 AWS Dev Day, 這是人生的第一次啊!能夠與很多AWS 的開發者聚再一起,實在是件令人興奮的事,以下就簡短、簡單的分享一下吧!

早上的議程

早上其實是共同的議程,有Pahud 大大分享的「與開發者同行」以及Kim 分享的「技術人的社群影響力」,另外也有趨勢科技分享比較硬技術的「如何在 AWS 上建立大規模實時數據管道」,老實說,第三場有點聽不太懂,感覺與現實我遇到的情境真的相差甚遠,所以很難真正理解與明白他所談的一些概念,大概知道要有所「監測」才能有所證明,如果要證明自己做好,就可以用監測/Dashboard 的方式呈現給非技術性的團隊看,這種技巧可以記一下,至於其他技術關鍵字的部分,像是 AWS kinesis , Apache Flink 等等,可能只是稍微查查 wiki 了,看看以後有沒有機會遇到這樣。

至於其他比較軟的部分,大多都是談談「人生」,但我覺得可以記下的是「技術人的社群影響力」這一場,他讓我也重新再思熱情的重要,回想起當初讀資管、寫程式的小初衷。或許明年,可以選擇某個社群認真參加一下、投入一下,一個人可以走的快、但一群人可以走得更遠啊!

而另外我也很想在明年找一個G0V某個專案,好好給他投入一下,貢獻作為技術者的社會影響力!但說真的,還是要給他認真的付諸實踐才是真的!

謝謝在外面擺攤的DDD TW 的社群義工,當我很認真地問起DDD, 甚至問了很多很基礎很初學的問題都還是很不厭其煩地為我解答!說真的之前就大概聽過DDD,就我的理解上是一種軟體開發方法論,可以將業務知識對應到我們的程式的方法,我覺得真的很適合拿來放在我在做產品的工作場域!希望藉由之後認真地給他投入DDD社群的過程中,真正學習、認識、應用與實踐DDD。畢竟,作為工程師,還是希望自己寫一手漂亮、好維護、可傳承的程式碼與產品啊!Be a better Coder ! Also be a better Architect !

在下午的議程中,我先選擇了Track C 的第一場,之後就都待在Track A了…

CDK家族介紹:CDK, CDKTF 及 CDK8S

這場還蠻基礎的,因為先前參加過Pahud 的serverless php 工作坊,稍微認識過了CDK ,而在之後也有時候會看Pahud的Youtube影片學習,最近鐵人賽也有熱心人士分享CDK的學習(目前正在學習中) ,所以這場的知識量對我來說真的有點偏少,但也很不錯了,因為我直接跳過一些基礎或歷史直接學CDK難免還是會有點卡卡的,藉這此議程補足之前沒有補上的歷史與基礎也很不錯,當然啦,我覺得我不太認識Kubernetes也是一個小小的致命問題之一,學好Docker 卻沒有學好 Kubernetes真的有點傷啊! 看來以後要補足這一塊的知識!

運用 AWS Fargate 與 Amazon ECS 的 CI/CD 最佳實踐

這一場談到CICD的最佳實踐,說真的也是有點偏基礎,日常我工作就有在用到了….不過他談到一個Blue/Green 部署的概念可以放在心上,就是讓舊的版本先飛一陣子,只有一部分的人用新的版本,等到新的版本穩定了,再將原本舊的版本拿掉。這樣的好處是如果到時候要從新版本還原很方便(大概我是記得這樣啦XD)。

技術選型,今天要選 ECS Fargate 還是 ECS EC2 launch types

老實說,他其實沒有講什麼,最後也沒有真的大概指名什麼狀況要選Fargate,什麼時候要選Ec2 (之後可能還有ECS anywhere ??) ,大概整場就在講「燒烤店」吧(笑~ 。大過大概知道Fargate就是不太管、而 EC2就是要管理這兩種大差別吧,以及一些你可以選擇的場景XD

數數發 DevOps 的轉型旅程與 AWS CDK 實作案例

其實要導入DevOps 真的不太容易,他是一種「文化」、需要「溝通」、擁抱「改變」,我很佩服國泰金控居然有這這樣的一個中心願意為此而努力、跳下去做!而這場比較有點硬技術且讓我印象深刻的是CDK的撰寫要for function(合) 還是 for resource (分),其實沒有標準答案,帶他們團隊是採取for resource 的方式,另外,template的改變能越少越好,他們是有用一個叫做config.py的方式去載入一些真正會需要調整改變的地方,這帶給我寫code有不錯的技巧與工具啟發!

結論

這場AWS Dev Day , 可能我選的議程都比較基礎比較簡單吧?所以感覺寫起來沒什麼技術點,但我覺得基礎是很重要的!這是我最近進入職場寫程式一直以來所擁有的體會,有時候我們忽略的基礎,剛開始可能會真的沒什麼太大用,但你寫久之後,其實這些正是事後需要補足的地方!無論是本科系或非本科系的都是一樣!

小君曰:結果最後的airpod 沒抽到、然後報到禮和問卷禮都沒拿到,難道我這天只是來吃便當的嗎?

LaravelConf 2020 心得

上個月底我參加 LaravelConf 2020

買的是直播票線上票。先分享一下會眾們的筆記先:https://hackmd.io/@LaravelTaiwan/Conf2020/%2F1p8VzdKxR7eZ210Lk0j3pA

強型別

其實整體心得不太多,因為自從2017 年、2019年這樣參加下來,我覺得自己能聽懂的越來越多,反而是比較多是「人生」上面的思考。 像是:我覺得最近PHP越來越往強型別靠攏、javascript 也有相對的TypeScript , 聽 Ant 大大講到,強型別的好處是可以有助於之後在程式碼上的靜態分析….  不禁讓我覺得,要開始好好學習強型別、希望可以在之後經手的專案上慢慢導入強型別的習慣吧!

基本功打穩

至於serverless 的部分,真的是最近慢慢接到 lambda 的專案才慢慢認識他。其實serverless 才不是真的不管server, 只是對server的控制權、管理權降低,讓開發者可以更多地專注於商業邏輯。其實有時出錯了有時還是需要看看server 與 跑的狀態….. 後來工作幾年後感覺,那些在大學上過的作業系統、網路概論真的蠻重要的,基礎很重要!這也是我最近也在試著把那些基礎補起來的一個想法…

小君曰: 所以,要開始繼續往Better coder 的偉大航道前行!!

參加LaravelConf2017

前言

之前之所以知道這個conf 是因為有參加一些Laravel 的社群和團體而得知有這樣的大會…….我對此非常期待,在他開始的時候就馬上買了”熱血贊助票”來參與這樣的盛會之中。這是我人生中第一場參加的實體Conf ,如果之前硬要說有參加conf的經驗的話….那就是高雄前端大會的”直播票” XD  是個可以繼續宅在家裡的大會XDDD 覺得還是參加實體Conf 實際聽聽 與大大高手們交流品質會更好些……因為在家裡總會有些”惰性”嘛哈哈。在這裡我不會特別分享在大會的一些筆記以及學習,而是很單純的心得分享,如果你想看看筆記可以去看看大會提供的共筆(連結),或者等之後大會提供的影片……這裡我就不討論這些….而是談談第一次參加實體conf的感覺

另外這是自己寫的筆記

還有很大的成長空間

目前我有兩個專案,兩個專案都是使用native php 開發(淚~),其中一個還是累積了20幾年的前人(智慧?!) 所撰寫出來的網站,那時我接得時候其實覺得還好,但直到我碰過有人把CRUD 包裝成Function,還有Laravel 框架之後,再回來維護這個專案時…… 我! 已! 經! 不! 知! 道! 怎! 樣! 維! 護!

哈哈,於是趁著今年這個專案還很久之後才會啟動的時候,趕緊的將其重寫! 在經過公司主管同意之下,我們決定使用Laravel 做為開發…….而偷偷ps 一下,因為我所負責的這兩個專案,其實規模不大,也是公司的人力配置的政策之下,我是”單打獨鬥”的! 除了有設計師幫我設計美美的圖以外,其他前端、後端、測試皆是由我一手包辦……覺得難過XD

然而,我對於Laravel 其實就是上過Hahow的課以外,當成玩具在玩,完全沒有實戰過在正式專案上……在重寫這個專案的過程中,我就「邊學邊做」,遇到雷的話就除雷,看看google 看看stackoverflow 等等,我也沒和太多人交流,通常問題也在google 中就會解決,就按! 照! 自! 己! 意! 思! 寫!

參加的心得與收穫

參加完這次的conf,我覺得我超後悔沒有和這麼多人交流甚至是投入社群中, 原來,我只有引入”半套”的Laravel ,對於公司的貢獻,就是引入Laravel XDDDD  而且尷尬點是,我這個專案開發到現在已經快完成了,看來….只能靠後面重構再慢慢修正回來囉~~  錯過太多Laravel 提供的好東西,真是超級可惜!!! 同時,我也必須承認conf 的每一場內容我也不是每一場完全聽得懂……就像主辦人說過的,這個conf 只是一個起頭,後面仍是我們要繼續付出時間與代價去挖、去看、甚至是去寫…… 說真的我已經開始在摩拳擦掌了……..覺得很莫名的興奮感阿!!!!!!

希望未來的我能夠寫出越來越好的程式碼、成為一個夠強的工程師! 這是我對我自己的期許! 希望可以達成

感謝LaravelConf 2017全體工作人員,因為有你們才讓寫Laravel 的人不孤單、讓Laravel更加精采! 同時也提醒我,不要只是”閉門造車”,而是要參加不同的活動不同的交流,看看別人怎麼想,看看別人怎麼做 ! LaravelConf 是我第一個Conf ,我期待未來我也可以參加各種不同的Conf 擴展自己視野,如果可以,也希望自己可以強到能夠成為一名講者 (畢竟我也是許願要在TED 演講的人XDDDD)

期待明年能繼續有 LaravelConf 2018 ! 我相信到時的我對於Laravel會有更不同的想法、對於寫程式一定有更多的進步空間!!!

備註:共筆傳送門

實踐

做而言不如起而行, 我想我要有一些方案來實踐收獲這次的conf內容,未來的一年(可能也是數年?!),我也來學著寫寫看一些講者們說的東西

1.再度拿出Laravel 啟動與運行這本書,再好好的每一個章節每個內容好好看過甚至都操作一遍,尤其是後面的章節,以寫一個簡單的 blog網站為目標(計畫重新撰寫用laravel 做一個簡單的部落格網站這一篇文章,之前寫的太草率了),加入socket 、job/queue 和 storage 等等

2.使用Docker 佈署看看Laravel

小君曰: 買熱血贊助票有紀念章和T恤,感覺非常不錯呢!