操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    以代碼驅動的科技世界中,越來越多的場景實現了自動化。在一定程度上,又可以將基礎設施視為代碼,而這一句話該如何理解?其中又將包含哪些設施?

    作者 | Mitch Pronschinske

    譯者 | 彎月,責編 | 屠敏

    出品 | CSDN(ID:CSDNnews)

    以下為譯文:

    你可能不太理解人們常說的“xxxx即代碼”或“一切即代碼”,其實你只需要知道我們討論的是自動化:我們利用自動化來處理繁瑣的工作,或者在某個任務過于龐大和復雜無法手動處理時,就可以考慮自動化。

    “xxxx即代碼”的說法源自“基礎設施即代碼”,以及開發運維運動——IT運營/系統管理員與開發人員共同努力,通過可重用的代碼來實現IT環境變更的自動化,并對代碼進行版本控制,就像多年前開發人員就采用這種方式來處理應用程序的代碼變更一樣。

    開發人員實現軟件交付流程的自動化已經有一段時間了,但是IT基礎架構運營/系統管理員在過去的十年中才趕上來。系統管理員也會使用自動化,但通常是通過一系列手動觸發的腳本進行的,其中有些腳本的組織性較差。而如今開發人員幫助運維推動了這一發展,目的是減少開發中的瓶頸,同時還可以自動化大多數軟件生產過程,擺脫大量的手動管理。

    那么,這些代碼都是從哪里來的呢?為了了解這一點,首先讓我們來看一看軟件生產的每個階段,看看哪些部分已經實現了“xxx即代碼”的自動化。我希望通過本文來介紹軟件開發生命周期中的哪些領域已經實現了良好的自動化和抽象化,并思考還有哪些領域有待新穎的自動化,以及了解“一切即代碼”適用于何處。我希望你可以通過本文了解“xxx即代碼”這個概念,并區分哪些工具很新穎且有實用價值,而哪些工具只是虛有其表。

    計劃/需求/設計

    這個階段位于編程工作開始之前。在這個階段,我們需要根據業務和技術利益相關者建立需求,制定軟件計劃,并繪制架構和UI設計圖以及線框設計圖。

    架構即代碼

    通過代碼創建軟件架構模型的做法已經有一段時間了。你可以利用Structurizr之類的工具以這種方式構建圖表,并運用到版本控制中。但是幾十年來,開發人員嘗試了各種方法來構建應用程序模型,結果卻各異。

    在10-20年前,模型驅動開發的概念曾一度非常熱門,但從未運用到主流開發中。這個概念的基本前提是,你可以利用UML或EMF之類的建模語言對軟件組件進行建模,并根據編程要求生成整個初始應用程序。

    雖然模型驅動的開發在很大程度上被主流開發圈子忽視,因為通常這種模式需要大量的預先設計,但是有些需要提前設計的領域仍然在使用,比如NASA。

    請注意有關術語“架構即代碼”的新興用法:AWS以及其他開發用這個術語來描述高級基礎架構即代碼的模式。很顯然,這與我在上面提到的應用程序級架構不同。AWS的架構即代碼指的是基礎設施的架構,例如容器協調器配置、負載均衡器、安全組和IAM角色等,這些架構都是通過可重復使用的模板定義的,而這些模板則面向特定的服務類型,例如負載均衡器后臺的API服務、隊列中的工作或預定的工作等。

    這些模板可以通過預先制定的配置自動提供組件,例如容器協調器配置、負載平衡器、安全組和IAM角色等。Terraform模塊、Kubernetes自定義資源定義以及主流云供應商提供的各種結構中都包含這種含義下的架構即代碼。

    項目即代碼與腳手架項目

    然而,由模型驅動開發生成代碼的概念與編程本身一樣有年頭了。將Ruby、Python或Java轉換為C代碼的編譯器都是生成器。如今甚至是新手前端程序員都明白代碼生成的重要性,因為它可以為你節省編寫樣板代碼的時間。

    在運行Ruby on Rails腳手架處理時,你運行的代碼都是在其他代碼(模板或框架應用程序)的基礎之上經過改編而成,因此你不必從零開始。熱門的流行前端框架(比如Bootstrap和Foundation)是響應式UI模板框架,它們之所以風靡整個網絡,是因為現成的CSS組件以及與移動設備兼容的動態組件可以減少建設網站的工作量。

    這個類別中有很多自動化的空間,在過去幾年中,“項目即代碼”(面向應用程序的代碼庫與交付管道設置)填補了開發運維運動中未能覆蓋的空白。有些工具(比如面向JavaScript項目的Yeoman,以及面向Java項目的JHipster)提供了最基本的功能和靈活的框架,你可以分別使用Node.js和Spring Boot + Angular建立項目。微軟的Azure等云供應商正在創建設置交付流水線的工具。還有一家公司realMethods已經構建了一個工具,它可以獲取數據庫模式或建模需求,而且你可以利用這些數據生成特定技術棧的框架代碼,以及構建和配置文件、CI/CD的清單文件YAML、Docker文件和鏡像、Kubernetes集群配置和Terraform的配置文件。

    “項目即代碼”適合于不斷發展的崇尚生產的流派,他們主張建立極端版本或強調最低可行產品的概念:雖然你不希望部署代碼庫中僅有一個幫助文檔的應用程序,但是也不需要構建功能完整的應用程序。你只需要自動化模式和管道的設置,就可以快速地部署簡單的框架應用程序,比如Web應用生產中的一個端點,且該端點能返回200狀態碼的響應。

    應用程序環境即代碼

    多年來,虛擬機、容器以及其他各種軟件生產環境的抽象都是開發人員的福音,因為這些技術不斷發展,更易于管理。當你可以自動啟動模板環境,然后舒服地開始寫代碼時,怎么可能還有人愿意嘗試和調試手動設置操作環境可能引發的100種問題呢?

    Vagrant以及后來的Docker(和一般容器)等技術簡化了開發環境的設置。容器和容器編排器(比如Kubernetes或Nomad)都成為了流行的工具,它們利用敏捷、隔離、正確配置的組件部署環境。

    你可以將這些工具視為以代碼的形式提供系統依賴性。Dockerfile是這種依賴關系(比如編程語言的版本或數據庫的版本)中的代碼和模板,而Docker是運行和滿足這些依賴關系的工具。

    版本控制

    版本控制是包羅萬象的階段,從最初完成的代碼一直到幾年后的最終產品補丁,版本控制貫穿始終。即使是大多數新手開發人員也很快開始認識到,對于現代開發來說,版本控制不可或缺。版本控制將跟蹤、開發管理、競賽條件管理以及許多其他功能都變成了代碼。

    如今,GitHub、GitLab和BitBucket之類的版本控制系統已成為大多數軟件生產管道的中樞神經系統,提供集成的持續集成(CI)、文檔生成、部署等功能。

    將軟件生產的不同元素代碼化的最大原因之一在于,我們可以將代碼放入版本控制,智能地管理。許多組織發現版本控制非常實用,以至于他們經常將版本控制擴展到應有的范圍之外。

    開發

    這個階段從第一次代碼提交到版本控制開始,一直持續到軟件步入維護。請注意,計劃-開發-部署-收集反饋的周期可能非常迅速(通常理應如此),因此這個階段的涵蓋面非常廣,大到整個項目的創建,小到一行代碼的變更。

    自動化測試

    測試是大多數開發工作流程中的關鍵部分,而測試框架的需求在編程歷史的早期就凸顯出來了。盡管并非所有類型的測試都需要自動化,而且你也不想為每種可能出現的UI用戶流程編寫測試,但無疑幾乎每個開發團隊都采用了自動測試。

    通常,單元測試都是由開發團隊編寫,而且還名列自動化測試的榜單。在代碼提交后,集成測試和UI測試通常會與單元測試打包一起運行。有些測試需要在構建之前運行,而有些則在構建之后運行。測試框架提供的自動檢查、錯誤捕獲以及代碼審查功能在現代軟件開發中是必不可少的。

    每種編程語言生態系統都有一些自己的測試框架,其中有些利用語言本身來實現“測試即代碼”,而有些則使用特定的語法。

    • 流行的JavaScript測試框架包括Jest和Mocha

    • 流行的Java測試框架包括JUnit和Spock

    • 流行的Ruby測試框架包括RSpec和Minitest

    • 流行的瀏覽器自動測試框架包括Selenium和Cypress

    自動化構建與依賴管理

    自動化構建的發展已有很長一段歷史了,其基本思路是方便開發人員快速掌握構建,并從構建項目版本時面臨的一系列繁雜的手動工作中解脫出來,開發人員可以利用工具運行代碼編寫的檢查列表,并自動化構建過程,且不會造成意外遺漏。

    在需要構建涉及以下工作的復雜環境時,自動化構建非常具有幫助性:

    • 代碼生成

    • 匯編

    • 打包

    • 元數據定制

    • 以及其他

    在Java環境中,這可能意味著根據你的配置創建DAO,或生成類映射代碼(如JAXB)。

    自動化構建還有助于彌補不同環境下的差異——即使通過本地傳遞,仍然有可能因為缺少依賴項或由于其他原因而導致在生產環境中運行失敗。這些自動化構建工具會整理好所有的庫以及其他構建部分,提供另一種形式的依賴管理。

    開發人員只需運行一個命令,或單擊一個按鈕即可完成自動構建。在有些情況下,自動化構建甚至會建立一個自動的事件鏈,開發人員無需執行任何操作,只需提交代碼,構建管理器就會自動運行。

    大多數主流編程語言都有社區推薦的自動化構建工具:

    • JavaScript:Node.js + npm + Webpack

    • Java:Gradle和Maven

    • Ruby:Rake

    • C#:MSBuild

    • C:Make

    持續集成/持續交付(CI/CD)

    通常,我們用CI/CD來描述包羅萬象的工具和實踐,隨著代碼合并到生產的頻率越來越高,這些工具和實踐將構建、測試和部署自動化的實踐整合到一起,每天都要執行很多次。

    持續集成是利用CI專用服務器將代碼分支頻繁合并到應用程序源代碼主線版本的實踐,如果在合并時發生錯誤則標記相應的代碼。持續交付的概念是指通過一套自動化,將新提交的代碼反映到應用程序最新部署的版本中。這種部署工具會自動運行自動化測試、CI、自動化構建以及為應用程序構建新容器等其他部署工作。

    如今大多數的CI工具在功能上都超越了CI的范圍。開發或發布工程團隊可以將構建步驟代碼化,甚至將構建的輸出作為代碼。然后,利用CI/CD配置,針對應用程序的代碼進行版本控制和監視。目前最流行的CI平臺是Jenkins,Jenkinsfile是它的代碼。YAML是這類CI平臺上常見的配置語言,雖然有人并不怎么待見它。

    最流行的四大CI引擎包括:Jenkins、TravisCI、CircleCI和TeamCity。

    運營

    在軟件生產的各個階段中,運營階段是由另一部分人負責的(盡管在小組織中并非如此),而通常這些人具備的技術力與開發人員有所不同。從事運營工作的人員包括系統管理員、運營工程師、開發運維工程師以及其他職位。

    這個階段的工作包括管理和提供運行應用程序所需的物理和虛擬硬件。現如今,許多專業操作人員只需要處理物理計算機之上的抽象。

    配置管理

    這個類別的工作聽起來很寬泛,但是在大多數軟件工程界中,配置管理指的是編寫各個機器定義的工具。這些工具負責在現有服務器上安裝和管理操作系統配置。

    主流的四大配置管理工具包括Chef、Puppet、Ansible和Salt。它們是制定IT基礎架構管理的首要工具(就像開發人員編寫測試、構建、CI實踐以及版本控制范圍內的那些文件),它們構成了“基礎架構即代碼”和開發運維運動的首要推動力。

    它們的優點在于能夠創建不可變的基礎架構:這意味著操作人員無需不斷更新現有的計算機配置,而是每次只需停止現有的計算機,然后啟動新的計算機,并將更新后的模板從配置管理工具移植到新啟動的計算機上,因此每次變更都需要重啟。這聽起來很極端,但是在復雜的IT運營環境中,在添加或更新信息的時候消除潛在的出錯可能,這才是更為穩妥的做法。

    基礎架構即代碼

    基礎架構即代碼提供了很多工具,這些工具除了提供配置基礎設施組件的模板之外,還可以服務于基礎設施本身。隨著越來越多的組織開始采用一鍵即可搞定的云基礎架構,基礎架構即代碼也變得更加容易。

    提供這類工具的系統包括適用于AWS的CloudFormation,僅適用于Azure的ARM和Terraform,后者是更為流行的開源工具,因為它提供了面向所有主流云提供商的設置。由于這些系統能夠大規模管理基礎架構的復雜性,因此它們已成為操作人員與基礎架構進行交互的主要界面之一。

    關于開發人員使用“一切即代碼”的說法,盡管本文介紹了該新興術語的表面意思,但實際上其更為普遍的含義表述了開發人員對基礎設施即代碼這一類靈活的狀態引擎充滿了濃厚的興趣,尤其是Terraform,它可以自動化的方面遠不止基礎設施。它可以通過類似插件的程序,自動化1Password、Google Calendar等辦公工具,還可以使用GitHub提供的程序自動執行CI/CD管道操作。我們可以借助這類工具,將多個自定義的自動化集中到一處。

    容器/集群編排器

    容器編排器可以利用容器的優勢,輕松地擴展部署和管理。虛擬機也可以得益于這種方法。

    容器編排器的核心是集群調度程序,它們是一種智能系統,可以優化云/虛擬基礎架構的使用,而你的應用程序就好像俄羅斯方塊一樣。本質上,調度器會讀取配置文件設置的規則,然后根據你的參數,按照最適合基礎設施的方式,將任意數量的應用程序、服務或組件(如負載均衡器等)部署到容器或虛擬機上。

    編排器包括具有許多其他功能的Kubernetes,以及更側重于調度的Nomad。

    安全與合規

    我們不應該將安全放到開發后,然而,很多組織往往會將安全放到最后。IT安全領域的領導者普遍認為,安全與合規應該貫穿軟件生產生命周期,無論是手動還是自動。

    安全即代碼

    從字面意思上看,安全即代碼有點寬泛,但是我們應該在軟件生產的各個領域中貫徹自動化的安全措施。這些可自動執行的操作包括:

    規劃與設計

    • 生成最初的危險模型

    • 構建自動生成安全測試的模板

    開發與測試

    • 專注于安全的靜態分析:SonarQube、FindBugs、Checkmarx

    • 動態安全測試自動化,比如DAST和滲透測試:FindBugs、Checkmarx、OWASP ZAP、ThreadFix

    • 第三方組件風險分析和警報:Snyk、BlackDuck、WhiteSource

    • 憑證/機密數據管理:HashiCorp Vault、AWS Secrets Manager

    部署與生產

    • 應用程序和基礎結構代碼的配置檢查:Burp、Hardening.io

    • 監視和警報:Snort、OSSEC

    • 生產混沌測試和滲透測試:Gauntlt、Mittn和Simian Army

    上述提到的“xxx即代碼”的實踐也可以提高安全性,因為這些自動化操作會創建經過授權、可重復以及可審核的操作,所以可以消除很多人為錯誤,減少創建安全漏洞的機會。

    政策即代碼/合規即代碼

    政策即代碼類似于CI/CD管道的大門,如果某些測試失敗或構建中斷,那么CI/CD管道將停止代碼合并。實際上,大多數政策即代碼的框架都直接集成到了版本控制系統中。有些政策即代碼涉及大規模的安全管理以及與安全相關的合規,因此從某種意義上講,它也屬于安全即代碼。但是,政策即代碼也可用于其他各種工程管理規則。

    有時,你希望限制某些用戶能夠提供的基礎架構的類型或數量。有時,你希望工程師給創建的資源加上標簽。政策即代碼的用途有無數種可能性。

    開源的政策即代碼框架包括Open Policy Agent和Chef InSpec等。一些公司將政策即代碼構建到了基礎結構管理產品中,比如HashiCorp的Sentinel框架,這種方式可以創建更深入、更專業的政策。

    “xxx即代碼”的目的是提高效率、安全或洞察力

    毋庸置疑,未來會有更多“xxx即代碼”的技術出現。但我們要記住一點,這些技術都是自動化與抽象。我們在了解新工具時,應當搞清楚其自動化軟件生產的確切領域,以及是否包含任何創新。

    利用一段配置代碼自動執行操作的好處非常多。在實現自動化時,你需要:

    • 通過組織、靜態分析和警報,加強大型組織中的代碼一致性。

    • 通過測試確保自動化工作的可靠性。

    • 選擇一種通用語言,供所有了解自動化語言的人使用。

    • 通過預先打包好的最佳實踐自動化模塊,減輕非自動化專業團隊的負擔。

    • 通過模型,了解自動化管道作業的整體概念。

    我希望通過本文的閱讀,你開始考慮在工作中引入一些自動化。

    原文:https://hackernoon.com/everything-as-code-explained-0ibg32a3

    本文為 CSDN 翻譯,轉載請注明來源出處。

    【End】

    寒隨嚴冬去,春上柳梢來。經濟復蘇按下“快進鍵”,璀璨的燈光、火熱的消費、忙碌的交通,長三角正在這個春天逐步恢復生機和活力。

    物流“忙忙忙”

    “義新歐”中歐班列路線圖。

    經濟要復蘇,物流要暢通,“世界超市”義烏春意盎然。3月21日9時58分,全國首趟搭載出口歐洲防疫物資的X8020次中歐班列從義烏西站鳴笛啟程,萬里馳援西班牙。數據顯示,“義新歐”班列已恢復至日均開行2列,高峰日開行3列的水平。今年以來,發貨量同比增長40%以上。“義新歐”中歐班列恢復常態化運行,保障了防疫救援物資和外貿貨物的國際運輸,暢通了國際鐵路物流綠色大通道。

    目前義烏全市113家郵政快遞企業已經全部復工,帶動數以萬計的采購商加速回流和上中下游產業鏈上的企業復工復產,這座“世界超市”正恢復著往日的活力。

    “世界第一大港”舟山港復工忙。進入三月,隨著各地復工復產,外貿、內貿、貨物中轉的箱量一天天在攀升,寧波舟山港也日漸繁忙起來。作為貨物吞吐量連續11年全球第一的世界級大港,它的貨物集疏運網絡和世界經濟緊密相連。

    俯瞰寧波舟山港。衛星圖來源:SENTINEL-2號衛星

    港口是經濟晴雨表。聯接“世界小商品之都”和“全球貨物吞吐量第一大港”的海鐵聯運“天天班”集裝箱列車,滿載中國小商品從浙江義烏站駛出,經寧波舟山港250多條國際航線發往全球;舟山港單日船舶靠泊艘次已基本恢復至去年同期水平;港口累計完成貨物吞吐量1.63億噸,為去年同期98%以上;完成集裝箱吞吐量406萬標準箱,恢復到去年同期近九成。在港口作業快速恢復的背后,是以寧波為代表的長三角地區制造業和外貿經濟的企穩。

    城市“亮亮亮”

    長三角地區夜間燈光圖。圖片來源:新華社

    復工復產穩步推進,夜間燈光圖上,長三角格外閃亮。燈光閃爍的背后,是成千上萬企業的復工運行,是千千萬萬民眾的生活恢復了“煙火氣”。

    數據顯示,截至3月24日,長三角三省一市復工指數均超過70%。其中,浙江省復工指數為76.53%,較一周前(3月17日)提高4.76個百分點。

    企業的復產情況如何?電力大數據給答案。上海電網數據顯示,江浙滬區域重大工程、規模以上企業、限額以上商貿企業、“專精特新”等重點企業已基本全面復工復產,產能達到節前正常水平九成,生產生活秩序加快恢復。截至3月27日,江浙滬10kV及以上工商業企業日用電量分別達10.62、8.77、1.97億千瓦時,復產率均在85%以上,呈現齊頭并進良好態勢,“世界工廠”正在加速啟動。

    上海大工業與一般工商業產能恢復“兩翼齊飛”。從電力大數據看,截至3月27日,上海規模以上企業復工復產全面按下“快進鍵”,復產率為93.04%。其中,電子、石化、機械、輕工、鋼鐵等行業,日用電量已恢復至九成以上;與居民生活相關的醫藥、水煤燃氣、煙草及交通、運輸等行業日用電量恢復也較快。在新一輪政策驅動下,商務、餐飲等陸續開放,旅游企業復工復市,預計一般工商業日用電量將繼續穩步回升。

    購買記錄里滿滿都是復工復產的印跡。江浙滬一帶復工效率領先全國,杭州全市辦公用品銷量3月上旬環比2月上旬大漲94.6%、南京上漲70%,蘇州也上漲近50%,均超全國平均水平。

    購物“買買買”

    發放消費券、2.5天休息日……政府采用多種方式提振消費。據杭州商務局統計,自3月27日杭州開放申領消費券以來,截至3月29日16時,已帶動杭州市場消費4.53億元。而此前南京作為全國首批發放消費券的城市,已經見到明顯效果,16家企業的營業額環比前一周末出現增長,平均漲幅為61.84%。除了加快研究制定發放消費券、旅游券等消費提振政策措施之外,浙江還鼓勵實施一周4.5天彈性工作制,促進疫情后消費市場復蘇。

    走出家門“買買買”,商圈開始復蘇。隨著商場陸續恢復營業,長三角主要商圈熱度逐漸回升。從熱力圖可以看出,寧波城隍廟步行街客流量相比一個多月前有很大回升,街區重現活力。

    餐飲全面復工,線上“點點點”,外賣出現“報復性進食”。截至3月28日,在全國36個重點城市(省會城市及5個計劃單列市)中,寧波、杭州的餐飲商戶復工率排名分別位列第二、第三,糖醋里脊成為江浙地區最熱銷的菜品。

    交通“跑跑跑”

    目前,長三角地區部分城市的城內出行強度明顯增大。城內出行強度與日俱增,體現出城市活力與人氣正在快速恢復中。

    導航地圖上久違的“紅配綠”回來了。高德地圖對一個月以來全國300余個城市的通勤出行熱度分析顯示,杭州領跑全國。很多人都有著這樣的感受:“高架橋又開始排隊了,公交和地鐵的車廂不再空空蕩蕩。”面對久違的堵車,網民的心情卻“一反常態”,紛紛拍照打卡,曬自己所在城市的堵車畫面:“車水馬龍又回來了!”

    地鐵不再“空蕩蕩”,客流量階梯式增長。上海、南京、杭州等地地鐵客流以周為單位出現階梯式增長,呈現出工作日高、周末較低的趨勢,說明地鐵出行客流以上班族為主,地鐵的客流也印證了復工率的提升。

    航班恢復了,人口流入快速回升。對于那些積極推進復工復產的城市而言,航班恢復帶來的直接改變是人口流入的恢復,進而提升城市各行業的運轉效率。長三角地區進出港航班數從2月下旬開始出現明顯增加,這與地區復工政策發布時間點基本一致。

    陽春三月,長三角春暖花開正當時,中國經濟復蘇的力量正在匯聚。冒著煙火氣的生活,又回來了!

    總策劃:郭奔勝

    策劃:劉娟

    監制:唐心怡 湯輝

    作者:黃潔心 王鑫蓉 祁麗君

    編導:王云霞

    制圖:李權 王亞婧

    視頻:仇炳宸 姚遠

    編輯:郭建偉

    校對:何都

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有