Skip to main content

Posts

Showing posts from 2020

芯片工程师的一天 | 我如何每天高效工作12小时?

「趁年輕,多讀書!」

構思和想像力是被過去的體驗限制著的,對吧?不知道的事物當然也想不出來,我因爲不學習,,所以沒看多少電影和小說,一到需要大量知識的時候, 能想到的實在是非常少。這 都是當年懶惰的報應。 「成長過程中沒有接觸過多少文學作品的人,他的人格不會有多深刻。」我記得這句話是立花隆說的,不過看書少的人純粹就是沒多少知識。知識匱乏,就不會有以此爲基礎形成的求知慾。雖然是到處都能聽得到的老話,但我這個無知的導演要在此對年輕的讀者們再說 「趁年輕,多讀書!」 當然不包括漫畫。大概會有很多人認爲,原本是漫畫家: 這種話是幹什麼。我認爲 只讀漫畫,想像力會很容易被奪走。比起閱讀,漫畫還是看看: 「將漫畫作爲漫畫本身來 享受就好了。 from 今敏

Rick Hwang from Site Reliability Engineering Taiwan

Linux 是我認為身為一個 SRE 必備的核心技能之一,所以去年年底心裡就有想挑類似的書做主軸。去年讀完 "深入淺出 K8s",這個號稱雲世代的作業系統,回到 SRE 的本質,或者說現代開發者 (不管 Dev / QA / Ops),作業系統、資料結構、演算法、計算機網路、計算機結構、組織 ... 等基礎計算機科學,是我認爲必要的。而 Linux 是作業系統實踐最好的例子,也最實用的科學。 .

用CAP來談網路 真的很有啟發性

包处理的艺术(2)---如何设计协议  https://mp.weixin.qq.com/s/Wx7-8RpC_M-8ME8whDLJsg 事实1:基于目的地址转发的系统是CP CP without A:如果不要求A(可用),相当于每个请求都需要在服务器之间保持强一致,而P(分区)会导致同步时间无限延长(也就是等待数据同步完才能正常访问服务),一旦发生网络故障或者消息丢失等情况,就要牺牲用户的体验,等待所有数据全部一致了之后再让用户访问系统  事实2:路由协议和一些SDN实现是CA CA without P:如果不要求P(不允许分区),则C(强一致性)和A(可用性)是可以保证的。但放弃P的同时也就意味着放弃了系统的扩展性,也就是分布式节点受限,没办法部署子节点,这是违背分布式系统设计的初衷的。 事实3:SR采用适当的源路由放弃一致性获得可用性,即AP AP wihtout C:要高可用并允许分区,则需放弃一致性。一旦分区发生,节点之间可能会失去联系,为了高可用,每个节点只能用本地数据提供服务,而这样会导致全局数据的不一致性。 协议设计的原则 原则1:控制平面采用CP 原则2:数据平面采用AP->BASE

未來網工

 https://blog.ipspace.net/2020/11/growing-beyond-networking-skills.html ****Networking in public clouds .  Network automation . ****Linux networking .  Data centers and virtual networking   https://blog.ipspace.net/2020/11/why-public-cloud-networking-so-different.html " it shows these things were designed by software developers – they have no idea how networks should work. ” no more ARP, VLAN " There’s a reason they don’t provide (among other things) continent-spanning layer-2 domains, or VLANs stretching into your data center."

网络服务化与供给侧改革:退一步海阔天空 : 筆記筆記筆記筆記筆記筆記

终于有一天,应用开始自己搭网络了,虽然初期很笨重,大量使用Tun/Tap和Iptables,但是各个寡头在被应用侵占的时候,终于意识到这个问题,开始大谈Network as a Service(NaaS)了 >> 是要這麼想的 " 应用开始自己搭网络了" IPSec在震荡的时候由于密钥交互阶段大量的RSA运算和复杂的交互消息和加密算法协商使得局端收敛特别慢  另一方面是BGP,路由协议本质就是一个分布式 一致性 问题,陈旧的算法使得收敛特别满。 端到端的网络赋能: 给 应用选路 的能力

