自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在云中利用開(kāi)源軟件進(jìn)行開(kāi)發(fā)以提高創(chuàng)新能力

云計(jì)算
企業(yè)可以在自己的云平臺(tái)上利用開(kāi)源軟件開(kāi)發(fā)應(yīng)用程序以提高創(chuàng)新能力,而無(wú)需為創(chuàng)新支付更多的費(fèi)用。

企業(yè)可以在自己的云平臺(tái)上利用開(kāi)源軟件開(kāi)發(fā)應(yīng)用程序以提高創(chuàng)新能力,而無(wú)需為創(chuàng)新支付更多的費(fèi)用。

在大多數(shù)企業(yè)中,最主要的成本是人力資源。但是通過(guò)智能地利用開(kāi)源軟件,可以顯著降低成本,即擁有GitHub的用戶(hù)群能夠?yàn)槠髽I(yè)“免費(fèi)”工作。但GitHub有6500萬(wàn)個(gè)注冊(cè)用戶(hù)帳戶(hù),必須假設(shè)其中大多數(shù)成員是開(kāi)發(fā)人員。如果圍繞GitHub巧妙地構(gòu)建,實(shí)際上可以讓這些開(kāi)發(fā)人員都成為企業(yè)的人力資源,從而使企業(yè)的工作效率遠(yuǎn)遠(yuǎn)超過(guò)亞馬遜、Facebook和微軟等大型公司,并顯著降低成本。首先說(shuō)明這個(gè)問(wèn)題,以便了解這個(gè)解決方案。

[[412034]]

問(wèn)題

一名資深的開(kāi)發(fā)人員表示,在他曾經(jīng)就職的一家公司有一個(gè)這樣的案例,有人克隆了一個(gè)開(kāi)源git存儲(chǔ)庫(kù),然后將其代碼添加到該公司私有企業(yè)云的git存儲(chǔ)庫(kù)中,然后對(duì)這個(gè)存儲(chǔ)庫(kù)進(jìn)行修改。而在兩年之后,該公司的開(kāi)發(fā)人員花費(fèi)6周的時(shí)間進(jìn)行更新,以使用其他開(kāi)發(fā)人員在GitHub上創(chuàng)建的最新版本,并嘗試在這一過(guò)程中盡可能多地保留自定義功能。行業(yè)專(zhuān)家并不認(rèn)同這個(gè)可能降低代碼質(zhì)量的做法,因?yàn)樗诘墓疽?fù)責(zé)代碼質(zhì)量。

如果可以的話,使用他所說(shuō)的“Gitless Cloud Pipelines”要好得多。也就是在使用開(kāi)源項(xiàng)目時(shí),通常不會(huì)創(chuàng)建自己的git存儲(chǔ)庫(kù),這意味著直接鏈接到開(kāi)源git存儲(chǔ)庫(kù)。其結(jié)果是如果主要開(kāi)源維護(hù)者發(fā)布了新的開(kāi)源版本,這樣一來(lái)只要想更新自己的軟件,就可以從開(kāi)源存儲(chǔ)庫(kù)中提取并更改,因?yàn)樾碌拈_(kāi)源版本是由主要開(kāi)源維護(hù)者發(fā)布的。這允許從企業(yè)內(nèi)部利用開(kāi)源軟件,這樣開(kāi)發(fā)人員就可以不斷地改進(jìn)他們自己的軟件,當(dāng)然,這對(duì)于企業(yè)是免費(fèi)的。

后端

以這名開(kāi)發(fā)人員展示在其日常工作中如何使用Magic為例。其中最關(guān)鍵的一點(diǎn)是,他從未克隆Magic,而是創(chuàng)建了一個(gè)直接指向Magic的GitHub存儲(chǔ)庫(kù)的Azure管道,并注意到了“Get sources”部分的一些特性。

需要注意源代碼如何指向GitHub,而不是Azure存儲(chǔ)庫(kù)。在上面的截圖中,只是將它直接指向主分支。在實(shí)時(shí)生產(chǎn)環(huán)境中,可能更愿意將其指向特定標(biāo)簽,除非與項(xiàng)目維護(hù)者有非常密切的關(guān)系。只是因?yàn)榧词顾?ldquo;主”分支,它仍然可能包含臨時(shí)提交。其標(biāo)簽基本上是在創(chuàng)建項(xiàng)目的新版本時(shí)創(chuàng)建的,這通常可以更好地保證項(xiàng)目的穩(wěn)定狀態(tài),然后是一些隨機(jī)的主提交。

