直播軟件的功能很重要
既然市場中競爭很激烈,在選擇直播軟件的時候也可以看看具體的功能有哪些?要是功能齊全,也可以更好的實現流量變現,現在電腦視頻的直播有很多限制,而使用攝像頭也會比較麻煩,要是可以直接使用直播軟件,就可以隨時進行溝通,也不用擔心電腦限制或者是其他限制。
渠道變多
想要讓軟件的流量實現變現還需要對不同的渠道都做詳細的了解,現在本身對網速和流量的要求都比較高,很多人在使用的無線網之后確實速度便很快,也可以在很多的視頻軟件或者是其他的軟件上進行變現,正是因為現在具備了這些特點,我們在選擇使用的時候才會更加放心。
吸引更多粉絲
想要變現還應該吸引更多的粉絲,平時在做直播的時候除了需要提升口碑之外,還需要選擇合適的直播軟件,現在就是有很多的軟件可以讓創業者直播,提供了創業的機會還可以吸引很多的粉絲,讓更多人都認識你,在這樣的基礎上再進行變現會更加容易。
總之,我們希望大家在選擇直播軟件的時候也都可以看看哪些更加火爆,在使用的安全性上如何?要是都可以確認這些基本情況,也可以保障得到更多人的支持,而現在本身就有很多軟件自身的口碑很好,在變現過程中也有很多的機會。
]]>你注意我的措辭,是拉近了,并不是真近了。
人與人之間一定有些差別的,這個你不能否認,連學校之間都會有差別,何況人呢。
但互聯網上,你感受不到這一點的存在。
我舉個例子,網絡上很流行的爽文套路。
比如這么一個橋段。
阿里P10,功成名就,股票套現離職,退隱江湖,相妻教子。
媳婦是一個互聯網公司的技術經理,項目延期,被產品經理壓需求,有一天P10騎著小電驢去接媳婦,正在開需求會,媳婦被訓。
P10:”老婆,回家吃飯了”,被連扇三個巴掌, “注意你的身份,叫我林經理。
然后P10默默的看了一會兒,說:”這個需求根本沒有價值,而且你們的技術架構有問題,連最基本的負載均衡和讀寫分離都沒有,前端竟然還是jquery,應該用vue重寫,照你們這樣做下去,這次促銷活動流量來了,首頁必掛”。
然后被媳婦扇了一巴掌:”廢物,快滾,你懂什么,這里沒有你說話的地方。”
這個時候公司CTO進來了,看到P10,兩腿顫抖:“參見P10大人,這是十萬股票,煩請P10大人指點迷津……”
周圍驚呼:”什么,什么,他就是阿里P10。”
劇終。
這種橋段是程序寫的,主人公的名字,職業,可以隨便生成,故事依然完整。
設計這種軟件的人,寫這種程序的人,和沉迷于這種爽文的人,看似都混跡于互聯網,但并不是一樣的人。
就像開發抖音的人早就財務自由了,但是沉迷于抖音的人,就未必有這么幸運了。
所以互聯網上的聲音,不一定有那么準確。
這其實是一句客套話。
如果說的不客套,也可以說,互聯網上大部分聲音只是基于自身對別人的揣測。
其實每個人都是這樣,我們每個人都不例外。
我曾經一度覺得孩子念什么書呢,我教他交易好了。
但很快我就意識到,自己錯了。
我覺得像吃飯一樣容易的動作,不一定能夠讓自己的孩子也學會。
比如我可以一年365天,除了吃飯睡覺,就做一件事,做個幾十年也無妨。
就像你給我個餅,給我杯水,我連續吃一年,也不會膩。
我生病了,疲勞了,也會交易,即使走路,即使上廁所,任何能用的時間,都會拿來用。
你很難用什么聲色犬馬干擾我,如果我在工作。
這樣的人我見過很多,以至于我誤以為這是人類的基本功。
但實際上不是的。
我這么認為是因為我見到的絕大部分人,都畢業于985,畢業后又被類似華為阿里這種高強度的企業打磨過幾年。
說穿了,是等到我們相遇的時候,他們已經被反復的淘汰,篩選,經過行業的打磨,變成了那副樣子。
我兒子還是人最初的樣子。一會兒吃點零食,一會兒玩玩IPAD。
他沒有辦法長時間的,像機器一樣的學習工作。
換句話說,其實大部分網民的狀態和我兒子是差不多的,這就是人類的本性,孩子就是這樣,未經訓練的大人也是。
但經過訓練的大人,可不是的。
十四年前,我研二做實習生的時候,第一家公司,老板指著座位下的行軍床,說,送給你,我看了還很納悶,后來發現人人有。
當然這很正常,我第一個老板是華為工號60號,這是他從老東家帶出來的習慣。
我大部分同事這么多年以來都是007,錢給足就開工,開工沒有回頭的那一天,下一次相見要么ICU,要么就已經財務自由了。
我見過同事過勞猝死的,見過跳樓,不止一次。
其實我內心很平靜,這不是冷漠,而是習慣,通信電子,互聯網,各個圈子都是這樣,大家都習慣了。
如果你見到的每個人都是工作狂,你會覺得他們一點也不狂,不這樣才不正常。
當然,其實我們是不正常的。
因為對比歐美的同行們,一周工作40到50個小時,而日本的同行們也不過工作50個小時出頭一點。
很多人不理解這么做的效果。
十幾年前我剛畢業的時候,大部分同行都說,咱們這么做,其實效率很低,人家老外雖然工作時間很短,但是效率很高。
這個觀點是不是正確我們姑且不論,咱們來看看結果。
我剛畢業的時候,雅虎的楊致遠是很牛的,那時候阿里是個什么東西?
對不起,阿里連個東西也不是。
今天的阿里怎么樣,不需要我介紹。
當年我剛念本科的時候,我們只知道ICQ。
OICQ,還只是咱們山寨人家的一個小小的即時通信工具,剛剛冒出來,就像今天公司里流行的免費的飛秋一樣。
我們拿U盤,去網吧里排隊下載OICQ。就是那樣一個時代。
今天的騰訊是個什么存在?霸王龍?無法描述。
有人會覺得互聯網是沾了人口紅利,咱們國家畢竟人多嘛,互聯網起來不稀奇。
那我們換個例子。
二十年前,我們系的人,進IBM,進思科,是最好的選擇。
華為呢?以月薪4000塊的價格在系門口排隊招本科生,是個人就要。
一個系,幾乎被華為打包全部拉走,因為他們出價最高,比思科IBM都高。以至于下一年,華為被學校列入黑名單,限制招人額度。
這就是當時的對比,土狼與獅子。華為就是土狼,除了會給錢,床墊文化,別的啥也沒有。
但把時光的鏡頭往回拉。
思科,IBM,加拿大北方電訊,貝爾,朗訊,諾基亞,西門子,一個個我們這一代人耳熟能詳的名字,如今在哪兒呢?
這是個很有意思的結果。
獅子與土狗,誰對誰錯不重要,重要的是,今天獅子不在了,阿里,騰訊,華為,土狗們都變成了霸王龍。
我不是在說誰對誰錯,我只是陳述了一段歷史。
我年輕的時候也曾經自我懷疑。
我第一任老板80年代末就加入華為,后來去美國創業八年,又回國創業。
他堅定的認為,咱們在計算機互聯網領域,一定會快速成長為全球第一。
我還和他辯論過。
他就拿星際爭霸打比方,星際爭霸里最牛的是慢慢造航母么?不是的。
是快速出狗,快速出三級瘋狗,鋪天蓋地。
你用周星馳的電影講,叫做天下武功,唯快不破。
我當年是沒有辦法理解的,我也沒有覺得快和變態,有什么牛逼的地方。
在我內心深處,這終究是不長久的。
但事實一再的告訴我,我看錯了,我老板看的很準。
我曾經以為今后的年輕人,不能像當年一樣瘋狂了。
后來我發現他們比當年的床墊文化有過之而無不及,如果說前人是打了雞血,他們簡直像打了雞血石。
我曾經以為薪水這東西,終歸有上限,再怎么地,咱們的薪水不會比硅谷更多了。
否則資方為啥不去美國設立公司呢?
但后來發現我又錯了。現在的年輕人動不動期權就給八位數,九位數,一言不合就上科創板,市盈率高的就像市夢率。
我不是一個很軸的人,很軸的人像鴨子,肉爛了嘴都不爛。
我更相信結果。
我當年第一個老板告訴我,你以為增長是一個曲線向上么?
不是的。
它是一條線往前走,忽然一個點就爆了,從此核裂變式的一傳十,十傳百,瘋狂是會傳染的,財富是有聚合效應的。
忽然有一天,你就會發現我們從瘋狂勤,成了變態勤,雨后春筍的上市,員工瘋了一樣撲向海外各個市場。
無論我是不是真的懂了,他說的那些話,在后來的歲月里,一件件被證實了。
我知道很多人并不喜歡這種狀態,但事實是不以人類的意志為轉移的,這才是市場的魅力。
所謂的財富效應,并不是人人都會發財,也許100個軟件從業人員,只有一個人趕上了上市。
但這就夠了,這就叫財富效應。
這一個人的故事會吸引另外99個像打了雞血一樣,因為他們看到了案例,而且就發生在身邊。
如果是2個呢?那98個就會像打了雞血石一樣,這就是過去的幾十年里,發生的和正在發生的故事。
無論你喜歡還是不喜歡,現實就是這樣,趨勢就是這樣。
如果說我第一個老板那一代做軟件的人年輕的時候,我們國家的軟件行業就像鐵木真最落魄的時候,身邊只有19個人。
那到今天,鐵木真早已在草原上稱汗了。
讀者肯定要問了,西風,你小子離題萬里,我們問你對于蓬佩奧的威脅怎么看?
對不起,我忘了還有小蓬同學這回事。
小蓬同學說了什么,真的有那么重要么?
800年前,花剌子模干掉了成吉思汗的商團,來使說了一堆嘰里咕嚕難懂的話。
成吉思汗只回復了六個字:“你要戰,便作戰”。
眾人都哄笑起來,帳篷內外充滿了快活的空氣。
]]>新的營銷方式增加產品銷售量
微信小程序商城這種營銷方式相對來說是非常不錯的,通過這種方式也是可以有效的將自己的產品推廣到周圍人的身邊,而且網絡的傳播相對比較迅速,可以被更多的人迅速關注到,這種方式是可以很好的讓自己的產品得到更好的宣傳,進而使得產品的銷量得到一個質的改變。不少個體工商戶通過這種方式,也是使得自己的產品銷量發生了非常大的變化,通過這種方式也是迅速積累了一定的財富。
可實現,營銷效果好
微信小程序商城相對來說平臺也是非常不錯的,不像其他電商平臺一樣,這種電商平臺的所有權是歸個體工商戶的,個體工商戶通過這種方式可以更好的將自己的產品進行有效宣傳,這是因為他們可以基本上實現精準營銷,將自己的產品推給身邊有需要的朋友。這種營銷方式,相對而言也是可以直接降低他們的運營成本。
總而言之,個體戶在運營的過程中,也是會遇到各種各樣的問題,但是遇到問題的時候要調整思路,采用合適的辦法有效解決目前所遇到的問題,而不少個體戶生活在遇到經濟形勢相對比較低迷的時候,他們也是采取了新的營銷方式。這樣的話使得他們的產品銷量得到更好的提升,從中也是可以取得相對比較好的收益。
]]>老朋友Feng Chen Wang不久將發售他們和Converse的聯名Jack Purcell,上周聯系到我們,迫不及待想要體驗這一功能。
右上角點開“···”,很容易就能找到“分享到朋友圈”這一項。
在朋友圈里點開后,可以看到小程序首頁的視頻,想要注冊則會彈出提示,下方也有按鈕引導用戶前往小程序,進一步完成注冊或購買。
雖然沒有ios用戶參與分享,但僅在本周安卓手機上的一波測試,已經吸引了一大批朋友圈里的用戶注冊該小程序,效果超過預期!
Feng Chen Wang的大膽嘗試不僅驗證了小程序分享朋友圈的功效,也給了我們極大的信心,友好速搭正在全力配合Feng Chen Wang準備這一聯名系列的發售
]]>查看微信代運營公司資質是否健全
其實,在挑選微信代運營公司的過程中,公司的資質是否健全,可以在一定程度上說明代運營公司的實力,如果說公司資質缺少的話,也是可能會反映出,公司的實力,相對來說并不是特別好,而他們的專業性也會受到質疑。因此公司的資質是非常關鍵的,在選擇過程中是不能忽視的。
了解運營公司成功案例
另外,選擇微信代運營公司的過程中,我們要盡可能了解,代運營公司曾經有過的成功案例,這些案例也可以表明公司的實力。通過他們的服務也可以了解到,他們究竟是否具備相應的專業性。如果一家公司沒有微信代運營的成功案例,那么他們的專業性會在一定程度上受到影響,無非是在選擇的過程中,也是大概率不會選擇他們的。
總而言之,判斷微信代運營公司是否具備專業性的方法是有很多的,但是公司的資質情況,以及他們所成功代運營的案例,可以在很大程度上說明公司是否具備專業性。如果在這個過程中盲目進行選擇的話,是很有可能造成自己的經濟損失,而且如果所選擇的代理公司專業度不夠,那么,他們為我們提供的服務自然而然也就難以達到我們的預期。
]]>專輯創建的方法非常簡單,新手最好是采用指引創建的方式,可以在網頁左邊導航欄目當中找到專輯,然后按照它的指引創建就可以了,而原來網頁當中的模塊功能可以在專輯功能當中繼續使用。
微信專輯功能
先和大家分享一下微信專輯功能,用戶成功開通專輯之后,可以在自己的公眾號當中新建專輯,并且可以加入原創內容當成是專輯內容,目前專輯可以自己定義三個項目,分別是專輯封皮、專輯名字和專輯簡介。
專輯文章的前面會顯示呈現相關信息,用戶可以進入專輯持續閱讀了解,專輯也可以分享給自己的好友或者在朋友圈里面轉發,也可以直接收藏到微信當中,因此大家可以看到,專輯的功能是非常強大的,用戶只要開啟原創聲明就可以直接使用專輯的各種功能。
專輯上線時間
按照微信方面的介紹,一個專輯里面最多囊括50個原創文章,另外專輯可以分享給自己的好友或者朋友圈,這個功能灰色的時候不能分享到在看里面,這也證明這個功能目前正處于測試階段,對于廣大公眾號作者來說,距離正式應用還有一些時間。
專輯開通步驟
專輯開通步驟是非常簡單的,用戶只需要按照下面的步驟操作就可以了,首先需要進入電腦端的微信公眾號,然后在里面找到功能,在功能里面找到專輯,點擊專輯直接申請就可以了,申請成功之后就可以使用。
]]>微信小程序制作主要分為兩種形式:
一、代碼開發,定制開發
這是由很多專業的微信小程序開發工程師按照微信官方的代碼形式開發,這種形式開發出來的小程序按照商家和企業提出的需求,頁面和樣式都是不同的,功能也比較豐富,但是由于開發成本高。開發一個小程序的成本在最少幾千至幾萬不等,一般不適合中小型企業。
二、使用微信小程序模板工具開發
這類開發是不需要編程的,只需要在模版里面把圖片、文字、音樂等插入進入,便后設置效果,編輯好之后可以直接使用工具自動生成代碼,只需要上傳到微信審核就可以上線了。無名指小程序有專業的微信小程序經典模版供您參考。
以上是講述了微信小程序制作的兩種方式,商家或企業可以選擇適合自己的方式。
對于中小企業來說,做小程序,如果快速盈利才是核心,所以企業前期不必考慮太多,是否要原生開發,做到體驗最好,做得比較有創意,這要看看自己的預算是否充足,因為小程序的技術開發成本只是其中一環,另外還有運營成本,推廣成本,這些都是要考慮的,所以在預算并不多的時候選擇合適自己現有模式能運營的才是最好的,所以大多是建議小企業用模板開發,等做出結果,有經驗再考慮是否要原生開發,定制系統。
]]>兩者有效關聯之后,可起到有效引流的作用
微信小程序是非常方便的,但是也是存在著一定那比較顯著的特點,如果說將微信小程序和公眾號進行關聯的話,那么這樣是可以在很大程度上使得公眾號可以通過微信小程序的方式實現有效短信留,而最新引流是可以在很大的程度上為公眾號的產品起到相對比較大的推動作用。
及時發送相關消息,起到有效營銷的作用
公眾號相對來說,并不能夠及時的發送一些信息,而與小程序相連的話,也是可以在很大的程度上,及時將一些信息進行分析匯總。兩者的結合也是可以使得公眾號可以通過微信小程序將顧客的購買行為變成為現實。這樣的話就可以使得他們的營銷作用轉化為真正的消費行為,因此兩者的結合相對來說還是非常具有意義的可以起到意想不到的效果。
微信小程序是可以在很大的程度上起到非常不錯的營銷作用,而公眾號是可以擁有著非常龐大的流量,將兩者進行關聯運行的話,是可以起到事半功倍的效果。這是很多的媒介運營人員,他們看中信小程序和公眾號關聯的一個重要作用,畢竟雙方是可以起到相輔相成的作用,可以將營銷的作用變得更加效益化。總而言之,將兩者進行有機結合,也是可以起到非常好的宣傳效果。
]]>小程序真正上線是在2017年1月9號,但是真正開始運營和推廣是在2018年年初,而此刻則是進入小程序最好的時刻,此刻的小程序就像2011年年底、2012年年初,移動APP的市場情況,商業化才剛剛開始。
為什么我會定義小程序在2018年才正式上線的?因為在2018年年初,微信上線了小程序的下拉入口。2018年年初到2018年8月份,做小程序的只要你的數據做的還ok,只要你還能上阿拉丁指數的TOP100榜單,基本上都是被中國的各大投資人堵著門口投資,這段時間是小程序創業者的一個非常高光的時刻。
隨著微信對于運營規則的管制,在2018年年底,小程序就進入基礎建設期,單純玩流量的開始被打壓下去了,微信希望引導開發者去做一些為用戶創造價值和服務的事情。可以看到2019年小程序取得了巨大的發展,但是由于微信的這種管制也導致了2019年小程序的商業化是比較慢的。為什么2020年是小程序商業化非常好的一個時機?因為微信的管制是為了后面更加健康的放開。
2020年是小程序商業化的加冕之年,一個是對比移動APP的市場發展軌跡,另外一個是今天小程序的底層已經非常成熟了。這種成熟來源于C端用戶已經越來越龐大,DAU已經突破4個億,每天中國有超過4億人在用;提供信息和服務的小程序已經超過了400萬個。
通過回顧小程序這三年的發展,總結一下,此刻進入小程序的最佳時間,未來的3~5年,小程序會誕生出很多優秀的創業者,有很多人會創造出來能夠寫入中國互聯網發展史的產品。
小程序全面爆發的8個現狀
2020年小程序為什么會全面爆發?從八個方面來解讀。
第一,用戶基礎足夠大。小程序的DAU在前兩個月最高的時候已經到了4.5億,現在應該穩定在4.3億以上。
第二,替換率達53%。阿拉丁每月發布的小程序TOP100榜單有很大的替換率,在今年二月份的榜單中,TOP100替換率達到了53%,很多優秀的新面孔開始嶄露頭角。
第三,現在小程序已經超過400萬個,相信截止到今年年底,小程序的數量會到達600萬個,明年會達到1000多萬個,小程序的增長速度是非常驚人的。
第四,傳統行業大遷移。這次疫情加速了小程序的發展,疫情讓很多線下的商業都無法正常開展,都是通過小程序來連接自己的客戶,來進行服務。通過阿拉丁小程序統計平臺,我們能看到大量的中國傳統行業的公司進場,而且取得了非常大的收益,比如杰克瓊斯、ONLY、VEROMODA。
第五,互聯網企業大進軍。越來越多的互聯網企業開始大力的把小程序作為商業布局的主陣地,拼多多、京東、蘇寧、當當等公司在小程序上也取得了非常好的成績。
第六,現象級的小程序直播。微信官方上線的小程序直播插件,其流量爆發增長。朋友圈每天可以見到大量的廠家在做直播,已成新的現象級商業行為。
第七,小游戲DAU 1億+。不管是PC互聯網還是移動互聯網時代,都有一個重要的標志——游戲,游戲品類是支撐這個產業發展非常重要的一部分。2020年2月份,小游戲的DAU破1億。一旦在生態里邊游戲能夠發展起來,那就意味著巨大的用戶習慣被洗到小程序上,而游戲里邊非常火的就是媽媽類的游戲和小孩子的游戲。
第八,小程序的社會正能量。疫情期間,我們去小區、去大廈、去很多餐廳的時候,如果在北京都要掃一個健康寶的小程序,其他地區也是,只是名字不同。小程序在這次疫情期間展現出來巨大的正能量和獨特的魅力,同時巨大的用戶使用習慣被洗到了小程序上。未來不止傳統零售行業,任何行業都要順勢,通過小程序去連接用戶。
小程序互聯網的10大機會
前面我們講了這是小程序創業的最佳時間,那么它會有哪些機會?
第一,微信搜索的機會。我們重新回頭去看,在中國PC互聯網的時代,占據頂端的是百度和谷歌。如果你能夠占據搜索流量,就一定會成為生態里面的頂級玩家。
移動APP,由于本身的屬性,里面的信息是沒法互聯互通的,但是在微信里,小程序的技術標準是微信定的,微信有機會將未來幾千萬個小程序的信息和服務統一檢索出來,新的結構化的信息將產生新的巨大商業機會。小程序來自微信搜索的流量在不斷放大,而且在加速放大過程中。
第二,小程序直播。相比于抖音、快手、淘寶直播,我認為小程序直播擁有更大的機會,因為通過小程序直播的方式,可以讓小程序去連接后面服務的閉環,通過后面的一系列方式跟這些用戶建立連接,比如拉到群里等,遠勝于在抖音和淘寶直播上的流量結構。商家與用戶之間的距離會更短,也就是很多人提到的私域流量的機會。
第三,視頻號。視頻號跟小程序有什么關系?首先視頻號下面有長鏈接,可以鏈接到公眾號的文章里面去。其次,隨著視頻號的發展,上面一定可以彈出框,當我們在直播講解產品的時候,它就會直接彈出小程序,鏈接到小程序上去進行購買。當巨大的流量在視頻號里邊承接,然后通過小程序非常完美的承載,再加上微信的支付交易閉環以及分享功能,通過視頻號和小程序這樣的結合,一定會誕生出來新的商業模式和商業機會。
第四,新獨角獸的產生。中國未來很多的獨角獸,從0~1,從1到3,只需要小程序就可以了,后面可能會去做自己的APP,甚至做自己的PC網站。
在2019 年,單純從小程序上誕生和發展起來的獨角獸,有來自于長沙的興盛優選,來自于蘇州的同程生活精選,這兩家目前估值都超過10億美金,而且今年他們的估值一定會比這個更高。今年一會誕生新的小程序起家的獨角獸公司,而且不止一家。
第五,傳統線下OMO真的到來,即線上線下真正的結合。比如做線下零售連鎖店的怎么連接你的客戶?跟客戶講,你有一個網站,客戶回到家會再去打開你的網站嗎?他記不住的,因為這個路徑太長了。讓客戶掃你的APP去下載,用戶也不會去做的。但是通過小程序是非常方便的把用戶連接進來的,而且有機會做成一個私域流量。因為微信在加強關于小程序連接用戶的能力,特別是推送的能力。
第六,中國電子商務格局巨變。你在天貓淘寶京東這些中心化的平臺開店是比較痛苦的,因為交易成本很高,而小程序里面一不需要比價,二不需要沖榜,又有大量的用戶,而且可以天然完成交易行為和路徑。
中國的電商格局今天已經發生巨大的改變了,除了阿里、京東、蘇寧、唯品會這些電商巨頭,最近又多了抖音和快手。不管是直播這種技術的形態,還是小程序底層的能力,都將改變中國接下來的電商格局。
第七,支付場景競爭前移。當我們現在去中國很多二三線城市,線下消費掃碼出來是小程序的時候,其實小程序悄然將中國移動支付的市場戰爭前移了,支付戰爭變成了場景入口戰爭,再一次改變市場格局的是新的小程序思維,這對線下消費習慣的改變和新商業機會的誕生都值得我們去思考。
第八,讓新的品牌完成新的連接。新的技術驅動的其實是用戶對于品牌新的認知,不單純是獲取流量,所以小程序一定會誕生出來屬于自己的品牌,就類似于天貓里面誕生的淘品牌,抖音里邊誕生屬于抖音的品牌是一樣的道理。對于品牌和商家如何通過小程序去連接你過去的用戶,并且將品牌的新形象、新的心智植入進去非常重要。
第九,軟硬結合和人工智能。比如說豐巢智能柜、智慧保安視頻門禁這些都是非常好的軟硬結合和人工智能的案例,我相信今年會跑出來更多。
第十,第三方的機會。比如小程序里邊的SaaS公司,專門幫別人去建小程序的,很多人不會自己去建小程序,你可以交給第三方,很快就幫你做出來一個。
]]>本文根據阿里云原生團隊資深技術專家的直播整理而成,從領域驅動設計(DDD)、Reactive、Service Mesh 和代碼智能等幾個方面展開,聊一聊他眼里的軟件開發的發展趨勢。
今年 4 月份的時候,InfoQ 發布了軟件架構與設計的趨勢報告。InfoQ 在技術趨勢報告中將軟件架構分為了 4 類,如下圖所示,從左到右依次是創新者(Innovators)、早期采用者(Early Adopters)、早期大眾(Early Majority)和晚期大眾(Late Majority)。在報告中可以看出,很多技術如微服務(Microservice)、領域驅動設計(Domain-driven Design)等已經非常流行,并成為如今軟件開發行業的主流了。對于早期大眾和晚期大眾部分的架構設計而言,很多部分與領域驅動設計相關,比如微服務、CQRS、事件驅動等。
在本次的分享中,也會介紹為什么領域驅動設計相關的技術會在InfoQ技術報告中占據如此重要的位置。并且也將會根據領域驅動設計展開到其他相關技術,比如 Service Mesh 等。
領域驅動設計(Domain-drivenDesign)
GitHub 上有一個 DDD 實踐指南,從下圖中可以看到領域驅動設計所解決的問題從架構設計一直到代碼層級,所以對于整個軟件研發周期來說,DDD 方法論還是比較流行的。而指導微服務劃分的一個重要理論基礎就是領域驅動設計。之前談到領域驅動設計,大部分時間總會探討如何識別限界上下文,如何使用戰術或者戰略方法等,而本次分享中則會介紹一個主流的趨勢,那就是 DDD + Reactive 。
之前的時候,領域驅動設計有分層結構、事件驅動等概念,但是也存在一個很大的問題就是將單體應用劃分成多個應用的時候,如何解決應用之間的通信問題。領域驅動設計中有限界上下文映射(BoundedContext Map)的概念,來解決兩個限界上下文之間的通信。之前 DDD 談到的解耦合方式主要是基于消息實現異步化的理論支撐,但是具體如何去做卻沒有具體的技術棧幫助大家實施。當然了,針對于每一種語言而言,具體實現可能不同,因為一些語言是純異步化支持的,可能已經內置了協程支持,因此在不同的技術棧里面會選擇不同的解決方案。本次分享中比較偏向于 Java 的技術棧,但是需要強調的是 Reactive 并不止針對 Java 。
Reactive 的好處在于使得兩個限界上下文之間的通信變成一個技術棧,這樣就可以使用Reactive 實施了。JDDD 是一個新的項目,其基于 Spring Data 實現。JDDD 也是一個開發包,其主要思想是讓開發者通過開發包以代碼的方式來呈現 DDD 要表達的思想。前面所提到的微服務則非常依賴限界上下文,借助它來確定邊界并進行劃分。此外,在 Could Native 和 FaaS 方案都會提到是面向事件驅動的,但是事件(Event)這一概念在領域驅動設計中很早的時候就已經提出來了,如果涉及到事件或者異步化相關的事情,就需要關注事件和領域驅動設計的關系了,當然目前來說,這一點已經非常成熟了。還有一點就是 DDD + CQRS , CQRS 簡單理解就是讀寫分離,比如 MySQL 數據庫使用 Master-Slave 機制使得讀數據和寫數據分開, Master 主要負責寫入, Slave 主要負責讀取,而 CQRS 也會在 DDD 中發揮很大的作用。目前來看,在整個架構設計里面,領域驅動設計是非常主流的,能夠幫助我們解決一些設計上面的問題。
Reactive
DDD將應用劃分成多個小的限界上下文,接下來需要解決如何通信的問題了。而Reactive就提供了不同應用之間進行通信的指導方案,當然了Reactive也提供了對應的技術解決方案,比如Async能夠提供全異步化支持,當然這里的異步化只是說基于異步化技術。此外,還有Observable模式,可以說這是一個架構和設計的模式,這一模式應用很廣泛,最早是由微軟提出的,比如一個表格發生變化,其他表格也會根據這個表格發生相應的變化,這就是Observable觀察者模式。針對Java程序員而言,可以發現Spring在主推SpringReactive,很多技術方案都是和Reactive相關的。此外,還有Message和EventDriven,FaaS和CouldNative在做通訊的時候都需要根據Message和EventDriven進行設計。
RSocket
在InfoQ的軟件架構和設計趨勢圖中,在早期采用者階段有一個FunctionProgramming,在早期大眾階段則有一個ReactiveProgramming,而在創新者部分則有一個RSocket&ReactiveStreams,大家對于這個技術可能了解比較少,因此在本部分簡單介紹一下。如果大家關注Spring官方站點,那么可能了解Spring5.2版本已經內置了RSocket的支持,但是并沒有很多相關文檔來介紹相關技術。前面提到,Reactive是讓DDD的通訊模型有了理論基礎,所以這個RSocket協議就是為了實現Reactive理論基礎設計一個通訊模型。
如果大家了解Reactive語義,就會知道有一個背壓模式。當然,背壓模式與斷路保護模式類似,兩者的機制都是為了解決限流問題,因為消費方或者服務提供方因為突發流量不能支撐導致應用雪崩或者宕機。傳統模式最早使用消息隊列,是消息提供方主動將消息推送給消息消費方,此時存在的問題就是消費方消費不了,但是消息提供方還會繼續推送消息,使得消息消費方無法支撐導致系統不穩定。
后來出現了Kafka,其使用Pull模式,也就是需要多少條消息就去拉取多少條消息,因為Kafka支持消息堆積。但是使用Pull模式則需要設置時間間隔,此時出現的問題就是消息輪空怎么辦?也就是當發送消息時發現消息沒有就會輪空,此時就會不停地向Broker拉數據,這樣就會造成網絡浪費。所以在Reactive里面的背壓是將原來的推送模型增加了開關,當消息到達一定數量之后就不要推送了。這種主動推送機制的好處在于性能特別高,不需要去拉取,也不需要保存消息位點。總之,背壓機制能夠設置所能夠支持的最大拉取數量,如果在閾值的范圍內能夠做到性能的增高,同時也能保護消息的消費方。
在通訊方面,RSocket有四個模型,比如Request和Response、發布-訂閱模型、日志采集等。在使用DDD實現應用劃分之后,兩個應用之間需要進行通信,而RSocket就提供了四個模型,基本涵蓋了應用之間通信的場景,此外還提供了MetadataPush,比如所有的集群變化或者需要做限流都可以通過MetadataPush來實現。
RSocket還可以做對等通訊,傳統的通訊模型都是Client-Server模式,但是在RSocket下通信都是對等的,沒有Client和Server的分別,相互之間都可以進行消息發送。前面所提到的RSocket的設計模型和理念都是為了解決基于Reactive通信應用的各種問題。雖然RSocket這個技術方案并沒有得到很好的推廣,但是已經有很多技術社區提供支持了,比如Spring在5.2版本中就增加了對于RSocket的支持。因為推出的通信協議是Reactive的,但是背后需要涉及到數據庫操作或者其他等如果不是異步化的,就需要進行處理,Spring在今年發布SpringBoot2.3的時候就完善了對于Reactive的支持。舉例而言,從最前端的網關層通過Spring的WebFlask就能夠保證是Reactive的。
中間件、通訊模型以及NoSQL產品都是支持異步化操作的,能夠解決高并發問題,這些特性在很早的時候就已經添加到Spring里面了。此外,在開發的時候還有一點比較關鍵的就是數據庫,每個Java程序員在訪問數據庫的時候首先要設置數據庫連接池,需要考慮數據庫設計方案以及考慮哪一個連接池性能最高等問題。這是因為數據庫不屬于異步化的,需要通過創建多個連接來解決并發的問題。因此,在Spring的R2DBC里面增加了對于數據庫異步化的支持。目前Spring能夠支持數據庫的異步化了,但是還需要一段時間的等待,因為R2DBC和JDBC一樣,也是一個規范+驅動,但是基于JDBC的上層框架非常多,比如Hibernate、MyBatis等,而基于R2DBC的框架并不多,目前只有一個SpringDataR2DBC。因此,國內很多的開發者首選還是MyBatis。如果存在實現異步化的意向,那么基本上是從最開始接入的網關層協議一直到NoSQL數據庫,包括存儲文件系統,全部都實現異步化,這些目前也比較成熟了。
ServiceMesh
再回到最開始InfoQ的軟件架構與設計趨勢,可以看到大多數與CloudNative相關,比如Serverless、ServiceMesh、HTTP/2和gRPC等,這些概念非常火爆,因此可以說ServiceMesh在目前的技術趨勢中占據很高的地位。典型的ServiceMesh架構還是基于Istio+Envoy的Sidecar經典架構。后來出現了Dapr,它與Isito+Envoy架構的區別在于Envoy的Sidecar可以理解為代理,其目的在于將服務連接起來,Dapr也會有一個Sidecar,這個Sidecar不只是做代理那么簡單,而是可以幫助開發者做非常多的事情,比如使用新的開發語言實現應用,但是Kafka或者NoSQL數據庫并沒有提供對應語言的SDK,或者即便提供了對應語言的SDK,但是這些SDK并不穩定,此時選擇一些新的技術就會受到一些約束。舉個例子,如果大家做一些大數據相關的工作,比如HBase、Hadoop等都是Java相關的SDK最穩定。而Dapr的Runtime可以很好地與外部系統交互,比如應用gRPC與Dapr的Sidecar通信,也可以和Kafka通信,將從Kafka中獲取的數據傳遞給gRPC,并且Dapr的Runtime使得開發者不需要了解通信協議背后的細節。
這樣的設計比Isito+Envoy架構要更好,因為如果只做代理,那么在客戶端還需要做大量的數據處理工作,而如果放到Proxy上來實現,就會更加復雜,此時就會變成Dapr的Runtime。此外,阿里巴巴最近在做一些嘗試就是RSocketBroker,其基于ReactiveMesh實現,其與Sidecar結構不同,因為大多數基于基于消息或者事件驅動的都只需要發送消息即可,而RSocketBroker提供了應用之間的一攬子通信協議,不需要再選擇其他通信協議了。對于以上三種技術方案應該如何選擇,大家應該根據自身的實際情況進行判斷,因為技術選型沒有絕對的正確,但是目前來說是Isito+Envoy架構收到了大多數人的歡迎,因為這與Kurbernates整合比較方便,并且目前已經提供了比較完善的基礎設施。
FaaS
對于企業而言,可能核心系統只有幾個,但是總會有一些長尾的應用。如果之前沒有很好的FaaS方案,那么可能會做一個大而全的系統將這些小功能融合在一起,此時造成的問題就是修改代碼的困難,造成很多的麻煩,也不利于技術革新。FaaS的好處在于可以將函數部署到邊緣,比如CDN邊緣或者Edge端。在通信部分,FaaS主要是Message+EventDriven的,而目前很多的通信協議會用到gRPC,因為FaaS本身要求響應速度比較快,因此對于通信協議具有一定的要求。gRPC的接口相對比較底層一些,在此之上還做成了ReactivegRPC能夠更方便大家通過Reactive來操縱gRPC,但是在寫代碼的時候可能并不知道是底層是基于gRPC的。在技術趨勢里面還有一個叫做AsyncAPI,其實在大家工作中,很多框架都支持從代碼直接生成OpenAPI,比如SpringDoc等。
目前還有一個技術趨勢是FaaSWebAssembly,其也是和FaaS結合的。眾所周知,如果FaaS不是高頻使用的話,會出現容器拉起時出現一定等待時間的問題,但是在某些場景下,對于等待時間存在比較嚴格的限制。那么此時如果使用傳統容器的解決方案往往難以實現,而WebAssembly這種技術解決方案就能夠充當函數的鉤子,能夠滿足上述需求。同時,由于WebAssembly也是W3C新推出的規范,和之前的HTML、CSS、JS網頁三劍客結合成為了網頁四劍客。此外,在FaaS部分,還有最近推出的Deno可以很好地支持WebAssembly機制。而因為很多開發同學會關心Rust這一編程語言,而Deno對于Rust具有良好的支持,因此很多人會選擇使用Deno作為FaaS的Runtime來支持FaaS的運行。
代碼智能
目前還有一個技術趨勢就是代碼智能,通過前面所提到的技術架構,能夠滿足企業的架構選型,那么接下來就肯定會涉及到代碼。對于代碼而言,主要有兩點,一個是代碼生成,另一點是手寫代碼。代碼生成主要是腳手架,能夠快速將代碼的框架生成,而不需要自己寫配置項等,目前這項技術已經非常成熟了。這部分的工具主要有IntelliCode、Codota、Kite以及各種CloudIDE等。在寫代碼的時候會遇到的問題就是技術往往變化很快,每間隔4、5個月就會推出新的框架或者技術,而因為開發者關注的是開發效率,所以即使有CodeAI能力,但是在某種程度上還是會依賴CloudIDE特性。因為CloudIDE在跟進某些技術上面的速度比較快,它往往能夠很快知道客戶新的需求是什么。
CodeGeneration+IDE
目前有很多的代碼生成工具,幫助大家解決框架生成問題。比如Scaffold,start.spring.io是可擴展的代碼框架生成器。CodeGeneration是Java自帶的Annotation機制,這一點可能大多數同學沒有關注,但是在很多的場景下也會使用到,其生成的代碼能夠做到性能更高。此外,目前很多的IDE,比如JetBrains+VSCode都有集成的工具,幫助開發者快速生成代碼框架結構。
6月12-13日,阿里巴巴研發效能峰會,由雷卷出品的架構設計與代碼智能專場,將會有更多DDD、Reactive、ServiceMesh、代碼智能相關的精彩分享。
不僅如此,本次峰會是阿里內部研發效能峰會首度對外,7大論壇、35個議題、39位阿里內外部的技術大咖、1300分鐘的干貨分享,將覆蓋云原生、架構設計、代碼智能、數字化轉型等眾多熱門技術話題。
]]>