<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          復(fù)雜性正在殺死軟件開發(fā)者 | IDCF

          共 5656字,需瀏覽 12分鐘

           ·

          2022-03-07 10:23

          1a60672f290f00fdcab9c2754b30017d.webp

          來源:分布式實(shí)驗(yàn)室譯者:小灰灰

          現(xiàn)代軟件系統(tǒng)日益增長(zhǎng)的復(fù)雜性正在慢慢殺死軟件開發(fā)人員。你怎樣才能重新獲得控制權(quán),而又能充分利用這些技術(shù)所能提供的優(yōu)勢(shì)?

          “復(fù)雜性是致命的,”Lotus Notes的創(chuàng)建者和微軟的老員工Ray Ozzie在2005年的一份非常有名的內(nèi)部備忘錄中寫道?!八谕淌砷_發(fā)者的生命;它使產(chǎn)品難以規(guī)劃、構(gòu)建和測(cè)試;它帶來了安全挑戰(zhàn);它使用戶和管理員感到沮喪?!?/span>

          如果Ozzie認(rèn)為當(dāng)時(shí)的情況很復(fù)雜,你不禁要問他會(huì)如何看待軟件開發(fā)者在云原生時(shí)代所面臨的復(fù)雜性。

          在過去我們通常會(huì)構(gòu)建一個(gè)單體架構(gòu)的應(yīng)用程序,并把它們部署在一個(gè)看得見摸得著的物理服務(wù)器上。而現(xiàn)在單體架構(gòu)應(yīng)用會(huì)被分解成多個(gè)微服務(wù),打包成容器,用Kubernetes進(jìn)行部署,在分布式云環(huán)境中托管,這一轉(zhuǎn)變標(biāo)志著我們的軟件的復(fù)雜程度有了明顯的提升。再加上用戶對(duì)于豐富功能和軟件體驗(yàn)的更高期望,使得軟件設(shè)計(jì)需要更多考慮安全性和彈性:對(duì)開發(fā)者的要求從未如此之高。

          “當(dāng)你轉(zhuǎn)向如此普遍的微服務(wù)環(huán)境時(shí),復(fù)雜性明顯增加,”亞馬遜首席技術(shù)官Werner Vogels在2019年的AWS峰會(huì)上說。“在所有東西都在一個(gè)單體應(yīng)用中的日子里,它更容易嗎?是的,對(duì)于某些部分來說肯定是這樣?!?/span>

          或者,正如他的同事,AWS的DevOps產(chǎn)品營銷主管Emily Freeman在2021年所說,現(xiàn)代軟件開發(fā)是“關(guān)于熵的研究,它不會(huì)變得更簡(jiǎn)單?!?/span>

          另一方面,復(fù)雜的技術(shù)從未像現(xiàn)在這樣容易被使用,它們通常是一些單一的API:從基本的庫和框架,到圖像識(shí)別能力,甚至整個(gè)支付技術(shù)。使用這些已有的技術(shù)進(jìn)行簡(jiǎn)單地組裝,并在上面建立你的業(yè)務(wù)邏輯。但這真的那么簡(jiǎn)單嗎?

          “成為一名軟件開發(fā)人員從來沒有像今天這樣困難,”咨詢顧問、前Walt Disney企業(yè)技術(shù)戰(zhàn)略總監(jiān)Nigel Simpson說,“雖然我們已經(jīng)看到了能力的提升,通過使用應(yīng)用開發(fā)和機(jī)器學(xué)習(xí)的高級(jí)框架,使開發(fā)人員能夠做得更多,但這是有代價(jià)的。爆炸式增長(zhǎng)的選擇和技術(shù)發(fā)展的速度使開發(fā)者很難跟上時(shí)代潮流,許多開發(fā)者陷入了困境?!?/span>


          一、基本與偶然的復(fù)雜性

          a07a5a54691ac85b3a2ed665384fed90.webp



          軟件機(jī)構(gòu)Simple Thread的聯(lián)合創(chuàng)始人Justin Etheredge對(duì)基本的和偶然的復(fù)雜性進(jìn)行了有益的區(qū)分,他告訴InfoWorld:“基本的是你所工作的商業(yè)領(lǐng)域的復(fù)雜性,事實(shí)上企業(yè)是極其復(fù)雜的環(huán)境,所以他們?cè)噲D解決的問題本身就很復(fù)雜。另一個(gè)領(lǐng)域是偶然的:這是我們的工具以及我們?yōu)榱私鉀Q一個(gè)問題而在工具上構(gòu)建的部分所帶來的復(fù)雜性?!?/span>

          云原生時(shí)代迎來了比以往任何時(shí)候都更多的、潛在的偶然復(fù)雜性,這導(dǎo)致了開發(fā)者和他們的領(lǐng)導(dǎo)之間的矛盾:前者希望利用他們更多地利用工具,后者則希望他們專注于為客戶提供價(jià)值。

          Etheridge說:“鑒于今天對(duì)軟件開發(fā)人員的需求,公司沒有手段來推動(dòng)開發(fā)人員走向主要為客戶提供價(jià)值的思維模式。”讓更多的工程師以這種方式思考是一個(gè)挑戰(zhàn)。


          二、選擇的弊端

          a07a5a54691ac85b3a2ed665384fed90.webp



          云計(jì)算和開放源碼軟件運(yùn)動(dòng)的普及,使開發(fā)人員在構(gòu)建和運(yùn)行更多可擴(kuò)展、有彈性、模塊化和可更新的應(yīng)用程序方面的選擇數(shù)量以不可阻擋的速度上升。

          Humanitec公司的創(chuàng)始人Kaspar von Grünberg在接受InfoWorld采訪時(shí)說:“以前的一切都簡(jiǎn)單得多,不是因?yàn)槲覀冞@個(gè)行業(yè)犯了錯(cuò),而是因?yàn)檫@些系統(tǒng)的需求急劇增長(zhǎng),我們必須加快交付的速度。”

          云原生計(jì)算基金會(huì)(CNCF)維護(hù)著一個(gè)交互式的圖表,其中包含了構(gòu)成云原生生態(tài)系統(tǒng)的近1000種獨(dú)特服務(wù),其中許多是免費(fèi)和開源的。此外,三大云計(jì)算供應(yīng)商,亞馬遜網(wǎng)絡(luò)服務(wù)、微軟Azure和谷歌云都向客戶提供約200種獨(dú)特的服務(wù),涉及計(jì)算、存儲(chǔ)、數(shù)據(jù)庫、分析、網(wǎng)絡(luò)、移動(dòng)、開發(fā)工具、管理工具、物聯(lián)網(wǎng)、安全和企業(yè)應(yīng)用。

          “目前,應(yīng)用程序開發(fā)的過程實(shí)在是太碎片化了;每個(gè)企業(yè)架構(gòu)都是三層的,每個(gè)數(shù)據(jù)庫都是關(guān)系型的,每個(gè)商業(yè)應(yīng)用都是用Java編寫并部署到應(yīng)用服務(wù)器的日子已經(jīng)過去了,”RedMonk的分析師Stephen O'Grady在2020年的一篇博文中寫道。“現(xiàn)如今,基礎(chǔ)設(shè)施的唯一最具決定性的特征是:沒有單一的決定性特征。它是多樣化的,甚至是錯(cuò)誤的”。

          或者,正如前Tumblr首席技術(shù)官M(fèi)arco Arment在2015年寫道:“由于大多數(shù)現(xiàn)代網(wǎng)絡(luò)開發(fā)環(huán)境中涉及的工具數(shù)量龐大以及它們迅猛的演化速度,Web應(yīng)用開發(fā)從未像今天這樣復(fù)雜、令人費(fèi)解?!?/span>

          云計(jì)算供應(yīng)商在產(chǎn)品開發(fā)方面通過采取久經(jīng)考驗(yàn)的方法(小型化、獨(dú)立、雙比薩團(tuán)隊(duì)為響應(yīng)客戶需求而構(gòu)建服務(wù))得到的結(jié)論是:開發(fā)人員已經(jīng)在很大程度上被授予自主選擇權(quán),選擇如何將這些眾多的工具、模塊以一種能夠提供商業(yè)價(jià)值的方式組裝在一起。

          “在云中,你就像糖果店里的孩子”,金融服務(wù)企業(yè)Two Sigma的平臺(tái)工程主管Camille Fournier在接受InfoWorld采訪時(shí)說,“但隨著你的成長(zhǎng),并試圖讓事情能有機(jī)結(jié)合起來,復(fù)雜性絕對(duì)會(huì)成倍增加?!?/span>

          這導(dǎo)致許多人質(zhì)疑這種程度的選擇總體來說對(duì)普通的軟件開發(fā)人員是否是一個(gè)積極因素。或者,正如O'Grady在2020年的那篇博文中總結(jié)的那樣,“在某些情況下,龐大的可用工具清單所固有的復(fù)雜性可能成為一種優(yōu)勢(shì),而不是一種麻煩?!?/span>


          三、讓我們建立一個(gè)內(nèi)部平臺(tái)

          a07a5a54691ac85b3a2ed665384fed90.webp



          這種日益增長(zhǎng)的復(fù)雜性導(dǎo)致許多組織采用集中式平臺(tái)模式,即由內(nèi)部平臺(tái)團(tuán)隊(duì)負(fù)責(zé)審核工程師最需要的工具,建立模板,并規(guī)劃黃金路徑,以緩解他們進(jìn)入生產(chǎn)的旅程,同時(shí)也集中了財(cái)務(wù)管理、安全和治理等功能,以減輕單個(gè)開發(fā)人員的認(rèn)知負(fù)擔(dān)。

          以音樂流媒體巨頭Spotify為例,Spotify產(chǎn)品經(jīng)理Gary Niemen在2020年的一篇博文中寫道:“回顧六年左右的時(shí)間,Spotify曾經(jīng)(現(xiàn)在仍然)致力于以團(tuán)隊(duì)的自治來實(shí)踐敏捷工程的文化。這帶來了所有的優(yōu)勢(shì),也帶來了復(fù)雜的問題,包括一個(gè)碎片化的開發(fā)者工具生態(tài)系統(tǒng)。也就是,找到如何做某事的唯一方法是問你的同事?!?/span>

          隨著Spotify規(guī)模的擴(kuò)大,它發(fā)現(xiàn)原本推動(dòng)其快速增長(zhǎng)的方法實(shí)際上已經(jīng)開始失效。它需要進(jìn)行整合和簡(jiǎn)化?!澳切┍蛔C實(shí)有效的或推薦的工具應(yīng)該很容易被找到。該工具的使用方法應(yīng)該是清晰的。在使用方面,應(yīng)該有高質(zhì)量的用戶說明。而且,如果用戶碰到問題,在哪里獲得支持應(yīng)該是顯而易見的,”Niemen寫道。

          Humanitec的von Grünberg在2021年的一篇博文中寫道,一個(gè)好的內(nèi)部開發(fā)者平臺(tái)的關(guān)鍵是,在為希望繼續(xù)完成手頭工作的開發(fā)者提供自助服務(wù)和抽象出最沒有價(jià)值的任務(wù)之間找到平衡,而不使開發(fā)者感到受限。

          “擁有黃金路徑的想法不是為了限制或扼殺工程師,也不是為了設(shè)定標(biāo)準(zhǔn)而設(shè)定標(biāo)準(zhǔn)。有了黃金路徑,團(tuán)隊(duì)就不必重新發(fā)明輪子,有更少的決定要做,并且可以將他們的生產(chǎn)力和創(chuàng)造力用于更高的目標(biāo)”,Spotify產(chǎn)品經(jīng)理Niemen寫道:“他們可以重新開始快速行動(dòng)”。

          問題是,“開發(fā)人員喜歡重新發(fā)明輪子。沒有什么比建造一個(gè)更好的捕鼠器更讓我滿意的了,”顧問Simpson說。但在這個(gè)世界上,很多答案就在Stack Overflow上,這是否是對(duì)開發(fā)者時(shí)間的最佳利用?

          微軟開發(fā)者部門產(chǎn)品副總裁Amanda Silver說:“總會(huì)有一些組織試圖鉗制,而另一些組織則試圖賦予開發(fā)者權(quán)力。核心是開發(fā)者速度的概念。我們可以建立系統(tǒng),讓開發(fā)者可以寫出只有他們能寫的代碼,而不會(huì)分心或有負(fù)擔(dān)地去學(xué)習(xí)那些對(duì)他們來說沒有區(qū)別的領(lǐng)域?!?/span>

          旅游技術(shù)公司Amadeus成立于1987年,經(jīng)歷了這些技術(shù)變革的浪潮,它在大型機(jī)上建立了最初的應(yīng)用程序,在21世紀(jì)初轉(zhuǎn)向在開放的Linux平臺(tái)上構(gòu)建,現(xiàn)在則主要傾向于用Kubernetes編排調(diào)度的容器化應(yīng)用程序。

          Amadeus的基礎(chǔ)設(shè)施和云計(jì)算主管Edouard Hubin告訴InfoWorld:“我們的開發(fā)者需要能夠在我們提供的核心基礎(chǔ)上進(jìn)行開發(fā),所以這個(gè)想法是一種平臺(tái)方法,我們?yōu)樗麄兲峁┠芰ΑP录夹g(shù)為安全性和穩(wěn)定性帶來了更多的復(fù)雜性。當(dāng)你開放這樣一個(gè)系統(tǒng)時(shí),你希望有穩(wěn)定性。數(shù)據(jù)驅(qū)動(dòng)型應(yīng)用的興起對(duì)我們來說是一個(gè)完全不同層次的復(fù)雜性……。它帶來了一種編寫應(yīng)用程序和建立反饋循環(huán)的新方法。所有這些東西都是新的,并帶來了復(fù)雜性。”

          因此,Hubin希望在他能做到的地方隱藏復(fù)雜性,要么通過內(nèi)部團(tuán)隊(duì)設(shè)計(jì)解決方案,要么在有價(jià)值的地方使用托管服務(wù)。以數(shù)據(jù)庫為例,Amadeus曾經(jīng)管理自己的MongoDB實(shí)例,但現(xiàn)在使用供應(yīng)商管理的MongoDB Atlas選項(xiàng)。該公司對(duì)管理的Kubernetes也采取了類似的觀點(diǎn)。

          這并不意味著工程師不會(huì)推動(dòng)新的工具進(jìn)入生態(tài)系統(tǒng)。“有時(shí)你必須說不,”Hubin說?!白罱?,我們有一些人試圖引入一個(gè)新的數(shù)據(jù)庫。他們說得有道理,但如果標(biāo)準(zhǔn)選項(xiàng)不是很好,對(duì)公司來說,控制我們使用的數(shù)據(jù)庫的種類[仍然]總體上更有益。”

          每個(gè)大型組織都有一個(gè)廣泛的工程師群體,一些人專注于建立有彈性的系統(tǒng),并以最快的速度向客戶提供功能,而另一些人則拼命地想修補(bǔ)最新的技術(shù)。兩者都有價(jià)值,但需要謹(jǐn)慎管理,Two Sigma的Fournier說。

          她說:“你需要的是那些興奮地審視底層原理并了解精通新事物的人——因?yàn)槲倚枰腥藖砉芾砺憬饘俚腒ubernetes集群——但我也需要那些興奮地研究新事物、了解它如何工作、確定它在整個(gè)公司的有用之處的同時(shí)——以及好的伙伴來做原型并確定是否值得投資來解鎖一項(xiàng)新事物?!?/span>


          四、供應(yīng)商如何應(yīng)對(duì)復(fù)雜性

          a07a5a54691ac85b3a2ed665384fed90.webp



          與云計(jì)算軟件業(yè)務(wù)中的許多同行一樣,谷歌云的首席開發(fā)者倡導(dǎo)者Kelsey Hightower認(rèn)為,目前提供給開發(fā)者的選擇水平既是“禮物,也是詛咒”。

          禮物是有一個(gè)近乎無限的技術(shù)目錄可供構(gòu)建。詛咒是開發(fā)人員“被拉入我們將基礎(chǔ)設(shè)施泄露給他們的工作流程的情況”?,F(xiàn)在,隨著許多供應(yīng)商專注于托管服務(wù)和抽象化,鐘擺似乎正在向另一個(gè)方向擺動(dòng)。在巨大的分裂之后,我們是否應(yīng)該進(jìn)行一次大整合?

          “這個(gè)職業(yè)不僅僅是寫代碼;那是達(dá)到目的的手段,”Hightower說。“也許我們?cè)谡f,我們已經(jīng)創(chuàng)造得足夠多了,可以暫停創(chuàng)造新的東西,讓我們所擁有的東西成熟起來,回到我們各自的角色,即消費(fèi)技術(shù)。也許這就是我們?cè)谶^去十年中看到的devops和協(xié)作運(yùn)動(dòng)的圓滿結(jié)局?!?/span>

          市場(chǎng)正在通過不斷增加的獨(dú)特的服務(wù)、托管選項(xiàng)、框架、類庫和平臺(tái)來應(yīng)對(duì)這種復(fù)雜性,以幫助開發(fā)者應(yīng)對(duì)其環(huán)境的復(fù)雜性。

          “當(dāng)然,沒有供應(yīng)商現(xiàn)在或?qū)砟軌蛱峁┟恳粋€(gè)必要的部分。即使是擁有最多樣化的應(yīng)用組合和歷史上前所未有的發(fā)布節(jié)奏的AWS,也不可能滿足每一個(gè)開發(fā)者的需求,也不可能擁有每一個(gè)相關(guān)的開發(fā)者社區(qū),”O(jiān)'Grady在2020年的一篇博文中寫道。

          盡管如此,“有充分的證據(jù)表明,我們正在逐漸擺脫將買家和開發(fā)者送入迷宮般的過道,讓他們承擔(dān)挑選原件和從頭組裝的任務(wù)。如果云計(jì)算的第一個(gè)時(shí)代是由基元(譯者注:包括非常底層的基礎(chǔ)設(shè)施、類庫等)定義的,那么它的日子就要結(jié)束了。O'Grady在另一篇文章中寫道,”下一個(gè)時(shí)代可能是由我們?cè)谶@些基元之上建立的抽象概念來定義的,正如計(jì)算行業(yè)自成立以來所做的那樣。

          雖然將這些基元組裝成連貫的內(nèi)部平臺(tái)已被證明是許多以工程為主導(dǎo)的組織的成功解決辦法,但更多的傳統(tǒng)企業(yè)絕對(duì)會(huì)尋求他們的供應(yīng)商來幫助他們緩解這種復(fù)雜性。

          Kubernetes的創(chuàng)始人之一、現(xiàn)任VMware研發(fā)副總裁的Craig McLuckie在接受InfoWorld采訪時(shí)說:“復(fù)雜程度不如環(huán)境中的不一致性”。他認(rèn)為自己的角色是尋找方法,“讓開發(fā)者在處理環(huán)境的復(fù)雜性增加時(shí)生活得更輕松,這是由工具鏈的碎片化和高度可擴(kuò)展系統(tǒng)的本質(zhì)所推動(dòng)的?!?/span>

          正如MongoDB布道者M(jìn)att Asay最近為InfoWorld所寫的那樣,“如今云計(jì)算的真正故事是誰能最好地整合各種云服務(wù)。云將變得更加有趣,準(zhǔn)確來說是以一種變得更加無聊的方式實(shí)現(xiàn)”。


          五、需要機(jī)械共鳴

          a07a5a54691ac85b3a2ed665384fed90.webp



          如果我們正坐在大簡(jiǎn)化的懸崖邊上,我們是否失去了作為一個(gè)軟件開發(fā)者的本質(zhì)?

          正如英國傳奇賽車手杰基-斯圖爾特(Jackie Stewart)所說:“你不一定要成為一名工程師才能成為一名賽車手,但你必須有機(jī)械共鳴。”或者說,要成為真正的偉大,你必須對(duì)你所操作的機(jī)器有所了解。

          雖然現(xiàn)代的軟件開發(fā)人員不能指望對(duì)他們建立的復(fù)雜的、可擴(kuò)展的、分布式的系統(tǒng)有充分的機(jī)械共鳴,但也應(yīng)該盡可能多地去了解可以找到一個(gè)掌握的元素。

          “開發(fā)者喜愛秩序的人。我們喜歡了解系統(tǒng)是如何工作的,一直到底層的硬件和我們正在建立的架構(gòu)。但與此同時(shí),也有許多其他領(lǐng)域,你不一定想深入了解它,”微軟的Silver說。

          “許多開發(fā)人員和他們的團(tuán)隊(duì)的任務(wù)是確定他們的專業(yè)知識(shí)在哪里最有價(jià)值,在哪里被浪費(fèi)在重新發(fā)明輪子上。”咨詢師Simpson說:“我們最好的希望是公司能認(rèn)識(shí)到這個(gè)問題,并努力讓開發(fā)人員擺脫對(duì)機(jī)器是如何工作的擔(dān)心?;氐綐?gòu)建軟件,這是他們最擅長(zhǎng)的事情?!?/span>

          軟件開發(fā)者從來沒有像今天這樣有如此多的復(fù)雜性和選擇,但也從來沒有像現(xiàn)在這樣多的選擇來把它抽象化。這只是歸結(jié)于你和你的組織在追求你們的目標(biāo)時(shí)能承受多少復(fù)雜性。

          1af73d347980f519c4440737cf332f19.webp

          原文鏈接:https://www.infoworld.com/article/3639050/complexity-is-killing-software-developers.html

          76acc0e91d39f243d934c0419ad7589c.webp#IDCF DevOps黑客馬拉松,獨(dú)創(chuàng)端到端DevOps體驗(yàn),精益創(chuàng)業(yè)+敏捷開發(fā)+DevOps流水線的完美結(jié)合。

          #規(guī)?;艚萋?lián)合作戰(zhàn)沙盤之「烏托邦計(jì)劃」玩樂高,學(xué)敏捷,將“多團(tuán)隊(duì)敏捷協(xié)同”基因內(nèi)化在研發(fā)流程中,為規(guī)?;嵘邪l(fā)效能保駕護(hù)航!!??

          2022年社區(qū)開年賦能計(jì)劃,#DevOps黑客馬拉松?和?#規(guī)模化敏捷聯(lián)合作戰(zhàn)沙盤之「烏托邦計(jì)劃」兩大公開課,將在北京、上海、深圳、大連、成都等多個(gè)城市開啟582382c12a61c966918c3c6a0a9f5fcb.webp

          企業(yè)組隊(duì)參賽&個(gè)人參賽均可,趕緊上車~??

          8ef2231c70efce432672bd74ddfd4255.webp


          瀏覽 48
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美区国产区 | 色情视频网站在线免费观看 | 狠狠干妹子 | 午夜高清| 久久久无码成人电影 |