由于這名開(kāi)發(fā)人員是Magic的主要維護(hù)者,因此對(duì)此很熟悉,因?yàn)榉浅G宄?dāng)前的“主”分支在任何特定時(shí)間點(diǎn)有多好。此外,他還關(guān)閉了管道上的CI觸發(fā)器,為提交到主分支的每個(gè)更改構(gòu)建項(xiàng)目。最后一部分至關(guān)重要,因?yàn)椴幌M魏坞S機(jī)提交觸發(fā)新構(gòu)建,尤其是對(duì)于生產(chǎn)環(huán)境來(lái)說(shuō)。這使得這一過(guò)程的自動(dòng)化程度較低,因?yàn)楸仨毴斯び|發(fā)管道而不是使用CI觸發(fā)器,但這也能夠100%地控制從開(kāi)放源代碼存儲(chǔ)庫(kù)創(chuàng)建新構(gòu)建的時(shí)間。

之后,這個(gè)管道將克隆Babel和Babelfish。這些技巧允許在特定的最終結(jié)果中使用想要的任何Magic微服務(wù)填充模塊文件夾。

這允許將模塊動(dòng)態(tài)安裝到Magic后端,作為管道的一個(gè)集成部分。

對(duì)于這個(gè)特定的管道,想為Magic啟用Windows自動(dòng)身份驗(yàn)證,只需在構(gòu)建后端之前將NuGet包添加到核心即可輕松完成。

這允許使用任何插槽動(dòng)態(tài)填充Magic后端,這些插槽是需要該特定管道的C#綁定。由于Magic的模塊化,這實(shí)際上會(huì)改變Magic的行為,而不需要任何代碼更改。

在部署后端后,將不得不應(yīng)用變量替換,只需在主要部署操作上啟用JSON變量替換即可輕松完成此操作,然后在管道的變量部分中引用想要替換的變量。

需要注意的是,出于安全原因,無(wú)法展示它們的值,但它們會(huì)在部署后端時(shí)動(dòng)態(tài)交換相關(guān)的“appsettings.json”值。

前端

前端使用類(lèi)似的機(jī)制構(gòu)建,在Angular項(xiàng)目中有一個(gè)npmrun-script部分,可以參考它來(lái)創(chuàng)建生產(chǎn)構(gòu)建。

誠(chéng)然,前端有點(diǎn)混亂,因?yàn)锳ngular在構(gòu)建過(guò)程中將所有內(nèi)容打包到隨機(jī)生成的文件中,因此很難在這里智能地引用變量,除非在其代碼中對(duì)此進(jìn)行了調(diào)整。因此為了簡(jiǎn)單起見(jiàn),在構(gòu)建管道階段在這里應(yīng)用變量替換。這會(huì)降低靈活性,因?yàn)楸仨殲槊總€(gè)環(huán)境構(gòu)建變量,當(dāng)然,假設(shè)需要在每個(gè)環(huán)境中覆蓋這些變量的話。但這對(duì)于這個(gè)特定項(xiàng)目來(lái)說(shuō)并不是什么大問(wèn)題。

也可以使用替代機(jī)制,但這包括用看起來(lái)很奇怪的#{xxx}部分散布Angular代碼,使其無(wú)法在開(kāi)箱即用的調(diào)試/開(kāi)發(fā)環(huán)境中使用,而無(wú)需先更改一大堆無(wú)用配置值。因此,對(duì)于Magic的額外“每個(gè)環(huán)境一個(gè)構(gòu)建管道”要求的代價(jià)并不高,因?yàn)樗軌虮3忠磺斜M可能通用,零開(kāi)發(fā)依賴(lài)性或配置要求使其在開(kāi)發(fā)環(huán)境中工作。

基本上,這只替換了一個(gè)變量,即后端的URL,當(dāng)然可以與使用后端變量類(lèi)似的方式創(chuàng)建這一變量,除了這發(fā)生在構(gòu)建步驟中,而不是在部署步驟中。