通過CKA

這是繼CCIE JNCIE後的hands on 考試 其實應該在九月改版前去考的 這考試改成兩小時 算是頗有時間壓力 這考試不是輕易就能過的 畢竟是hands on 腦袋不清楚 這考試就會一團亂 沒有事前先對考試環境有一定程度的了解 適應是很花時間的 不夠熟 要過就是運氣了 接下來是被說成比CCIE難的 AWS advanced networking

sad but true

 vgill @vgill Level 1: Also after helping build the modern Internet, working on most distributed systems seems so small and pointless. We were jolly green giants, striding the earth with routers, slinging light thousands of kilometers over spun glass thinner than a hair. 7:09 AM · Oct 6, 2020·Twitter Web App @chuegen 4 preproduction OC192 cards in the back of my convertible, driving down Tasman, each one worth far more than my convertible...  I miss those days. vgill OC192c cards piled up in  @paulvixie  's office like pizza boxes after an office party Paul Vixie corner office, no lock on the door. marekj @marekj Yeah, I could get 3 GSR line cards in my Miata! I kind of miss the late nights at mae-east and mae-west. Something nostalgic about installing routers in a parking garage! Zeke @chezbut I have similar feelings working on most small corporate systems, after having worked on complex distributed systems at scale. I guess it's kind of like developing a sommelier's palat

如果你只能讀一本NGINX的書 ( 我知道大家都是搜網頁的)

Nginx 應用與運維實戰  https://www.tenlong.com.tw/products/9787111659921?list_name=srh 但如果有一本完整說明體系的書  -Nginx 實戰:基於 Lua 語言的配置、開發與架構詳解 這本有一半以上在談基於lua的第三方模組 如果你只想使用官方模組或是最基本功能 還是"Nginx 應用與運維實戰" 非常全面

搞AWS networking

實體網工真的會很失落 沒有routing protocol  沒有 ARP 沒有MAC learning 沒有router/switch 只有routing table 二層是罪 (終於實現了 - routing guy murmur) 其實BGP也不算 進階的東西也沒了 勉強VPN算一點

未來的cloud native

  https://blog.cimicorp.com/?p=4251 if the market is heading to cloud-native, you can’t differentiate your cloud-native approach by adopting the same tools as everyone else. >>要賺錢活命的要多想想 Despite the way the market has talked about the cloud and cloud-native, it’s always been really a development issue The cloud has features that the typical data center doesn’t have.   The application was  written  to run in the cloud, not moved there from somewhere it was already running. "The central adaptation of components to cloud-native status is making them into microservices, which are stateless (in some way) features that can be spun up and run, taken down, moved, and so forth, as conditions demand.  Having a bunch of application features floating out there in the ether isn’t exactly how most application developers think, and the tools to make this work start with an abstraction of connectivity, or virtual connection fabric .  That’s what service meshes provide." >> 但這讓se

Envoy和Nginx

https://network.51cto.com/art/201911/605778.htm 概括起来,Nginx的关键词是Web服务器和反向代理,Envoy是透明接管流量,更加体现对流量的控制和掌控力。另外,从使用方式上看,微服务对Nginx是显式调用,通过Nginx完成负载均衡等相关功能,对Envoy是隐式调用,业务微服务不需要感知Envoy的存在,和使用Envoy使用相同的方式进行通信,只不过不再需要关注通信和链路治理的细节。

STP 有這種歌 好不可思議

https://www.youtube.com/watch?v=isUxZtKf7K0 If time could rewind, that's the first thing I'd do Now I bathe in the sound of echoes of you I'd canvas the sea just to know what you knew Wanna feel everything you've ever been through You're so far from me I can honestly say I'm longing for you, not just memories of you miles away If I could stop time, that's the last thing I'd do Just to savor the essence of echoes of you Your absence so loud I could still see your face These walls rearranging with each step I take 'Cause you're so far from me I can honestly say I'm longing for you, not just memories of you miles away If time could rewind, that's the first thing I'd do Now I bathe in the essence of echoes of you I would canvas the sea just to know what you knew I wanna feel everything that you've ever been through 'Cause you're so far from me I can honestly say I'm longing for you, not just memories of you miles away I

全雲操作

其實有實體機器的IT單位 也都是遠端連入 只是還有管機器的感覺 如果IT infrastructure都在雲上 我實在想不出到一個固定辦公室的需要 有感

流量层也存在硬伤:加密问题

https://security.tencent.com/index.php/blog/msg/148?fbclid=IwAR2bSIpgnAaytDliHxAC5ImoW1i2GSCbNw3zNKPa2RJE5A0WlFl-gy9QXn8 流量是座大宝藏,对于传统安全场景,流量分析不是替换传统方法,而是互补和结合,“流量+”也会将企业的安全能力带上一个新台阶。但事无完美, 流量层也存在硬伤:加密问题 。随着https普及以及http2、QUIC特性的使用,传统网络层看到的将是一串加密二进制数据,不再是http下的明文字符,基于黑特征的检测拦截能力都将失效(上面我们提到的网络层WAF方案的弊端)。解决办法是将流量接入层下移,比如位于接入网关GW/LB解密卸载之后;同时对于某些场景,需要降低对黑特征、关键字的依赖,综合利用大数据、AI等手段,构建基于行为的检测机制,比如木马主控C&C行为的发现。 

網路不是核心 應用才是 老賊就是不願接受

https://mp.weixin.qq.com/s/ULbe-XjbxhH0r8vv2-XLZQ 以前讨论软件定义,现在讨论5G和边缘计算的很多观点,实际上在潜意识里还是网络中心论,还是把网络置于食物链的顶端和主导环节 互联网公司主导的网络里,主要的资源是投入到对网络基本模型、基本能力的研发和创新上,是在补肾而不是补脑。互联网行业对网络的控制策略往往并不复杂,甚至刻意避免复杂 但在网络主导的圈子里,很长时间里还是把希望寄托在给控制平面补充六个核桃上,总觉得是网络管控的大脑不够聪明差导致强大的身体机能英雄无用武之地,而且对聪明的定义往往聚焦于算法,或寄托在出奇制胜三两招上,对系统性的问题反而比较轻视。 我也知道我说了这些以我为中心的看法并没有什么太大的用处

也有這本書了

Building a Future-Proof Cloud Infrastructure: A Unified Architecture for Network, Security, and Storage Services

Egress control

https://blog.fleeto.us/post/egress-monitoring-access-control/ 在SLB裡的SNAT 是為了對應主機的default gateway需特別指定的問題 egress將一直都會是問題 istio的解法算是最暴力的解法

from 黑暗執行緒

黑暗執行緒 Side Project 寫爬蟲有感。 如果有人跟你說「大數據」一點都不難,寫爬蟲超簡單,他一定是<del>壞心想騙你</del>好心怕把你嚇壞,沒說光第一關大魔王就很可怕。如果沒現成資料想自己抓網頁建基本資料庫,光是抓資料跟洗資料這段,就很容易把你搞到懷疑人生,而且還相當吃經驗值。 寫 Http Client 抓回網頁很簡單,難在解析手工輸入的各式文件擷取出資料,即使制式表格,打錯字的、存不同 Encoding 的、動到欄位標題... 就夠精采的,魔鬼全在細節裡。 常見的狀況是:花一小時寫幾行程式擷取正確率就高達 60%,但提高到 70% 要兩小時,推上 80% 要耗時四小時,花八小時好不容易到 90%... 直到你嘆一口氣,「算了,這幾百筆用手工改好了。」 如果你不熟 Regular Expression,一般會更早就放棄改用「工人智慧」。

Always Be Coding : google-interview-university

https://github.com/kevingo/coding-interview-university-zh-tw/blob/master/translations/README-cn.md https://coldnew.github.io/google-interview-university/ 我想這段給我的啟示是 開始永遠不晚 而且找對方法(尤其現在的資源/能接觸到的專家) 不必花很久(less than one year)就能到接近專家(窄領域)的水平 端看你的動機 有多想要 學習絕對要濃縮 長時間亂讀真的沒用 此外 我真的懷疑現在有廣領域都通的專家了 

from Chuan Ye

编程这个事情还真是熟练工种。学会不难,但魔鬼在细节, 如果不是天天搞,效率就不行。很容易掉进坑里写码10分钟, 抓虫几小时……最后怀疑人生。 所以社会分工好,虽然社会分工异化人。 (又是产品经理客串程序员的一天) <感想>寫程式真的需要完全的專注 只是part time真的不行 更別提程式碼是需要維護的

will QUIC next wave? Let us see

vim + yaml

# cat ~/.vimrc  autocmd FileType yaml setlocal ai ts=2 sw=2 et  # source ~/.vimrc autocmd FileType yaml setlocal ts=2 sw=2 et則相當於下面這樣的參數: ai = auto indent,自動退格對齊 set tabstop=2(ts=tabstop,即一個tab的寬度被設為2個空格辣麼寬) set shiftwidth=2(sw=shiftwidth,即退格對齊以2個空格為準) set expandtab(et=expandtab,將tab變成空格)

If You Want to Be a Senior Developer, Stop Focusing on Syntax

https://buzzorange.com/techorange/2020/04/29/learn-new-programming-language/?fbclid=IwAR2CKiyJyqimiFXMwNRa8mQ-rqIW62Q5fO7nHLWK20tiw-aQpn_mMzWeU4k https://medium.com/better-programming/if-you-want-to-be-a-senior-developer-stop-focusing-on-syntax-d77b081cb10b 很多資深工程師不會記程式碼的細節 「我是 Google 的團隊主管,有超過 30 年的寫程式經驗,但是我仍然需要去查怎麼得到一個 Python 字元串的長度。」——Tim Dierks https://twitter.com/tdierks/status/835912924329836545 「我寫了將近 8 年的 Objective-C,仍然需要用 Google 去查 objc 的 block 語法。」——Lukas 「我是將 Node.js 部署在商用飛機上的人。然而我現在還是不懂 .substr() 和 .substring() 的區別。甚至寫這句話的時候我還得查一下 ‘substring’ 的大小寫規範是啥樣。」——JP 「我是 Phunware 的 Android 主管。不借助 StackOverflow 我就沒法去讀一個輸入流。」——Jon 「我是紐約時報的 GDE 工程師,也是主管,我不懂什麼是 np。我應該懂嗎?」——Mike 「在 12 年的 JavaScript 開發中,我總是被 substr() 和 substring() 弄糊塗,總是需要到網上來確認。」——Faisal 「我寫了 6 年 JS,我仍然需要去查不用 fetch 或者 jQuery 的話怎麼做 AJAX 請求。」——Dominik 「我從 1979 年就開始寫程式了,我仍然得查 java.lang.String 的用法,一直如此!」——Tim Bray 「我寫了 255 行程式碼,其中包括一個可以運行的伺服器和一個客戶端。我在 Google 上查詢了 23 次,大多數時候被引到 StackOverflow、Netty 4 網

為開發維運團隊多角色提供自助服務,F5推新型應用程式平臺

https://www.ithome.com.tw/review/136029?utm_source=Facebook_PicSee&fbclid=IwAR3Fqe-76s3ByrFtW9WQNAKnI_B9LEdUx0lRo2skV0tRRCTVdYrkQVd2Npc 回顧先前版本的Nginx Controller,當中所提供的應用程式遞送方案,雖然能夠簡化Nginx Plus執行個體的部署、組態設定與監控,提供網站伺服器、代理伺服器、負載平衡、API閘道,但仍是以IT基礎架構為中心(infrastructure-centric),在產品提供的使用者體驗上,著重在底層的Nginx Plus執行個體(instances)。 而到了最新推出的3.0版本Nginx Controller,則是以應用程式為中心,而且結合了許多服務,像是負載平衡、API管理、資料分析,以及服務網格(Service Mesh),可減少多種工具散亂使用的狀況,同時,用戶面對應用程式的部署與執行,也能夠透過新的API來進行組態設定,促使企業能夠更順利地推動應用程式加速部署,並以較低的總持有成本來獲得足夠的效能與分析機制。

