2022年2月23日,我有幸受邀參與CSDN《新程式員》特別策劃的新欄目——“新程式員和TA的朋友們”系列直播對話第四期,和大家聊一聊開發范式大轉移,作為開發者如何把握技術脈絡?我從API和容器技術、云原生、開源三方面提出了自己的見解并為開發者給出了自己的成長建議,
感謝張雪蕊同學將本場直播整理成文,分享給大家,
云原生帶來開發范式變化
新程式員:近幾年,云原生相關話題逐漸升溫,在您看來,云原生相關技術為如今的開發范式帶來了什么變化,以及為什么會帶來這些變化?
溫銘:對于開發者來說,在現有原生的技術變革里最大的一個變化是開發習慣上的改變,開發者從需要關注運維例如搭建基礎設施等方面,變為只需要關心怎么去使用這些基礎設施以及怎么把它們組合起來去構建自己的業務,很多開發者不用再去關心基礎設施了,可以直接用云原生,云原生架構把使用的基礎設施是云上資料庫還是本地資料庫這些細節直接呈現出來,使得開發者可以集中精神到業務本身,
新程式員:作為云原生領域不可或缺的API和容器技術,這兩項技術的演變歷程是怎樣的?
溫銘:首先聊一下API,我們已知最早的就是AWS的CEO創辦AWS的時候,在開發上制定了一個規則,即所有的系統之間的交換必須要通過RESTful API的形式來進行資料的交換,也是從那個時候開始,越來越多的系統使用RESTful API來交換各種各樣的資料,在去年的時候,全球有95%以上的公司都在使用API來做各種各樣的對外服務,所以我們現在說到的互聯網就是把各種各樣的手機的客戶端連到我們服務端,其實就是API,因此API一直都是一個非常重要的事情,
然后我們聊聊容器,容器是一個非常技術性的詞匯,它的痛點其實也來自于開發者本身,在容器里面大家都會聊到Docker,而Docker其實就是集裝箱的意思,也就是作為開發者希望一次編碼可以到處運行,大家逐漸把各種各樣的東西放到方便管理的容器里面,越來越多的這種輕量級的容器就會取代了以前那種重量的虛擬機之類的服務,容器越來越流行起來,是因為開發者希望自己的程式能夠不依賴于各種環境和作業系統去運行,
總之,API其實是由企業數字化轉型驅動,而容器更多的是由開發者為了能夠在更多的環境上去運行自己的服務慢慢發展起來的,
API改變在線服務體驗
新程式員:請簡單介紹下API現在的應用情況,
溫銘:其實對于非開發者來說,只需要知道我們現在用的所有的電腦、手機等設備,它之所以能夠給我們提供各種服務,其實都是通過API連接到后面的服務端的,而服務端也是通過API把后面各種復雜的系統串在一起的,對于開發者來說,避免不了寫代碼,而寫代碼就會先去設計個人的API然后根據API的定義撰寫前后端的代碼,所以API其實已經不只是在開發者的領域深入人心,而是真真實實地改變了使用各種各樣的在線服務體驗的所有人,
新程式員:API技術目前面臨哪些挑戰?
溫銘:API技術面臨的挑戰更多的來自于有越來越多的企業和服務正在從線下變成線上,特別是由于最近兩年的疫情,越來越多的企業加快了數字化行程,進行線上協作辦公,線上的協作辦公等我們生活中的各種類似改變,會讓API的呼叫次數以及API的并發量變得非常高,所以API面臨的挑戰第一個就來自于API的量非常大,對API的高性能、高可靠提出了高的要求,
其次,用戶需要的同樣的功能有大量同類的APP可以提供,因此APP本身需要快速迭代給受眾新穎的體驗,也就會對API的研發效率,以及API的上線下線、灰度發布等提出了非常高的要求,因此圍繞API的全生命周期,如何盡快的提高研發效率和產品競爭力,也是非常關鍵的一個點,
總起來說,第一個是在底層 API的高性能、高可靠上的挑戰;第二就是如何打通圍繞著API全生命周期的工具,讓整個API的研發效率提升,這兩方面是比較大的技術上的挑戰,
新程式員:您在這方面有什么樣的實踐經歷分享給大家嗎?
溫銘:第一個挑戰其實就是APISIX希望去解決的問題,在兩三年之前去創辦這個專案的初衷其實就是我們覺得在未來的世界,API會越來越重,而且量越來越大,關于第二個問題,其實像海外的Postman以及像國內現在的Apifox、ApiPost等這種圍繞著API全生命周期的一些創業公司,他們就也希望去解決這樣的一些問題,所以能看到大家對于性能、效率、穩定性一直都有極致的追求,
現在API也有非常多新的方向,就算現在的API都是RESTful格式的API,其實也有越來越多的API是用GraphQL的這種方式去獲取的,這算是其中的一個方向,還有一個方向就是serverless,因為有一些服務,我們是希望用戶使用的時候它才啟動,就是說我可能不用常駐在后面的一個服務,而是通過這種容器,通過K8s,通過云上的各種基礎設施,當有用戶請求過來的時候,我再真正地把這個服務給啟動起來,第三個是關于API的一些設計和檔案,這方面其實一直是研發的一個痛點,因為以前在比較粗獷的研發管理平臺下面,我們不太關心檔案和設計,但現在我希望產品能夠快速發布,提高研發效率,那么圍繞著API的檔案、設計,其實也有非常多新的流程或工具出現,
云原生時代,開發者的機遇與挑戰
新程式員:云原生技術的快速發展已經逐漸將整個開發程序、開發流程帶入云端,未來,開發者的代碼呼叫等服務都將被“云化”,開發者身在其中,將迎來怎樣的機會?需要在哪些方面學習提升自己,才能抓住難得的發展機遇?
溫銘:對于開發者和創業公司都是一個非常好的機會,因為不用再去關心基礎設施的運維和它的一些高可用,只需要像搭積木一樣把這些基礎設施拼裝起來,然后把重心用到打磨產品上,這能讓你的產品快速達成一個可用狀態,對于很多的創業公司和開發者來說是非常好的,不用花很長的時間,就可以做一個產品的MVP版本出來,然后讓用戶去反饋、迭代,
新程式員:那是不是也就會意味著開發者在這里面的重要性會榷訓?
溫銘:對于一些初級的開發者或者沒有積累太多經驗的開發者來說,這種云上的東西會逐漸的把他們給替代掉,但是有經驗的開發者,還是每一個公司都希望招聘的人才,云只是幫你去提升了開發效率,但是你這個產品究竟能不能去滿足用戶的需求,你的代碼、寫的應用是不是真的能夠解決用戶的痛點,云上的基礎設施其實是很難幫你做到,
新程式員:作為開發者需要在哪些方面進行提升?
溫銘:第一個方面就是技術的深度和廣度,例如作為DBA,以前可能更關注系統的高可用、資料庫備份之類的東西,但是放到云上之后,這些東西通過云上的一些配置就可以自動完成了,那么DBA可能就應該更關注性能的調優、資料庫的安全等方面,對于普通的開發者來說,你就要花更多的時間去研究怎么設計快取、怎么設計演算法,讓代碼運行得更快,所以需要開發者把代碼本身鉆得更深一些,
云原生,路在何方
新程式員:在您看來,云原生技術未來的發展方向是什么?
溫銘:我覺得云原生其實是剛剛開始,雖然現在大家都在聊云原生,但是從原生概念誕生到落地,也就是最近幾年的時間,就算現在大家都喊著要上云,其實真正上了云的公司的比例也是比較低的;而且就算上了云,很多中國的公司其實還是一個混合云的架構,也就是說,一部分的業務先上云,其他很多的業務還是在自己的私有云,甚至完全的把公有云搬到自己的私有機房這種形式的上云,這并不是真正意義上的公有云,
對于云原生來說,很長一段時間內還要在多云混合云的情況下,考慮如何保證業務的連續性和自身安全,以及后續如何把很核心的業務和資料搬到云上面去,我覺得還有非常多技術上和非技術上的挑戰,甚至是法律層面都需要我們去考慮,
所以我認為云原生不是一陣風一樣的技術,過兩年就沒有了,云原生會影響未來至少10年的技術走向,基于發展方向,我覺得大家可以更多的關注云原生上一些比較流行的開源專案,雖然公有云本身是不開源的,但是整個CNCF里一些基石類的專案全都是開源專案,這和以前我們用 Windows或者是Oracle的時代是完全不一樣的,可以認為在云原生的整個時代里面,開源專案是基石,所以我認為對于開發者來說,我們應該更關注現在有沒有一些好玩的專案,這些專案能不能幫助我們更好地完成我們的業務,
新程式員:您覺得未來很多公司都會上云,那上云能解決他們什么樣的業務問題?
溫銘:我覺得第一個就是成本的問題,以前大家不愿意上云,是因為自己有研發,可以去搭一套自己的架構,但是現在中國工程師越來越貴,人力成本在逐漸上升,這個時候不如去上云,云上的基礎設施也能給我們提供這種服務,
第二個是業務快速發展的問題,比如說有一個上線的線上服務,有時候它的流量很大,我需要去彈性擴容縮容,如果沒有上云,其實是很難彈性擴縮容去滿足你業務本身需求的,
第三個我認為可能會有安全方面的考慮,雖然中國的公司覺得在私有云里面更安全,但是大量事實證明很多的泄露都是從內部開始的,所以公有云的安全級別其實會比自己搭建私有云更高,而且隨著中國的各種隱私資料保護法在2021年開始落地,很多的公司也會出于安全考慮,把自己的資料放到一個更合規、更安全、有專業安全團隊的云廠商去服務,
開源與商業化的平衡
新程式員:從APISIX到現在API7,這個程序階段中有一些什么樣的變化?
溫銘:APISIX是Apache軟體基金會的頂級專案,和有些專案不同的是,APISIX是我們公司捐獻給Apache軟體基金會的,所以我們最侄訓是為了實作商業公司的利益,會作為APISIX的原廠去提供一些支持商業化的產品,
這種形式在中國會越來越多,因為工程師其實不僅可以通過自己的代碼去找一份作業,也是有機會去寫一些世界級的開源專案,或者開一家全球化的公司去實作一個更大的夢想,這個其實是我們去捐贈APISIX和創辦商業公司的一個原因,
新程式員:那您認為開源和商業化之間的關系是怎樣的?
溫銘:我覺得開源和商業化其實并沒有一個很直接的關系,并不是不開源就很難商業化或者開源專案就一定能做好商業化,其實是并沒有必然聯系的,有一些開源專案的商業公司其實也沒有做成功,比如說像Docker,所以我們需要更理性的去看開源,開源其實是能夠幫助一個專案更快地去觸達通過商業公司觸達不到的用戶,能夠讓你的專案更快地向前迭代,
關于商業化,其實我們從來不會羞于談商業化,因為作為一家商業公司來說,賺錢就是利益的驅動點,很多的開源商業化的公司,開源的專案推出,最終的目的就是希望能夠從開源的企業里面去做一些付費轉換的,付費轉換就算是1%或者2%,只要開源用戶基數足夠大也會有非常多的用戶轉成付費用戶,那么我們也能夠從中通過開源用戶對開源社區的貢獻,最終達到商業公司去賺錢,然后把這些利益又分給開源的貢獻者,我覺得這其實是很良性的回圈,
我們需要找到怎么從開源變成一個商業付費的點,而且要平衡好,才有可能把一個開源商業化公司做起來,這個挑戰很大,因為大部分開源專案的作者都是工程師,工程師做商業化,其實并不會那么容易,很多開源專案需要商業化的時候,其實是在外面找了一個有商業敏感度的人來當CEO,或者是找這樣一些合作伙伴來,要把工程師的思維轉變成商業思維,其實對于很多的工程師來說挑戰還是蠻大的,因此我們需要更多的是在于思考問題的角度,怎么把個人的成就感,從代碼轉移到創業,
新程式員:國內開源存在的普遍問題是什么?
溫銘:我覺得對于開源商業化公司來說,中國其實是一個很好的成長的土壤,但并不是一個很好的商業化的土壤,我覺得這會是中國開源商業化公司面臨的一個問題,我能在中國識訓非常多開源的用戶,但是并不能識訓太多付費用戶,這其實是有多個原因的,第一個原因是中國并沒有很強的為服務或者是一個看不見的基礎軟體付費的意愿,
中國的很多企業更愿意為一臺硬體設備來付費,或者更愿意為一個能夠坐在我公司里面給我寫代碼的外包人員來付費,但是他不愿意為一個看不到的虛擬的基礎軟體來付費,我覺得這是一個觀念上的問題,我覺得這應該是中國所有的開源商業化公司面臨的同樣問題,而且這個問題是靠自己的努力很難去解決的,這可能需要很多人很長時間的努力才行,就像現在大家逐漸習慣去電影院看電影一樣,它需要一個時間和觀念的轉換,
新程式員:國內開源發展的問題對云原生技術發展將產生了哪些影響?
溫銘: 我們經常會問到一個問題,為什么一些關鍵的、基礎的技術往往掌握在外國的工程公司手里?其實面臨這類問題的不只是基礎軟體的問題,我覺得一個好的解決方案就是,中國需要有更多全球化視野的創業者,我們應該在第一天就把自己定位成一個全球化公司,這也需要有更多這樣的工程師、投資人或者媒體,能夠更多的去關注中國正在做一些非常好的基礎軟體硬體的創業公司,然后一起去打造這樣一個更好的環境,
API7:未來展望
新程式員:API7在之后會有一些什么樣的計劃可以跟大家分享?
溫銘:其實對我們最大的一個計劃就是全球化,因為我們在中國已經有非常多非常好的標桿用戶,對于infrastructure這種基礎軟體來說,它是沒有語言、沒有文化、沒有國別差異的,能夠滿足中國企業用戶的需求,也可以滿足海外用戶的需求,所以全球化會是我們未來幾年最重要的一個事情,我們會把APISIX讓更多海外的工程師和公司知道、使用,同時我們也在做我們的云產品,然后在海外我們也會有更多的付費用戶,最終它就能夠形成一個良性的回圈,
以上是我在本期直播的分享,希望能為開發者朋友們帶來啟發,另外,我在《新程式員003:云原生和全面數字化實踐》還寫了一篇文章:《API-現代軟體基石與數字世界的連接者》,感興趣的朋友可以在這本書中閱覽,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/433346.html
標籤:其他
上一篇:思維導圖四(SpringBoot、SpringSecurity、SpringCloud Netflix、Swagger、Dubbo、zookeeper)