也可以部署任何認(rèn)為合適的方式。在日常工作的DEV環(huán)境中,只是在虛擬機(jī)上使用IIS服務(wù)器,因?yàn)檫@允許在一臺(tái)機(jī)器上部署30/50個(gè)Web應(yīng)用程序,從而顯著降低了成本。當(dāng)然,可能需要考慮采用其他應(yīng)用程序,例如Azure WebApps等。

“智能”部分

通過(guò)創(chuàng)建這樣的“Gitless云系統(tǒng)”,直接指向開(kāi)源GitHub存儲(chǔ)庫(kù),可以不斷利用添加到這些項(xiàng)目中的任何創(chuàng)新,而不必采用人工進(jìn)行合并更改。

然而,并非所有項(xiàng)目都可以使用這種方法,例如因?yàn)樗鼈冃枰薷拇a才能在環(huán)境中工作,不允許通過(guò)配置設(shè)置重寫(xiě)其行為等?;蛘咚鼈冃枰郊庸δ?,并且不提供插件架構(gòu),允許像Magic那樣動(dòng)態(tài)注入動(dòng)態(tài)功能。因此,該項(xiàng)目在其核心架構(gòu)中必須是“超級(jí)敏捷”的,允許可能需要的任何方式攔截并添加到其核心。很少有GitHub項(xiàng)目在本質(zhì)上像Magic一樣“敏捷”,所以這可能是一個(gè)挑戰(zhàn)。

如果放棄了對(duì)核心項(xiàng)目的所有控制權(quán),這對(duì)于像Magic這樣的項(xiàng)目來(lái)說(shuō)可能意義不大,因?yàn)樗撵`活性和插件架構(gòu)。但是,不能再像控制在自己的git存儲(chǔ)庫(kù)中擁有源代碼的項(xiàng)目那樣“控制”項(xiàng)目。然而,大多數(shù)GitHub項(xiàng)目的開(kāi)發(fā)人員和維護(hù)人員都非常愿意接受提供給他們的變更請(qǐng)求。

或者,可以激勵(lì)項(xiàng)目背后的開(kāi)發(fā)人員,以加快項(xiàng)目開(kāi)發(fā),并讓維護(hù)人員優(yōu)先考慮問(wèn)題。如果企業(yè)可以免費(fèi)利用6500萬(wàn)開(kāi)發(fā)人員以及他們所有的創(chuàng)新,那么在項(xiàng)目的開(kāi)發(fā)人員和企業(yè)之間建立一種共生關(guān)系,可能是一種采用更多創(chuàng)新并且成本極其低廉的方法。

 

責(zé)任編輯:趙寧寧 來(lái)源: 企業(yè)網(wǎng)D1Net
相關(guān)推薦

2019-04-17 14:58:53

開(kāi)源公共云云計(jì)算

2013-10-11 10:59:42

2009-11-20 18:39:17

2012-11-23 09:42:26

開(kāi)源軟件開(kāi)發(fā)人員

2018-06-08 15:01:20

2015-07-01 15:39:52

Ceph云存儲(chǔ)NAS

2022-03-04 14:52:27

云計(jì)算開(kāi)源

2018-12-09 16:31:39

制造商物聯(lián)網(wǎng)創(chuàng)新

2022-09-27 14:46:03

網(wǎng)絡(luò)安全計(jì)算機(jī)惡意軟件

2021-04-19 11:11:57

云計(jì)算數(shù)字

2020-05-22 11:16:49

云安全云計(jì)算

2021-03-30 11:33:45

云計(jì)算微服務(wù)云應(yīng)用

2023-08-08 13:57:48

2011-03-08 08:36:49

OraclePLM

2021-01-20 08:30:00

數(shù)據(jù)分析機(jī)器學(xué)習(xí)IT

2020-05-18 10:08:22

卓越集成中心ICoE

2013-10-11 09:31:39

開(kāi)源數(shù)據(jù)處理云計(jì)算

2017-10-16 00:24:45

2011-04-02 12:52:37

MRTG監(jiān)控

2024-03-13 20:21:12

戴爾科技OneFS軟件PowerScale
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)