Kubernetes 的網路

https://sookocheff.com/post/kubernetes/understanding-kubernetes-networking-model/ https://k2r2bai.com/2019/09/26/ironman2020/day11/ https://blog.pichuang.com.tw/20190321-reach-out-services-and-pods-from-outside-into-openshift/ https://blog.pichuang.com.tw/20190404-openshift-network-traffic-overview/

NANOG 78 two keynotes

Failing Last and Failing Least: Design Principle of High Available Network KEYNOTE: Amin Vahdat https://www.youtube.com/watch?v=DpO1Tfa4IZ4 to myself and most people : " you are not Google" Networking 3.0 KEYNOTE: Bikash Koley https://www.youtube.com/watch?v=f2Pe0SHmgyo 知道自己在那裡<階段>是很重要的 但是很難 總結得太好了 networking 1.0 connection led - SDH/ATM/MPLS/VPN... scale-up closed human operatd networking 2.0 data-led : OTT-google/FB.... scale-out : MTBF/software makes system reliable software defined : common software platform/API/programmable/separation of DP/CP automated networking 3.0 application-led disaggregated Open self-driving : ML/intend driven from human-workflow-event-machine-intent SRE operated the infrastructure

基于Envoy的流量劫持的企业分布式服务平台访问设计

https://mp.weixin.qq.com/s/bKVU1KxjGwsWhPK_qvqoZw 基于Envoy的流量劫持的企业分布式服务平台访问设计。该服务平台基于互联网公司成熟度较高的分布式服务技术实施及管理框架产品,使用了Service Mesh和Istio的相关技术架构,Envoy和iptables结合,相关TCP数据包流量被“在NAT表的自定义的几个链”重新“映射”、“劫持”、“路由”,实现应用服务实例之间的高可用通信。

inspire old dog to learn new stuff

https://changelog.com/gotime/114 https://about.gitlab.com/blog/2019/05/13/kubernetes-chat-with-kelsey-hightower/ On teaching others: "I usually try to explain things based on the fundamentals, and then break down the technology until we get to the bottom. So, whenever something new comes out, my guess is it’s not going to change how we do computing. That hasn’t changed in a long time … Once you learn the three, four, five basic fundamentals, then you just look at the new technology, and you just work your way down."

After retirement 很有啟發 : 只有programmer可以remote

https://hackernoon.com/what-happened-to-software-development-j92032w9 http://www.ruanyifeng.com/blog/2019/12/30-years-software-career.html 我的原计划是,2019年65岁时退休,然后搬到东南亚国家享受退休生活。但是,经历过了沉闷的站立会议、白板上的迭代看板、一系列高压力的工作、对"故事"的不停谈论,我越来越对这个工作感到恶心。 2010年11月15日,56岁时,我退休了。 在越南过了一段日子以后,生活变得很闲,我只好把时间用来学越南语,否则就太无聊了。 <57-62>2011年到2016年,我一开始为自己写 iOS 和 MacOS 应用程序,然后出售。这样也不错, 但是我想挣更多的钱 ,就开始通过自由职业网站的中介,接一些客户的活。 <63>2017年,我获得了一家加利福尼亚公司的远程工作,为他们做服务器端开发。我学习了 C#、Entity 框架、ASP. NET。当推荐我的人离职了,我就接管了服务器端和数据库开发。这样已经持续了30个月。这是一段很棒的经历,让我掌握了一些最新技能,我喜欢服务器端和数据库编程。 这些时间我一直是一个人工作,但也是团队的一员。整个开发部门都是 远程 的,浏览器客户端开发人员在悉尼,我在越南。我们通过 RESTful API 协作,彼此都是独立工作。 <66!>我喜欢服务器端开发,未来希望还可以做这方面的工作。同时,我正在转向技术写作,学习远程工作所需的新技能。