開發者的福音:你需要知道的事
一個人需要合適的工具來完成工作。比如說沒有比修車修到一半,卻發現你沒有完成工作的專業工具更沮喪的事情了。同樣的道理也適用在開發者身上:你需要工具來發揮你的才能,而不會因為合規性和安全性的需求打斷你的工作流程,這樣你才可以更快速地編碼。
根據 ActiveState 的研究《2018 年開發者調查:開源運行時的痛苦》顯示,超過一半的開發人員(具體為 51%),每天只需要花費 1-4 小時的時間進行編程。換句話說,大多數開發人員花費不到一半的時間編程。根據調查,一半的開發人員認為安全是他們最大的擔憂之一,但是由於公司政策方面的原因,67% 的開發人員選擇在編程時不添加新的語言。
結果是開發人員不得不投入更多的精力在非編碼的活動上,例如在構建軟體和語言之後檢查軟體的安全性和合規性標準。而且由於公司政策的原因,他們無法選擇適合的開發工具或語言。他們的滿意度會下降,同時風險提高。
因此,開發人員無法將時間投入在高價值的工作上。這會帶來額外的商業風險,因為他們的軟體上市時間變慢了,並且公司因為沒有授權開發人員在不受公司政策影響的前提下決定「最佳的」技術的能力,從而增加了技術債務。
納入安全性和合規性的工作流程
我們如何解決這個問題呢?一種方式是通過四個簡單的步驟將安全性和合規性的工作流程集成到軟體開發中:
1、集中你的力量
獲得所有相關人員的支持,這是一個經常被遺忘但卻至關重要的第一步。確保考慮到了廣泛的利益相關者,包括:
- 開發運維(DevOps)
- 開發人員
- 信息安全
- 合法/合規
- IT 安全
利益相關者想要了解相關的商業利益,因此要為消除軟體構建後的安全和合規性檢查點提供堅實的理由。你可以在構建你的商業案例中考慮以下任何一個(或者全部)因素:節省時間、機會成本和開發人員生產力。在開發流程中,你也可以通過集成安全性和合規性來避免語言的改造。
2、尋找可信賴的資源
接下來,選擇可使用的可信資源,以及他們的許可證和安全要求。考慮到如下相關信息:
- 基於環境或應用程序類型的使用限制以及每種語言的版本控制
- 允許哪些開源組件,例如,特定的程序包
- 哪種環境類型可以使用哪種許可證(例如,研究與生產)
- 安全級別的定義、可接受的脆弱性風險等級、什麼樣的風險級別會觸發一個措施,這個措施是什麼並且誰來負責它的執行
3、從一開始就納入安全性和合規性
納入安全性和合規性的工作流程的結果是,它最終將安全性和合規性融入到代碼的第一行。它消除了公司政策的拖累,因為你是按照規範進行編碼,而不是必須事後解決問題。但要做到這一點,請考慮在構建代碼時採用自動掃描代碼的機制,以及使用無代理監控你的運行時代碼。你可以節省時間,還可以通過編程實施策略來確保整個組織的合規性。
4、監控、報告和更新
出現新的漏洞,新的補丁和版本也會出現。所以,將代碼部署到生產中以及運行代碼時,需要考慮安全性和合規性。你需要知道哪些(如果有的話)代碼存在風險以及該代碼在何處運行。所以,部署和運行代碼的過程應該包括監視、報告和更新生產中的代碼。
通過一開始就在你的軟體開發過程中集成安全性和合規性,你還可以在部署後跟蹤代碼的運行位置,並在新的威脅出現時獲得警報。你也能追蹤當你的應用程序何時受到攻擊,並通過自動執行軟體策略做出響應。
如果你的軟體開發過程中已經引入了安全性和合規性的工作流程,你將會提高你的生產率。你將能夠通過增加編碼時間、提高安全性和穩定性、以及在維護和發現安全性和合規性的威脅方面節省的成本和時間來衡量價值。
集成所帶來的幸福
如果你不開發和更新軟體,你的組織將無法前進。開發人員是公司成功的關鍵,這意味著他們需要快速編寫代碼的工具和自由。儘管合規性和安全性至關重要,但你不能讓這個需求阻礙你的發展。開發人員顯然很擔心安全性,因此最好的辦法就是「左移」,從一開始就集成安全性和合規性的工作流程。你將可以做更多的事情,在第一次就可以完成,而花費更少的時間進行代碼更新。
via: https://opensource.com/article/19/2/developer-happiness
作者:Bart Copeland 選題:lujun9972 譯者:chenmu-kk 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive