丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預覽,將在時失效
AIoT 正文
發(fā)私信給程弢
發(fā)送

0

關于代碼托管的始末,程序員應該知道這些真相 | 雷鋒網(wǎng)公開課

本文作者: 程弢 2016-06-13 19:37 專題:雷峰網(wǎng)公開課
導語:代碼托管的最大意義不在于托管代碼,而是在于方便集成。

今年8月,雷鋒網(wǎng)將在深圳舉辦一場盛況空前,且有全球影響力的人工智能與機器人創(chuàng)新大會。屆時雷鋒網(wǎng)將發(fā)布“人工智能&機器人Top25創(chuàng)新企業(yè)榜”榜單。目前,雷鋒網(wǎng)正在拜訪人工智能、機器人領域的相關公司,從中篩選最終入選榜單的公司名單。如果你也想加入我們的榜單之中,請聯(lián)系:2020@leiphone.com。

關于代碼托管的始末,程序員應該知道這些真相 | 雷鋒網(wǎng)公開課

孫宇聰:Coding.net CTO,  曾任 Google Senior Site Reliblity Engineer(2007-2014) 就職于Moutain View 總部, 曾參與設計維護YouTube 視頻轉碼/存儲/直播管理系統(tǒng)(系統(tǒng)吞吐量超過1Peta bytes/月), 參與研發(fā)管理全球 Youtube CDN 網(wǎng)絡 (峰值流量~10Tbps) , 后就職于Google 內部云計算部門開發(fā)維護全球百萬臺服務器生命周期管理系統(tǒng)及任務管理系統(tǒng)。

程序員的日常工作離不開代碼,有逼格的程序員都有過將代碼托管到第三方平臺的經(jīng)驗,例如國外的Github幾乎成為了全球程序員的社交平臺。不過,國內這幾年也不斷涌現(xiàn)出一批優(yōu)秀的代碼托管平臺,2014年成立的Coding就是其中之一,本期硬創(chuàng)公開課我們邀請到了Coding CTO孫宇聰為大家?guī)碛嘘P代碼托管以及云服務的分享。

Coding是什么?

Coding 成立于2014年,是一家面向廣大程序員服務的公司,其中包括好用的項目管理工具,代碼托管平臺,社區(qū)以及靠技能變現(xiàn)的外包交易平臺(碼市)。

代碼托管到底解決了哪些問題?

代碼版本管理工具(VCS系統(tǒng)或者稱之為 SCM 系統(tǒng))是軟件開發(fā)項目中不可缺少的一項重要生產(chǎn)力工具,主要作用就是使得項目成員可以用他來管理項目中的代碼,跟蹤某個文件的歷史信息。VCS/SCM系統(tǒng)也是代碼評審工具,自動化持續(xù)集成工具等等的主要集成點,是敏捷式開發(fā),快速迭代,持續(xù)集成等等一切的基礎。

目前最為流行的代碼管理系統(tǒng)包括SVN和GIT,還有一些較為小眾的如Mercurial(Hg),Bazar(bzr) 。這些代碼管理工具操作方式等各有不同,但是大都能實現(xiàn)一樣的目的,也就是跟蹤一個項目中代碼演進的歷史。

大家都知道在項目開發(fā)過程中,需求總是變來變去的, 甚至在需求制作中,代碼也總是會不停地改變。用好一套版本管理系統(tǒng)可以使得每次測試,發(fā)布的時候清楚的知道發(fā)布了什么東西,更好的跟蹤代碼的改變。GIT與SVN的實現(xiàn)各有優(yōu)缺點,這里就不贅述了。目前,Coding同時支持 SVN 與 GIT 協(xié)議訪問代碼倉庫,同時提供了豐富的代碼評審,持續(xù)集成等功能,以及完善的項目管理功能。

總而言之,代碼托管平臺的最大意義不在于托管代碼,而是在于方便集成。

團隊協(xié)作和代碼生產(chǎn)是怎樣一種關系?

先來看看這樣的場景:傳統(tǒng)的企業(yè)運作方式是部門制,各管各的,產(chǎn)品經(jīng)理一套流程, 設計一套,項目經(jīng)理一套流程,程序員一套流程,互相不會打通。每次一開會,相關任務的背景資料都要靠口頭傳遞,甚至是用紙條來傳遞,這樣的效率非常低。

高效的軟件開發(fā)流程離不開一個完整的閉環(huán)系統(tǒng)。什么是敏捷,什么是DevOps? 什么是IT和商業(yè)緊密結合?這就是所謂的閉環(huán)。

軟件開發(fā)項目中的所有角色:包括程序員 ,項目經(jīng)理,甚至設計師,運營人員,當然還有領導都迫切需要一個集成化的項目管理環(huán)境,使得需求、設計、代碼、上線以及運營可以緊密的結合起來。一個想法的產(chǎn)生,到實現(xiàn),到最后運營,有據(jù)可查,有理可依,這樣的生產(chǎn)力肯定會提高。

如何評價云服務的好壞?

這個問題好難回答, 所以我自己也經(jīng)常問自己這個問題, 我們怎么敢?guī)腿送泄苓@么貴重的資料呢?要回答這個問題, 首先我們要先定義“好”和“壞“。我認為有幾點:

一、可用性( Availability), 一個云服務如果不能做到隨時24x7可用,那么就不會有人使用,那就談不上好了,畢竟用戶存了東西,必須能夠隨時取走。

可用性的定義是服務的在線時間比率,這個比率越高,用戶體驗當然就越好,具體可以看看下面這張圖。

關于代碼托管的始末,程序員應該知道這些真相 | 雷鋒網(wǎng)公開課

