云發布流水線的診斷和優化的制作方法
【專利摘要】提供了向用戶提供可以給出如何優化他們的應用的開發和效能的推薦的工具的方法和系統。例如,診斷和優化方法、系統、和引擎捕獲與構建、部署、發布、和運行用戶的應用相關聯的各種數據,并且利用這樣的數據生成關于用戶如何能夠最好地平衡高發布生產力、易管理性、和成本優化的推薦/建議。所述方法和系統利用用戶的開發過程(例如從用戶提交代碼的時間到當應用實際完成并運行的時間)的端到端詳情來生成關于所述用戶能夠優化他們的系統的方式的推薦,包括:例如所述用戶能夠如何不同地布局他們的應用拓撲、減少延遲、提高數據局部性、或者甚至優化計費成本。
【專利說明】
云發布流水線的診斷和優化
【背景技術】
[0001]云給予用戶縮放他們的工作負載的新能力。發布工作流大大得益于此。例如,由于不再存在由硬件資源強加的限制,所以現在能夠并行完成不同場景的測試。
[0002]然而,該縮放如果管理不當,則會付出很高的代價。云客戶已經變得很在意成本。他們想要能夠使高發布生產力、易管理性(ease of management)、與成本優化保持平衡。存在很多能夠增進云發布流水線的優化的因素,包括:例如,流水線拓撲、發布時間表、縮放規貝1J、自動化水平、選取的資源、定價選項、以及支付方式。難以手動地追蹤所有這些因素并且將這些因素調節為最優設置。
【發明內容】
[0003]本
【發明內容】
以簡化的形式介紹了概念的選擇,以便提供對本公開的一些方面的基本理解。本
【發明內容】
不是本公開的廣泛概述,并且并非旨在標識本公開的關鍵或者重要元素或者勾畫本公開的范圍。本
【發明內容】
僅呈現本公開的概念中的一些以作為以下提供的【具體實施方式】的序言。
[0004]本公開大體上涉及向用戶提供在線服務的方法和系統。更具體地,本公開的方面涉及向用戶提供接收關于優化他們的應用的開發和效能的推薦的能力。
[0005]本公開的一個實施例涉及一種計算機實現的方法,該計算機實現的方法包括:獲得與應用相關聯的發布工作流數據;獲得與應用相關聯的生產工作負載數據;將該發布工作流數據和該生產工作負載數據儲存在數據庫中;將所獲得的用于該應用的發布式工作流數據和生產工作負載數據與和一個或多個其它應用相關聯的數據組合;分析該組合的數據以生成診斷和優化推薦;以及將所生成的推薦提供給用戶。
[0006]在另一實施例中,獲得與應用相關聯的發布工作流數據包括捕獲與針對應用所定義的流水線的一個或者多個階段的執行相關聯的數據。
[0007]在再一實施例中,獲得與應用相關聯的生產工作負載數據包括:確定已經部署了應用;監視所部署的應用;以及基于對所部署的應用的監視,生成數據。
[0008]在另一實施例中,監視所部署的應用包括確定正被所部署的應用利用的資源的量。
[0009]在又一實施例中,監視所部署的應用包括確定跨部署的應用的所利用的資源的分配。
[0010]在另一實施例中,將所生成的推薦提供給用戶包括提供該推薦以用于在用戶可訪問的用戶界面畫面中顯示。
[0011]本公開的另一實施例涉及一種系統,該系統包括一個或多個處理器以及其上儲存有指令的非暫時性計算機可讀介質,該非暫時性計算機可讀介質耦合至一個或多個處理器,該指令在由該一個或多個處理器執行時使得該一個或多個處理器執行操作,該操作包括:獲得與應用相關聯的發布工作流數據;獲得與應用相關聯的生產工作負載數據;將該發布工作流數據和該生產工作負載數據存儲在數據庫中;將所獲得的用于該應用的發布式工作流數據和生產工作負載數據與和一個或多個其它應用相關聯的數據組合;分析所組合的數據以生成診斷和優化推薦;以及將所生成的推薦提供給用戶。
[0012]在另一實施例中,使得該系統的該一個或多個處理器進行進一步操作,該操作包括捕獲與針對應用所定義的流水線的一個或多個階段的執行相關聯的數據。
[0013]在再一實施例中,使得該系統的該一個或者多個處理器進行進一步操作,該操作包括確定已經部署了應用;監視所部署的應用;以及基于對所部署的應用的監視,生成數據。
[0014]在又一實施例中,使得該系統的該一個或者多個處理器進行進一步操作,該操作包括確定正被所部署的應用利用的資源的量。
[0015]在又一實施例中,使得該系統的該一個或者多個處理器進行進一步操作,該操作包括從與應用分離的一個或多個源獲得與一個或者多個其它應用相關聯的定價數據。
[0016]在另一實施例中,使得該系統的該一個或者多個處理器進行進一步操作,該操作包括生成用戶可訪問的用戶界面畫面;以及提供該推薦以在用戶可訪問的用戶界面畫面中顯不O
[0017]在再一實施例中,本公開涉及存儲計算機可執行指令的一個或多個非暫時性計算機可讀介質,計算機可執行指令在由一個或多個處理器執行時使得該一個或者多個處理器執行操作,該操作包括:獲得與應用相關聯的發布工作流數據;獲得與應用相關聯的生產工作負載數據;將該發布式工作流數據和該生產工作負載數據存儲在數據庫中;將所獲得的用于該應用的發布工作流數據和生產工作負載數據與和一個或多個其它應用相關聯的數據組合;分析所組合的數據以生成診斷和優化推薦;以及將所生成的推薦提供給用戶。
[0018]在一個或者多個其它實施例中,本文描述的方法,系統、以及計算機可讀介質可選地包括以下附加特征中的一個或者多個附加特征:與一個或多個其它應用相關聯的數據包括與一個或多個其它應用相關聯的定價數據;與應用相關聯的發布工作流數據包括與構建應用相關聯的數據、與部署應用相關聯的數據、以及與發布應用相關聯的數據中的至少一個;和/或與一個或多個其它應用相關聯的定價數據是從與應用分離的一個或多個源獲得的。
[0019]本公開的進一步適用范圍將從以下給出的【具體實施方式】而變得顯而易見。然而,應當理解,由于對于本領域的技術人員而言在本公開的精神和范圍內的各種變化和修改將從【具體實施方式】而變得顯而易見,所以,盡管指示了優選實施例,但是該【具體實施方式】和具體示例僅以說明的方式給出。
【附圖說明】
[0020]對于本領域的技術人員而言,本公開的這些和其它目的、特征、和特性通過結合所附權利要求書和附圖對以下【具體實施方式】的學習將變得更加顯而易見,其全部內容形成本說明書的一部分。在附圖中:
[0021]圖1是根據本文描述的一個或多個實施例的圖示了示例云計算環境的框圖。
[0022]圖2是根據本文描述的一個或多個實施例的圖示了用于云發布流水線的診斷和優化的示例系統的示意圖,該云發布式流水線包括該系統的組件之間的示例數據流。
[0023]圖3是根據本文描述的一個或多個實施例的圖示了基于與用戶的應用的開發和效能相關聯的數據來向用戶提供診斷推薦和優化推薦的示例方法的流程圖。
[0024]圖4是根據本文描述的一個或多個實施例的圖示了示例云管理控制臺的用戶界面。
[0025]圖5是根據本文描述的一個或多個實施例的圖示了云管理控制臺的另一示例的圖形用戶界面畫面。
[0026]圖6是根據本文描述的一個或多個實施例的圖示了云管理控制臺的另一示例的圖形用戶界面畫面。
[0027]圖7是根據本文描述的一個或多個實施例的圖示了示例計算設備的框圖,該示例計算設備被布置為向用戶提供接收關于如何優化他們的應用的開發和效能的推薦的能力。
[0028]本文提供的標題只是為了方便起見,并且不一定會影響本公開所要求的范圍或者含義。
[0029]在附圖中,為了便于理解和方便,相同附圖標記和任何縮略詞標識具有相同或者相似結構的元件或者動作。在以下【具體實施方式】中將對附圖進行詳細描述。
【具體實施方式】
[0030]現在將對各個示例和實施例進行描述。以下描述提供了具體的細節以供徹底理解這些示例并且使得能夠對這些示例進行描述。然而,相關領域的技術人員將理解,在沒有這些細節的情況下也可以實踐本文所描述的一個或者多個實施例。同樣,相關領域的技術人員還將理解,本公開的一個或多個實施例能夠包括本文未詳細描述的很多其它明顯的特征。此外,下面可能沒有詳細示出或描述一些眾所周知的結構或者功能,以避免不必要地模糊相關描述。
[0031]隨著云計算的出現,存在更多機會來在線進行更多應用開發過程。例如,了解開發者的應用源代碼、編譯版本(build)、該應用如何部署、該應用在哪里部署、該應用什么時候運行在重負載/輕負載下等允許對關于該應用的開發過程的相關數據進行收集。這種收集到的數據可以被用于向開發者提供如何優化部署、源代碼配置等的推薦。
[0032]本公開的實施例涉及向用戶提供能夠給出關于優化他們的應用的開發和性能的推薦的工具的方法和系統。例如,根據本文所描述的一個或多個實施例,診斷和優化引擎可以捕獲與例如,構建、部署、發布、和運行應用相關聯的各種數據,并且可以利用這樣的數據生成關于用戶(例如應用的開發者)如何能夠最好地平衡高發布生產力、易管理性、和成本優化的推薦/建議。
[0033]如下面將更詳細地描述的,本公開的方法和系統向用戶(例如消費者、訂閱者、開發者等)提供接收診斷和優化建議的能力,該診斷和優化推薦是基于在他們的應用的部署流水線的各個階段期間收集到的數據。因為用戶的應用和優先級隨時間推移而變化,所以他們也需要重新調節優化并且試演如果怎樣-將會怎樣的場景來對多個權衡進行理解。例如,許多云提供者給出假設使用隨時間推移保持恒定的保留。然而,現實中,大多數工作負載都不是如此操作的。因此,本文所描述的一個或者多個實施例利用對客戶的開發工作流的了解來為非恒定的使用模式給出保留包。
[0034]本公開的方法和系統利用用戶的開發過程(例如從用戶提交代碼的時間到當應用實際完成并運行的時間)的端到端詳情(story)來生成關于用戶能夠優化他們的系統的方式的推薦。例如,可以作出關于用戶能夠如何不同地布局他們的應用拓撲、減少延遲、提高數據局部性、或者甚至優化計費成本。例如,本文所描述的優化引擎可以確定各種云資源在用戶通常利用這樣的資源的時間段期間比在其它時間段期間更貴。同樣地,優化引擎可以推薦用戶調節現有的工作負載,以便從較低的價格中受益(例如,在國家的不同部分)。
[0035]圖1是可以實現本公開的一個或者多個實施例的示例云計算環境100。云計算環境100可以包括一個或者多個網絡或者云計算節點120、125,端節點105a、105b、105c、105n(其中“η”是任意數)可以與所述云計算節點120、125通信。端節點105a、105b、105c、105η(例如本地計算設備、用戶設備等)可以包括,例如,諸如平板計算機(105a)、膝上型計算機(105b)等便攜式計算設備、臺式計算機(105c)、個人數字助理(PDA) (105η)、蜂窩電話、智能手機等。應當理解,在圖1中圖示的特定端節點(105a、105b、105c、105η)僅是可以與云計算節點120、125通信的設備的類型的一些示例,并且,許多其它類型的端節點也可以通過各種不同的網絡和/或網絡可尋址連接(例如,web瀏覽器)與云計算環境100通信。
[0036]圖2是為云發布流水線提供診斷和優化推薦的示例系統200。根據本文所描述的一個或多個實施例,系統200可以包括診斷和優化引擎250、流水線管理器240、和應用230 (例如,web應用)。
[0037]如下面將更詳細地描述的,用戶可以為應用定義流水線。例如,用戶205可以通過向流水線管理器240提供關于應用230的各種數據(例如,定義用于應用的流水線的數據(260))來為應用230定義流水線。根據本文描述的一個或者多個實施例,例如,用戶提供的用于定義流水線的數據可以包括:指定如何構建應用230的數據、如何以及在何處部署應用230的數據、多久應當發布一次應用230、在何種條件下回復為應用230的先前版本的數據等。
[0038]根據本公開的一個或者多個實施例,用戶205可以經由基于web的用戶界面編輯器(例如,在圖4至圖6中圖示的并且在下面進一步詳細描述的云管理控制臺用戶界面400、500、和600)提供定義用于應用的流水線的數據(260);例如,用戶界面編輯器可以與流水線管理器240相關聯,并且可以包括一個或者多個控制臺,所述一個或者多個控制臺被配置為使得用戶能夠進入所述控制臺并且提交與應用開發、測試、生產、和部署相關聯的各種數據。
[0039]圖4至圖6圖示了可以用于實現本文所描述的方法中的一個或者多個方法的示例用戶界面。例如,可以向用戶提供云管理控制臺(分別圖示在圖4、圖5、和圖6的用戶界面畫面400、500、和600中)以允許用戶設置、提交、和管理他們的應用的流水線。根據本公開的一個或者多個實施例,向用戶提供從單個儀表板(Dashboard)監視、比較、和優化他們的所有云部署和云資產的能力。
[0040]在一個涉及應用“TacoTrucM墨西哥卷貨車)”的示例場景的場境中描述了在圖4至圖6中呈現的說明性用戶界面的各種特征和要素,其中,該應用“TacoTruck”包括定義的流水線(例如,在圖4中示出的示例用戶界面畫面400中的流水線405)。應當理解,該特定場景,包括示例應用、用戶界面的組件(例如,發布(Release )(410、510、610)、應用環境(Environment) (415、515、615)、權限(Permiss1n) (420、520、620)等)、流水線的組件(例如,發布(ReleaSe)(430)、部署階段(440)等)、以及在圖4至圖6中示出的其它內容都僅出于說明之目的,并且不旨在以任何方式限制本公開的范圍。[0041 ] 一旦設置了用于應用的流水線(例如,用戶205經由在圖2中示出的示例系統200中的流水線管理器240設置了用于應用230的流水線),則可以利用該定義的流水線。例如,用戶可以通過多種預定義機制(例如,提交源代碼、點擊按鈕、等待直到指定的日期和/或時間為止等)中的任意一種來觸發該流水線的執行。一旦執行流水線,該流水線進行用于構建、測試、和部署該應用所配置的(例如,由用戶205配置的)所有操作。
[0042]根據本文所描述的一個或者多個實施例,本公開的診斷和優化系統200可以捕獲(例如獲得、檢索、接收等)與為給定應用定義的流水線的執行相關聯的數據(例如,與該流水線的一個或者多個階段的執行相關聯的數據,其中“階段”可以由關于目標的核心任務(例如,構建、部署、測試)和門組成,該目標能夠是一個或多個項目(例如多個開發或測試項目))。與該流水線的執行相關聯的數據可以由系統200來捕獲或者獲得,該數據在本文中有時被稱作“發布工作流數據”。例如,與應用相關聯的發布工作流數據(270)包括:與構建該應用相關聯的數據、與部署該應用相關聯的數據、與發布該應用相關聯的數據等。根據至少一個實施例,當該流水線執行其操作時,系統200可以存儲捕獲到的發布工作流數據(例如,存儲在該系統200包括的或者與該系統200相關聯的一個或者多個數據庫中)。
[0043]診斷和優化系統200也可以被配置來捕獲與應用相關聯的生產工作負載數據(275)。例如,根據本文描述的一個或者多個實施例,在已經部署了用戶的應用(230)后,診斷和優化系統200可以獲得“生產工作負載數據”,例如,該生產工作流數據可以包括運行時數據、診斷數據、監視數據等。
[0044]在另一示例中,診斷和優化系統200可以確定已經部署了用戶的應用,監視所部署的應用,并且基于該監視來生成各種生產工作負載數據(275)。根據至少一個實施例,當該系統監視所部署的應用時,例如,其可以確定正被所部署的應用利用的資源的量、資源正如何以及在何處被該應用利用(例如跨該應用的被利用資源的分配)等。正如上面所描述的發布工作流數據(270),捕獲到的生產工作負載數據(275)也可以由該系統存儲(例如,存儲在一個或者多個數據庫中)。
[0045]利用發布工作流數據(270)和生產工作負載數據(275),系統200(例如,經由診斷和優化引擎250)可以分析用戶的應用并且生成關于用戶能夠如何優化應用的建議/推薦。根據至少一個實施例,系統200可以將發布工作流數據(270)和生產工作負載數據(275)與針對應用230獲得的定價數據(280)組合。這樣的定價數據(280)可以與應用230相關聯或者可以與一個或者多個其它應用相關聯。例如,系統200可以被配置為從其它數據源獲得定價數據,諸如關于在世界各處的各種數據中心中運行應用的成本的數據。
[0046]一旦系統200對數據(例如,發布式工作流數據(270)、生產工作負載數據(275)、定價數據(280)和/或其任何組合)進行了分析,系統200可以生成一個或者多個診斷和優化推薦(290)。例如,系統200可以確定用戶205正在將他們的應用部署到更昂貴的數據中心,并且用戶205可以通過使用不同的區域來節省開支。作為另一示例,系統200可以確定用戶的應用230在特定數據中心中正接收更多的流量(與其它數據中心相比),并且因此,用戶205能夠通過在該數據中心中增添更多的副本/實例來減少CPU負載。根據一個或者多個實施例,可以針對以下因素來生成和提供診斷和優化推薦(290):使用(例如,是否能夠重復使用或者停止使用某些現有資源)、效能(例如,是否能夠以更好的方式改變資源的大小(變大/變小))、成本(例如,是否應當利用保留定價)、以及與對用戶們的生產工作負載和發布工作流、以及云定價選項和可用性的理解相關的眾多其它因素。
[0047]圖3圖示了向用戶提供關于如何優化他們的應用的開發和效能的推薦的示例過程。根據至少一個實施例,示例過程300可以由診斷和優化引擎(例如,在圖2中示出的示例系統200中的診斷和優化引擎250)執行。
[0048]在框305處,可以獲得與應用相關聯的發布工作流數據。例如,根據至少一個實施例,診斷和優化引擎可以從與該應用(例如,由圖2中示出的示例系統200中的診斷和優化引擎250從流水線管理器240獲得并且與應用230相關聯的發布工作流數據(270))相關聯的流水線管理器獲得發布工作流數據。在框310處,可以存儲在框305處獲得的發布工作流數據(例如,存儲在圖2中示出的連接至在圖2中示出的示例系統200或者被包括在其中的一個或者多個數據庫)。
[0049]在框315處,可以獲得與該應用相關聯的生產工作負載數據。例如,根據至少一個實施例,生產工作負載數據可以由診斷和優化引擎捕獲,該診斷和優化引擎被設計用于:確定已經部署了用戶的應用,監視所部署的應用,并且基于該監視來生成各種生產工作負載數據(例如,通過圖2中示出的示例系統200中的診斷和優化引擎250從流水線管理器240獲得的與應用230相關聯的生產工作負載數據(275))。根據至少一個實施例,例如,可以在框315處獲得的生產工作負載數據可以包括正被該應用利用的資源的量、資源正如何以及在何處被該應用利用(例如,跨該應用的被利用資源的分配)等。在框320處,可以存儲在框315處獲得的生產工作負載數據(例如,連接至在圖2中示出的示例系統200或者被包括在其中的一個或者多個數據庫)。
[0050]在框325處,在框305處獲得的該應用的發布工作流數據和在框315處獲得的該應用的生產工作負載數據可以和與一個或者多個其它應用相關聯的數據組合。例如,根據至少一個實施例,在框325處,發布工作流數據和生產工作負載數據可以與針對該應用獲得的定價數據(例如,在圖2中示出的示例系統200中的(一個或多個)定價數據(280))組合。例如,這樣的定價數據可以與該應用相關聯或者可以與一個或者多個其它應用相關聯。例如,在框325處,定價數據可以從與該應用分離的一個或者多個數據源獲得(例如,在圖2中示出的示例系統200外部的數據源)。
[0051]在框330處,可以分析所組合的數據(例如,在框305處獲得的該應用的發布工作流數據、在框315處獲得的該應用的生產工作負載數據、以及在框325處獲得的與一個或者多個其它應用相關聯的數據(例如,定價數據))以生成一個或者多個診斷和優化推薦(例如,在圖2示出的示例系統200中的診斷和優化推薦(290))。
[0052]在框335處,可以將在框330處生成的診斷和優化推薦提供給用戶。例如,根據至少一個實施例,可以提供在框330處生成的診斷和優化推薦,以用于在用戶可訪問的用戶界面畫面(例如,在圖4、圖5、和圖6中分別示出的一個或者多個示例用戶界面400、500、和600)中顯不O
[0053]圖7是為了向用戶提供用于接收關于如何優化他們的應用的開發和效能的推薦的工具而布置的示例性計算機(700)的高層級框圖。例如,根據本文所描述的一個或者多個實施例,計算機(700)可以被配置為基于在針對他們的應用的部署流水線的不同階段期間所收集到的數據來為用戶提供接收診斷和優化推薦的能力。在非常基本的配置(701)中,計算設備(700)通常包括一個或者多個處理器(710)和系統存儲器(720)。存儲器總線(730)能夠被用于在處理器(710)與系統存儲器(720)之間通信。
[0054]取決于所期望的配置,處理器(710)能夠是任何類型,包括但不限于:微處理器(μP)、微控制器(yC)、數字信號處理器(DSP)、或者其任何組合。處理器(710)能夠包括一個諸如層級一緩存(611)和層級二緩存(612)的多層級緩存、處理器核(713)、和寄存器(714)。處理器核(713)能夠包括算法邏輯單元(ALU)、浮點單元(FPU)、數字信號處理核(DSP核)、或者其任何組合。存儲器控制器(716)也可以與處理器(710) —起使用,或者在一些實施方式中,存儲器控制器(715)可以是處理器(710)的內部部分。
[0055]取決于所期望的配置,系統存儲器(720)可以是任何類型,包括但不限于:易失性存儲器(諸如RAM)、非易失性存儲器(諸如R0M、閃速存儲器等)、或者其任何組合。系統存儲器(720)通常包括操作系統(721)、一個或者多個應用(722)、以及程序數據(724)。應用(722)可以包括診斷和優化系統(例如,如在圖2中示出的系統200),該診斷和優化系統用于捕獲與例如構建、部署、發布、和運行應用相關聯的各種數據,并且利用這樣的數據來生成關于用戶如何能夠平衡高發布生產力、易管理性、以及成本優化考慮的推薦/建議。
[0056]程序數據(724)可以包括存儲指令,所述指令當由一個或者多個處理設備執行時,實現基于與用戶的應用的開發和效能相關聯的數據來向用戶提供診斷和優化推薦的系統和方法。此外,根據至少一個實施例,程序數據(724)可以包括工作流數據、生產數據、和定價數據(725),該定價數據(725)可以與所獲得的給定應用的發布工作流數據和生產工作負載數據以及與不同云計算報價和可用性相關聯的各種價格數據相關。在一些實施例中,應用(722)可以被布置來在操作系統(721)上與程序數據(724)—起操作。
[0057]計算設備(700)能夠具有附加特征或功能、以及促進基本配置(701)與任何所需設備和接口之間的通信的附加接口。
[0058]系統存儲器(720)是計算機存儲介質的示例。計算機存儲介質包括但不限于RAM、R0M、EEPR0M、閃速存儲器或者其它存儲器技術,CD-ROM、數字通用硬盤(DVD)或者其它光存儲,磁帶盒、磁帶、磁盤存儲或者其它磁存儲設備,或者能夠被用于存儲所期望的信息并且能夠由計算設備700訪問的任何其它介質。任何這樣的計算機存儲介質能夠是設備(700)的一部分。
[0059]計算設備(700)能夠被實現為小型便攜式(或者移動)電子設備的一部分,諸如,手機、智能電話、個人數據助理(PDA)、個人媒體播放設備、平板計算機(平板)、無線web手表設備、個人耳機設備、專用設備、或者包括以上任何功能的混合設備。計算設備(700)也能夠被實現為包括膝上型計算機配置和非膝上型計算機配置這兩者的個人計算機。
[0060]前述的詳細描述已經經由使用框圖、流程圖、和/或示例來闡述了設備和/或處理器的各個實施例。在包含一個或多個功能和/或操作的這樣的框圖、流程圖、和/或示例的范圍內,本領域的技術人員將理解,在這樣的框圖、流程圖、或者示例內的每個功能和/或操作都能夠由廣泛的硬件、軟件、固件、或者實際上其任何組合單獨地和/或共同地來實現。在一個實施例中,本文描述的主題的多個部分可以經由專用集成電路(ASIC)、現場可編程門陣列(FPGS)、數字信號處理器(DSP)、或者其它集成的格式來實現。然而,本領域的技術人員將認識到,本文所公開的實施例的一些方面能夠整體地或部分地作為在一臺或者多臺計算機上運行的一個或者多個計算機程序、作為在一個或者多個處理器上運行的一個或者多個程序、作為固件、或者作為實際上其任何組合來等效地實現在集成電路中,并且,根據本公開,為軟件和/或固件設計電路系統和/或編寫代碼完全處于本領域的技術人員的技能范圍之內。
[0061]另外,本領域的技術人員將了解,本文描述的主題的機制能夠作為各種形式的程序產品而被分發,并且,本文描述的主題的說明性實施例無論用于實際執行該分發的非暫時性信號承載介質的特定類型如何都適用。非暫時性信號承載介質的示例包括但不限于以下:可記錄型介質,諸如,軟盤、硬盤驅動器、光盤(CD)、數字視頻盤(DVD)、數字磁帶、計算機存儲器等;傳輸介質,諸如數字和/或模擬通信介質。(例如,光纖、波導、有線通信鏈路、無線通信鏈路等)。
[0062]關于本文使用的相對多的任何復數和/或單數術語,只要適于場境和/或應用,則本領域的技術人員能夠將復數轉化為單數和/或將單數轉化為復數。為清楚起見,本文可以明確地闡述各種單數/復數排列組合。
[0063]在此處討論的系統收集關于用戶的個人信息或者可以對個人信息加以利用的情況下,可以向用戶提供機會來控制程序或者特征是否收集用戶信息(例如,關于用戶的社交網絡、社會行為或者活動、職業、用戶偏好、或者用戶當前位置的信息)。
[0064]因此,已經對本主題的特定實施例進行了描述。其它實施例在以下權利要求書的范圍內。在一些情況下,在權利要求書中記載的動作能夠按照不同的順序執行并且仍然可以達到所需的結果。此外,在附圖中描繪的過程不一定要求所示出的特定順序或者連續次序來達到所期望的效果。在某些實施方式中,多任務處理和并行處理可能是有利的。
【主權項】
1.一種計算機實現的方法,包括: 獲得(305)與應用相關聯的發布工作流數據; 獲得(315)與所述應用相關聯的生產工作負載數據; 將所述發布工作流數據和所述生產工作負載數據存儲(310、320)在數據庫中; 將所獲得的用于所述應用的所述發布工作流數據和所述生產工作負載數據與和一個或多個其它應用相關聯的數據組合(325); 分析(330)所組合的數據以生成診斷和優化推薦;以及 將所生成的推薦提供(335)給用戶。2.根據權利要求1所述的方法,其中,與一個或多個其它應用相關聯的所述數據包括與一個或多個其它應用相關聯的定價數據。3.根據權利要求1所述的方法,其中,獲得與所述應用相關聯的發布工作流數據包括: 捕獲與針對所述應用所定義的流水線的一個或者多個階段的執行相關聯的數據。4.根據權利要求1所述的方法,其中,與所述應用相關聯的所述發布工作流數據包括:與構建所述應用相關聯的數據、與部署所述應用相關聯的數據、以及與發布所述應用相關聯的數據中的至少一個。5.根據權利要求1所述的方法,其中,獲得與所述應用相關聯的生產工作負載數據包括: 確定已經部署了所述應用; 監視所部署的應用;以及 基于對所部署的應用的所述監視,生成數據。6.根據權利要求5所述的方法,其中,監視所部署的應用包括:確定正被所部署的應用利用的資源的量。7.根據權利要求5所述的方法,其中,監視所部署的應用包括:確定跨所部署的應用的所利用的資源的分配。8.根據權利要求2所述的方法,其中,與所述一個或多個其它應用相關聯的所述定價數據是從與所述應用分離的一個或多個源獲得的。9.根據權利要求1所述的方法,其中,將所生成的推薦提供給所述用戶包括:提供所述推薦以用于在所述用戶可訪問的用戶界面畫面中顯示。10.—種系統,包括: 一個或多個處理器;以及 其上存儲有指令的非暫時性計算機可讀介質,所述非暫時性計算機可讀介質耦合至所述一個或多個處理器,所述指令在由所述一個或多個處理器執行時,使得所述一個或多個處理器執行操作,所述操作包括: 獲得(305)與應用相關聯的發布工作流數據; 獲得(315)與所述應用相關聯的生產工作負載數據; 將所述發布工作流數據和所述生產工作負載數據存儲(310、320)在數據庫中; 將所獲得的用于所述應用的所述發布工作流數據和所述生產工作負載數據與和一個或多個其它應用相關聯的數據組合(325); 分析(330)所組合的數據以生成診斷和優化推薦;以及; 將所生成的推薦提供(335)給用戶。11.根據權利要求10所述的系統,其中,與一個或多個其它應用相關聯的所述數據包括與一個或多個其它應用相關聯的定價數據。12.根據權利要求10所述的系統,其中,所述一個或多個處理器被使得執行進一步的操作,所述操作包括: 捕獲與針對所述應用所定義的流水線的一個或多個階段的執行相關聯的數據。13.根據權利要求10所述的系統,其中,與所述應用相關聯的所述發布工作流數據包括:與構建所述應用相關聯的數據、與部署所述應用相關聯的數據、以及與發布所述應用相關聯的數據中的至少一個。14.根據權利要求10所述的系統,其中,所述一個或多個處理器被使得執行進一步的操作,所述操作包括: 確定已經部署了所述應用; 監視所部署的應用;以及 基于對所部署的應用的所述監視,生成數據。15.根據權利要求14所述的系統,其中,所述一個或多個處理器被使得執行進一步的操作,所述操作包括: 確定正被所部署的應用利用的資源的量。16.根據權利要求11所述的系統,其中,所述一個或多個處理器被使得執行進一步的操作,所述操作包括: 從與所述應用分離的一個或多個源獲得與所述一個或多個其它應用相關聯的定價數據。17.根據權利要求10所述的系統,其中,所述一個或多個處理器被使得執行進一步的操作,所述操作包括: 生成所述用戶可訪問的用戶界面畫面;以及 提供所述推薦以用于在所述用戶界面畫面中顯示。18.存儲計算機可執行指令的一個或多個非暫時性計算機可讀介質,所述計算機可執行指令在由一個或多個處理器執行時使得所述一個或多個處理器執行操作,所述操作包括: 獲得(305)與應用相關聯的發布工作流數據; 獲得(315)與所述應用相關聯的生產工作負載數據; 將所述發布工作流數據和所述生產工作負載數據存儲(310,320)在數據庫中; 將所獲得的用于所述應用的所述發布工作流數據和所述生產工作負載數據與和一個或多個其它應用相關聯的數據組合(325); 分析(330)所組合的數據以生成診斷和優化推薦;以及 將所生成的推薦提供(335)給用戶。19.根據權利要求18所述的一個或多個非暫時性計算機可讀介質,其中,所述計算機可執行指令在由所述一個或多個處理器執行時使得所述一個或多個處理器執行進一步的操作,所述操作包括: 捕獲與針對所述應用所定義的流水線的一個或多個階段的執行相關聯的數據。20.根據權利要求18所述的一個或多個非暫時性計算機可讀介質,其中,所述計算機可執行指令在由所述一個或多個處理器執行時使得所述一個或多個處理器執行進一步的操作,所述操作包括: 確定已經部署了所述應用; 監視所部署的應用;以及 基于對所部署的應用的所述監視,生成數據。21.根據權利要求18所述的一個或多個非暫時性計算機可讀介質,其中,與所述一個或多個其它應用相關聯的所述數據包括與一個或多個其它應用相關聯的定價數據。22.根據權利要求18所述的一個或多個非暫時性計算機可讀介質,其中,與所述應用相關聯的所述發布工作流數據包括:與構建所述應用相關聯的數據、與部署所述應用相關聯的數據、以及與發布所述應用相關聯的數據中的至少一個。
【文檔編號】G06F9/50GK106030529SQ201580008835
【公開日】2016年10月12日
【申請日】2015年2月25日
【發明人】王來, 肯尼斯·保羅·菲什金, 克里斯·史密斯
【申請人】谷歌公司