<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      奶爸程序員的“育兒”心得

      自我介紹一下,本人以前是.net程序員,去年下半年負責把項目從.net轉到java,并且有跨機房遷移,億級訪問量,app服務端項目。

      自我吐槽一下,工作了8年了,沒有成為架構師,也沒有進入管理層,沒有成為技術大師,也沒能成為分享大師。一直在做業務,并在這條路上越走越遠。有的時候覺得很尷尬,但又有的時候覺得還蠻適合自己。
      過年之前,老婆生了一個小公舉。寶寶餓了,“老婆快來喂奶!”,寶寶又餓了,“老婆快來喂奶!”,寶寶睡醒了又餓了,“老婆快來喂奶!”……老婆說:“我感覺我就是頭奶牛”!作為一名“奶爸”,感觸頗為深刻!
      自己負責的項目就像自己的孩子,孩子出事了,大家首先想到的就是這個奶爸。奶爸上陣(常常半夜爬起來),該換尿布換尿布(服務器故障),該喂奶就喂奶(bug)。如果生病了,就喂喂藥,吃藥不管用,就外面請大夫(疑難雜癥,搞不定,請別人搞定也是搞定)。寶寶的奶粉如果出了問題,恨不得拿刀宰了那個奸商(調用了別人的服務,服務掛了,影響到了自己)。寶寶吃飽喝足,安靜睡了,奶爸也可以安心睡了!

      -------------------------------------------------------------------------------
      下面開始干貨,記錄一下自己的“育兒”心得:
      一. 技術選型
      開發語言:java,go,php,nodejs
      如開頭所說,本人之前是C#程序員,C#的語法精妙,逆天的ide,.net版本更新較快,快到我都不記得最新的版本號了。那么多新特性,如果服務器上安裝的始終都是.net3.5 對我們來說又有什么用呢。
      開始是很抵觸java的,斷斷續續學了好多次也沒投入使用,這次必須要上了。不得不說,這么多年了,java一直在增長,穩定,成熟,幾乎能解決所有問題,而且性能也不差。這大半年下來,java的水真的好深,異步、并行等等,還沒接觸過的好多好多。
      go的好處就不說了,在學習,如果喜歡又覺得能拿捏的住,就上吧(哈,肯定不會像說的那么輕松)。
      nodejs做前端太方便,也有人用來做服務端接口層。
      php做前端頁面,就像服務端用java一樣,萬金油,成熟,穩定,用的人多,資料也多。
      總之一句話,沒有最好的,只有最適合的!
      選java是因為 我們后端的很多微服務也是用java開發的,方便調用。還有就是,不用java還能用啥。
      存儲:mysql, mongodb, redis
      當分庫都不能解決問題的時候,分表就格外重要,有一種無限擴展的感覺。之前用的oracle,只分庫,沒有分表,hold不住了。
      存儲的類型還是盡量越少越好,redis做緩存一般是繞不過去,都要用的。
      團隊里有很多人排斥mongodb,就不說具體原因了,redis能搞定的事情,就不要用mongodb了。
      還是那句話,沒有最好,只有適合,把相應的數據放到最適合的存儲里。
      mq: rabbitmq,activemq
      你肯定會用到mq的,即使現在不會,以后肯定會的。
      java框架:spring mvc
      用的人多,成熟,坑都被大家踩過了,遇到問題好查資料好解決。
      ibatis和struts在我們的項目中沒有用到。

      二. 源代碼管理工具
      語言選好了,框架選好了,要開始寫代碼了,問題來了,寫好的代碼用什么管理?
      Git! SVN!
      Git的分支真的可以解決太多問題,很強大!
      SVN的tag也不錯,用來做發布不錯。

      不管用什么工具,一定要做好規范,比如git的分支命名。時間長了分支越來越多,如果不規范一下,會亂的一團糟。
      再比如分支的合并,應該怎么合并,不應該怎么合并。
      分支的流程,去哪個分支提交測試,去哪個分支發布等等。
      分支合并的沖突解決,一定要事先溝通好,不然代碼丟失,找都不好找。

      三. 開工
      1. 搭架子
      這里最好能把監控做起來,監控太重要了,一開始就要考慮清楚,不然后面加會痛苦萬分。
      如果打算用hystrix之類的框架,一開始也要搞清楚實現方式,后期實現太痛苦。
      2. 代碼規范
      架構師一開始都會想的很完美,如果不做規范,來來回回人多了,里面就亂了。
      當然,即使你做了規范,也會亂的,只是會亂的小點。
      3. 一些基礎代碼
      比如:打日志,http請求,怎么加監控,怎么rpc調用,接口在線查詢文檔等。
      4. 調試
      代碼寫完了怎么運行,怎么調試,本地是用jetty還是tomcat,怎么發布測試服務器,這些都要根據實際情況調整了。
      5. 開發工具
      現在說好像有點晚了,對于java,有的人喜歡eclipse,有的人喜歡idea。再比如git的管理工具,有人喜歡sourcetree, 有人喜歡敲命令,就比較難統一了。
      6. 代碼審查
      沒事看看同事寫的代碼,代碼放的位置對不對,有沒有重復代碼,不要把你的架子搞亂了。
      Findbugs,這個插件實在太有用了,可以發現很多低級、沒有預料到的問題,比如可能存在的空引用,String.format格式化問題等等。
      7. 團隊溝通
      人多事情就會來,肯定會有人遇到奇奇怪怪的問題,這個時候就要一起溝通解決了。
      底層框架的問題,要趕快修復優化。
      流程問題,優化流程規范并通知團隊。
      如果能有個wiki,論壇之類的把大家踩過的坑記一下就更好了。
      定期開例會同步進步,同步問題。

      四. 測試
      代碼寫完了,需要有個強大的測試團隊來測試功能了。
      我們的項目是接口,對外輸出json數據,如果沒有自動化比對工具,全靠肉眼真的要瘋掉。
      字段缺失,大小寫問題,格式問題,各種問題都會一一暴漏,是時候再優化規范了。
      1. 自動化測試
      這個看測試實力了,本人也不太懂,有個測試大牛是多么的重要。
      2. 接口文檔
      開發在做接口的時候就要把文檔更新好,修改代碼及時更新文檔。
      當然寫文檔太煩了,java里的注解可以搞這些,然后自動生成在線文檔。
      3. 壓力測試,并發測試等
      做的接口能否支撐起業務,怎么評估,就要看壓測結果。不達標?優化!

      五. 上線
      這個時候要想好怎么規范發布流程了,如果公司有團隊幫你做自動化集成發布就太贊了,如果沒有就只能自己擼了。
      什么jenkins,打包腳本,就自己搞起來吧。
      什么,代碼服務器和上線服務器不在一個機房里? 沒關系,svn,git幫你搞定。tomcat也有上傳war包的功能。
      1. 申請服務器
      根據訪問量評估服務器數量。
      要不要拆分接口,比如abc接口只訪問A服務器,def接口只訪問B服務器,nginx接入層搞起來。
      2. 發布
      發布流程,發布系統。
      是否需要灰度發布?
      能否快速回滾。
      配置管理系統搞起來。
      3. 監控
      奶爸程序員最重要的工作之一,就是看監控。
      什么調用量,高峰調用量,成功率,失敗率,超時率,平均耗時等等。
      最好能在線查看接口調用返回的code,可以快速定位問題。
      除了app調用你的服務的監控,還有你調用別人服務的監控。一個是發現自己的問題,一個是發現別人的問題,撕逼和被撕逼,都要拿出證據。
      失敗率,超時率,平均耗時這些很有必要,也是奶爸程序員的kpi。
      如果能有cpu,內存,網卡使用率等的監控更好了。
      再進一步,如果有jvm的監控那就更棒了!
      監控都做了,報警必須有,短信、郵件,你懂的!
      4. 日志
      奶爸程序員最重要的工作之二,甚至比看監控還重要。
      監控有延時,有時候并不能及時發現問題,這個時候看錯誤日志就很重要。
      系統是否正常運行,就是通過日志來判斷。
      錯誤日志會幫你發現問題,甚至早于用戶發現問題解決問題。
      奶爸程序員還要看日志是不是打多了,打少了,打錯地方了,重要業務日志有沒有。這是個長期的過程,根據情況逐步調整。
      觀察線上服務器的日志,是奶爸的重中之重,先于用戶發現問題,先于客服事件解決問題,保駕護航,簡直就是爹媽不容易啊!
      所以,辣么多服務器,你最好有個日志收納系統,在線查看篩選系統。
      5. 穩定保障
      nginx接入層,在tomcat前面用nginx做接入層,用nginx做分發,對服務器做分組,周邊服務掛了,不能影響核心業務。
      nginx還有個好處還是做轉發,比如,你有個a.site.com站點要改版,老版本的a.site.com域名不能動,新版本的在別的服務器上,a.site.com域名也必須用,那么nginx接入層的作用就顯現了,把新改版的頁面全部指向新站,其他的回老站,搞定。

      還有就是在你的后方有眾多微服務,各個微服務也可能會相互依賴,如果其中一個掛了,那么對你來說可能就是災難,怎么避免這種情況?
      這個也是最近在做的事情,搜了一圈,都是在談Netflix的Hystrix,這個應該是比較成熟的方案了。
      熔斷和降級只能保證微服務不會星火燎原,但不能保證前端出現錯誤,所以前端一起配合,提供一些柔軟、體驗好的錯誤提示會更好。


      最后
      奶爸的工作當然不止這些了,為人父母當然沒那么簡單了,雜七雜八超乎你的想象。
      和產品談需求,客服事件排查,和同事討論技術方案,和測試溝通改bug,和領導匯報,什么?app又打不開了?什么?機房有故障?什么?有人在刷接口?永無止境。。。

      ------------------------------------------------------

      說幾個自己踩過的坑:
      1. 網卡被打滿
      當第一次遇到網卡被打滿的時候,覺得很神奇,有一種介于牛A和牛C之間的感覺。時日至今,網卡被打滿真不是什么新鮮事了。
      測試在壓力測試的時候,qps老是上不去,后來發現是壓測機的網卡被打滿了。
      服務崩了,緩存服務器網卡被打滿了,單key存儲的東西太大。
      總結:網卡被打滿是不得不考慮的事情,尤其是你來來回回傳輸的東西既大調用量又高。解決辦法就是單key的值不宜太大,而且不論是什么緩存,隨著值大小的增加,性能是急劇下降的,所以能拆就拆,現在都是分布式緩存,key越多,各個服務器就越平均,key的增加對性能的影響微乎其微。

      2. tomcat老是被重啟
      一到高峰期,tomcat就噼里啪啦的自動重啟,找不到原因啊,奶爸遇到挑戰了。
      就像前面說的,孩子生病了,你有的藥吃不好,那就請大夫開方子,請別人治好也是康復啊。
      后來在tomcat重啟的時候做了dump和tcp監控,后來發現tomcat在重啟的時候time wait過多,推斷出某個服務的調用出現了性能問題,積壓太多,累積到一定程度就爆炸了。
      后來是增加某服務的rpc調用的連接數搞定了。
      還有一點就是synchronized關鍵詞的使用要小心,小心出現性能問題,會堵塞。

      3. 監控曲線突然沒了
      曲線突然沒了,掉成0了,頓時嚇尿了,趕快排查日志,發現在上報監控的時候報錯了,上報的線程的掛了。
      改唄,上報錯了就錯了,不能制造驚魂?。?/p>

      -----------------------------------------------------------------

      總結:
      以上都是本人的一些經驗心得,可能對你來說沒什么特別,也只能說鄙人才疏學淺,跟不上技術發展的腳步。如果你有更好的,請不吝賜教,大家一起成長!
      以上的所有東西,對于小公司小團隊,或者從無到有的項目還是很龐大的。監控系統,日志系統,運維,發布,到處都有坑讓你踩。我們目前所用的rpc調用方案、緩存、mq都是第三方的,雖然有技術支持,還是踩了很多坑。
      坑到處都有,我們要做的就是踩到坑了不摔倒!

      祝大家新年快樂!

       

      posted on 2017-02-04 21:23  往邊界  閱讀(19757)  評論(81)    收藏  舉報

      導航

      主站蜘蛛池模板: 精品免费看国产一区二区| 中文国产成人精品久久不卡 | 国产成人精品一区二区秒拍1o| 亚洲一品道一区二区三区| 大香伊蕉在人线国产免费| 国产99久久久国产精品~~牛| 久久天天躁狠狠躁夜夜躁2o2o| 日韩中文字幕v亚洲中文字幕 | 正在播放肥臀熟妇在线视频| 福利一区二区不卡国产| 日产精品一区二区三区免费| √天堂中文www官网在线| 欧美色欧美亚洲高清在线观看| 在线 欧美 中文 亚洲 精品| 97精品国产91久久久久久久| 彭山县| 免费观看全黄做爰大片| 亚洲国产精品无码观看久久| 国产精品色呦呦在线观看| 成人网站免费看黄a站视频| 影音先锋啪啪av资源网站| 九九热免费公开视频在线| 久久热精品视频在线视频| 欧美性猛交xxxx富婆| 国产精品成人va在线播放| 久久精品国产一区二区三区| 国产精品免费观看色悠悠| 亚洲AV日韩AV激情亚洲| 中国少妇人妻xxxxx| 精品国产综合成人亚洲区| 亚洲AV片一区二区三区| 镇原县| 男女做aj视频免费的网站| 免费a级黄毛片| 久久精品国产一区二区蜜芽| 国产一区二区波多野结衣| 成人免费视频一区二区三区| 亚洲色欲色欱WWW在线| 又黄又刺激又黄又舒服| 在线国产精品中文字幕| 久久妇女高潮喷水多|