一般來說,互聯(lián)網(wǎng)機房常見的可用性目標是99%,也就是一年有3天的不可用時間,甚至還有更低的,這種情況下供應商通常會給客戶返現(xiàn)補貼。顯然,這樣的標準對云服務而言太低了,云服務的基礎線是99.9%,也就是說云服務至少要達到上述表格中的第三等級以上才算合格。第四個等級每年只有52.6分鐘的不可用時間,這非??简灱夹g能力,運維能力。僅憑人力這幾乎是不可完成的任務,所以運維自動化、無人化運維等詞就應運而生了。

至于如何提高可用性,以下三點是必備工作:

1.盡量做到無狀態(tài)微服務,去掉系統(tǒng)中的單點故障。


2.做好容量規(guī)劃, 實現(xiàn)N+2, 或者N+1 , (做壓力測試,性能分析) 冗余。


3.生產(chǎn)管理上要做好監(jiān)控,報警,灰度發(fā)布等等運維手段,減少人工干預。

二、可控性(Access Control)。很多用戶更傾向于把重要的資料放在本地,這是因為大家覺得這個環(huán)境比較可控,設置完密碼后如果還不放心,可以買個鎖把機房的門鎖起來。 

但是, 放到云上這樣的方式就行不通了,因此,即便云服務有訪問上的便利性,但客戶對存在云端的數(shù)據(jù)是否安全仍持懷疑態(tài)度,好的云服務必須解決這樣的問題。

可控性是一個多層次的話題,這個層次和你每天上班經(jīng)過無數(shù)道門一樣, 訪問控制也應該由很多層組成,而且每層防御的目標都不一樣,大體上可以分為三層。

第一層是物理安全也是最重要的一環(huán),任何邏輯安全都要以這個為前提。在云時代,物理安全很大程度上是靠選擇靠譜的合作伙伴來決定的,但作為一個云服務也要對此有所了解,知道自己用的云服務的物理限制,系統(tǒng)設計等等,這樣有的放矢的設計自己的權限控制系統(tǒng)、網(wǎng)絡隔離、加密等等高級訪問控制層。

第二層是有關協(xié)議層的安全,全站TLS加密屬于基礎。

第三層是對 ”秘密“的管理,每個云服務背后都有很多很多的秘密(可以是ssh密鑰,可以是服務器密碼,也可以是數(shù)據(jù)庫帳號)需要管理,這個管理做得越好,可控性越強。很多公司管理秘密的方式,就是一個本子,而且不更新這種做法的安全隱患很大。除此之外,關于可控性還有很多很多其他的話題,比如說 角色型權限管理,身份傳遞,應用數(shù)據(jù)加密等等,這些都是提高安全性必不可少的話題。

三、災難恢復或者說是災備,這是云服務優(yōu)勢最大的地方。因為不管代碼托管在哪里,都有出現(xiàn)災難的可能,而災難一發(fā)生就會導致數(shù)據(jù)丟失,這是很多企業(yè)選擇云服務的原因。

云服務必須有一套常駐熱備災難恢復系統(tǒng),也就是說必須有一套一模一樣的系統(tǒng)同步運行,生產(chǎn)系統(tǒng)宕機后,就可以自動切換到備用系統(tǒng)上,不管是雷擊還是挖纜云服務都能保證數(shù)據(jù)的安全。很多云服務商并沒有這樣一套穩(wěn)定的系統(tǒng),不是因為技術上不可能,而是因為平時不投入。

大量的用戶數(shù)據(jù)對于運維提出了哪些要求?

我們可以從兩個方面討論,即數(shù)據(jù)持久性(Durability)和數(shù)據(jù)可訪問性。

要保證數(shù)據(jù)持久性,就需要對數(shù)據(jù)進行備份,校驗, 必要時候進行修復。需要注意的是,備份的數(shù)據(jù)必須是可恢復的,如果平時不經(jīng)常測試自己的備份數(shù)據(jù),你會發(fā)現(xiàn)要用的時候備份數(shù)據(jù)也有可能完全不能用。

在數(shù)據(jù)不丟失的前提下,還要保證數(shù)據(jù)的可訪問性,否則和丟失沒有什么區(qū)別。這兩點都需要持續(xù)不斷的工程投入,包括與第三方服務的接入。

群友問答:

Q:Coding是一個集成化的項目管理環(huán)境,關于這塊,我們公司使用禪道+SVN來實現(xiàn)的,GIT有什么優(yōu)勢嗎?

A:首先,代碼評審的環(huán)節(jié)我認為是必不可少的。 SVN實現(xiàn)起來相對更困難一些,不過要注意的是 SVN和GIT 其實和這個沒什么關系,SVN系統(tǒng)只是因為時間太久了,和其他系統(tǒng)的集成做的不能夠很好;GIT相對較新,比如說我們可以做到代碼與任務互相引用等更深度的集成,這樣一來效果就會好一些。

Q:Coding有沒有代碼質量檢查模塊,是怎么做的?

A:有的,Coding 目前的質量分析模塊是集成了Sonar Cube,這一項目是去年完成的,目前還有一個新的框架在內部使用中,基于shipshape 制作,可以接入任意質量分析模塊,各種語言如java, js, php等等全部都可以接入,這個我們會在下半年推出。

關于代碼托管的始末,程序員應該知道這些真相 | 雷鋒網(wǎng)公開課

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權禁止轉載。詳情見轉載須知。

分享:
相關文章

略懂技術的小編

關注一切有未來感的產(chǎn)品及技術!
當月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設置密碼以方便用郵箱登錄
立即設置 以后再說