據說,我們每一個IT愛好者都有一個網站夢。你希望在網際網路的世界裡擁有一套屬於自己的房子,希望全世界的每個人都來家裡做客。於是,你遇到了CMS。然後,你在不斷的選擇和試用中發現,透過各種外掛和拓展的加持,CMS的功能竟然可以無比強大。比如,那些你曾經認為神秘複雜的電商功能,突然變得唾手可得。於是,你的豪情壯志瞬間爆棚,竟然也想打造一個屬於自己的電商帝國!我覺得這樣想也無可厚非,畢竟我們的網際網路前輩都曾經說過:夢想還是要有的,萬一實現了呢!
難道說,電商帝國的開疆拓土真的如此簡單嗎?好吧。本文中,我將陪你一起謀篇佈局、策馬揚鞭,透過加速推演一場你電商帝國的雄起之夢,來串燒一下Web全棧常用的知識點。希望這些知識點能為你建立起更加全域性化的視角,從而幫你在真正的實現過程中少走一些彎路。因為,畢竟在很多情況下,當你拿著一把鐵鍬呼呼喘氣的時候,可能一抬頭竟發現,前面就有一臺挖掘機!
一、電商帝國雄起之:兵強馬壯篇
當你盡情體驗各種CMS強大功能的時候,可能會產生一個好奇:是什麼語言造就瞭如此神奇的尤物?然後一通搜尋,你驚奇地發現,她們幾乎清一色出自PHP之手。於是你在網上看到了“PHP是世界上最好的語言”這句曾經膾炙人口的佳句。曾經?為什麼要加個曾經?你一定會這樣質疑我。不錯,在網際網路發展初期,在網站併發訪問還沒有達到一定量級的時代,PHP確實稱得上是Web開發領域的最好選擇。即便是現在,她也在眾多中小企業中具有超高的價效比。但是要知道,你想打造的可是一個龐大的電商帝國,所以理應貨比三家哦!
所以,就讓我們去那些網際網路大廠的門口打探一下虛實吧!這時你會發現,在那裡進進出出的竟然幾乎全是Java工程師!你很困惑:為什麼?為什麼你們不學世界上最好的語言而要學Java?那就隨便揪過一個來問問吧!於是這位工程師會傲嬌地告訴你:我們的Java EE生來就是為複雜的大型應用而生的,還有什麼專案是我們SpringBoot、SpringCloud的微服務不能搞定的呢?哇!你好像瞬間被折服。這時你大腿一拍:就她了!我趕緊拉住你:再看看,再看看。
然後,我們又在後面為數不多的幾個人中,聽到他們邊走邊討論Go。再揪一個。一問不要緊,所有的優點幾乎讓Go全佔了:與機器直接對話的速度、近乎有些潔癖的語法、天生支援多執行緒的基因等等,太多了。哎?這麼好的語言,你們這些網際網路大廠怎麼還是以Java為主啊?對方會無奈地告訴你:Go是2009年才正式推出的,那時我們已經Java很多年了,牽一髮動全身啊!於是,你終於心有所屬,決定讓這位面向21世紀的語言掛帥出征,再輔以優秀的前端搭檔。如此的兵強馬壯,簡直是智慧與美貌並重,才華與顏值並存!就連那些網際網路大廠看見以後,都會羨慕嫉妒恨地扔過來一句話:真是讓你撈著了!
二、電商帝國雄起之:後勤保障篇
俗話說,好馬配好鞍,好船配好帆。精銳的先頭部隊必然要有強大的後勤保障。NFS面對海量的儲存任務,深感壓力倍增,於是為了帝國整體利益主動讓賢,並請來當紅小生Ceph扛起大梁,自己則退求其次承擔一些力所能及的工作。MySQL也危機感倍增,早早就自建了叢集編隊來提升實力,但即便是如此,依然隨時有可能被NewSQL中的民族驕傲TiDB所取代。逐步地,Redis、ElasticSearch、Kafka等各路神仙也紛紛被你招致麾下,為前方將士提供著更加穩固的後方支援。
但是,又有一個問題擺在你面前:大家工作狀態怎麼樣啊?我就是天天微服私訪,沒日沒夜巡查也忙不過來呀?曾經的得力助手Shell每天累得氣喘吁吁,已經明顯力不從心、首尾難顧。這時,長著三頭六臂的Python毛遂自薦、主動請纓:自動化運維是我的強項,這些雜活、累活都交給我吧!而擁有Go基因的Kubernetes也跳出來大喊一聲:還有我,我來助大師兄一臂之力!至此,你總算能從紛繁瑣碎的日常事務中脫離出來了!
與此同時,在這場細緻複雜的保障部署中,你擁有了龐大規模、分工明確的叢集編隊,也逐步將高併發、高效能、高可用的基本理念融入其中,並對分散式有了更為深刻的理解。但是,你的心情一點也不輕鬆。因為你知道,這些還遠遠不夠,還有更多的問題等著你!
三、電商帝國雄起之:運籌帷幄篇
是的,你打造電商帝國的征途不可能一帆風順,必然要面臨各種各樣的問題和挑戰:它們有可能會是經濟上的難關,有可能會是技術上的難題,也有可能會是業務上的衝擊。但是,你要知道,這時你已經具備了運籌帷幄、縱橫捭闔的駕馭能力。因此,在面臨各種大風大浪時,不論是以權宜之計作緩兵之策,還是退而求其次暫時挺過難關,你總是有辦法保證電商帝國屹立不倒。
比如,在手頭比較緊的創業初期,你只能看著TiDB那高貴的配置咽咽口水,然後讓吃苦耐勞的MyCat來服役很長一段時間。再比如,在人手還不是很充足的發展中期,你的團隊可能在維護複雜的Ceph時有些捉襟見肘,這時雖然有點老邁的GlusterFS也能為你抵擋好一陣子。當然,在一次次618、雙11的流量洪峰考驗中,智慧DNS解析、CDN內容分發、多級快取架構等封疆大吏都會被你委以重任並獨當一面,LVS、HaProxy、Nginx等革命的螺絲釘也將日夜守護著帝國大廈的每一個角落。
這時候,看著大家各司其職、團結一致,你感覺終於可以長出一口氣好好歇歇了。而我,又要當一回死諫忠臣了:陛下,不能歇!你有沒有想過我們的將士終有年老體衰的一天?你有沒有考慮到他們有的人可能會突然離職?一下子,你可能又要如坐針氈了。所以,當你登上帝王寶座的那一刻,並不是你高枕無憂之日,而是你更加殫精竭慮之時!
最後,總結一下。龐大的IT知識體系猶如浩瀚的星辰般廣袤無垠,我們任何人置身其中都顯得那麼渺小和微不足道。你知道的越多,才知道自己不知道的越多。正如《三體》小說中的那句經典語錄:弱小和無知不是生存的障礙,傲慢才是。所以,時刻保持一顆謙虛之心才是我們在IT領域得以立足的制勝法寶。親愛的小夥伴們,如果本文對你的未來之路有所啟發、有所幫助,真心希望你在真正建立起IT帝國的那一刻,依然能夠想起這篇粗糙簡陋的小文章!
持續分享IT領域原創作品,關注我吧!