DE202015009252U1 - Diagnose und Optimierung von Cloud-Freigabepipelines - Google Patents

Diagnose und Optimierung von Cloud-Freigabepipelines Download PDF

Info

Publication number
DE202015009252U1
DE202015009252U1 DE202015009252.7U DE202015009252U DE202015009252U1 DE 202015009252 U1 DE202015009252 U1 DE 202015009252U1 DE 202015009252 U DE202015009252 U DE 202015009252U DE 202015009252 U1 DE202015009252 U1 DE 202015009252U1
Authority
DE
Germany
Prior art keywords
application
data
data associated
processors
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE202015009252.7U
Other languages
English (en)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE202015009252U1 publication Critical patent/DE202015009252U1/de
Expired - Lifetime legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

System, das Folgendes umfasst:
einen oder mehrere Prozessor(en); und
ein nicht transitorisches computerlesbares Medium, das gekoppelt ist mit dem einen oder den mehreren Prozessoren, die darin gespeicherte Anweisungen aufweisen, die, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, Operationen durchzuführen, umfassend:
Erhalten (305) von Freigabe-Arbeitsablaufdaten, die einer Anwendung zugeordnet sind;
Erhalten (315) von Produktions-Arbeitslastdaten, die der Anwendung zugeordnet sind;
Speichern (310, 320) der Freigabe-Arbeitsablaufdaten und der Produktions-Arbeitslastdaten in einer Datenbank;
Kombinieren (325) der Freigabe-Arbeitsablaufdaten und der Produktions-Arbeitslastdaten, die für die Anwendung mit Daten erhalten werden, die einer oder mehreren anderen Anwendungen zugeordnet sind;
Analysieren (330) der kombinierten Daten, um Diagnose- und Optimierungsempfehlungen zu generieren; und
Bereitstellen (335) der generierten Empfehlungen an den Benutzer.

Description

  • HINTERGRUND
  • Die Cloud bietet Benutzern neue Möglichkeiten, ihre Arbeitslasten zu skalieren. Freigabe-Arbeitsabläufe profitieren davon erheblich. Beispielsweise kann nun das Testen unterschiedlicher Szenarien parallel erfolgen, da die durch Hardwareressourcen auferlegten Einschränkungen nicht länger vorhanden sind.
  • Unter Schutz gestellt werden und Gegenstand des Gebrauchsmusters sind dabei, entsprechend den Vorschriften des Gebrauchsmustergesetzes, lediglich Vorrichtungen wie in den beigefügten Schutzansprüchen definiert, jedoch keine Verfahren. Soweit nachfolgend in der Beschreibung gegebenenfalls auf Verfahren Bezug genommen wird, dienen diese Bezugnahmen lediglich der beispielhaften Erläuterung der in den beigefügten Schutzansprüchen unter Schutz gestellten Vorrichtung oder Vorrichtungen.
  • Diese Skalierung kann jedoch mit hohen Kosten verbunden sein, wenn sie nicht ordnungsgemäß verwaltet wird. Cloud-Kunden sind sehr kostenbewusst geworden. Sie wollen in der Lage sein, hohe Freigabe-Produktivität, einfache Verwaltung und Kostenoptimierung im Gleichgewicht zu halten. Es gibt viele Faktoren, die zur Optimierung einer Cloud-Freigabepipeline beitragen können, einschließlich zum Beispiel Pipeline-Topologie, Freigabe-Zeitplan, Skalierungsregeln, Automatisierungsebene, ausgewählte Ressourcen, Preisoptionen und Zahlungsmethoden. Dem Nachgehen all dieser Faktoren und Abstimmen derselben für ein optimales Setup ist schwer manuell zu erledigen.
  • ZUSAMMENFASSUNG
  • Diese Zusammenfassung führt eine Auswahl von Konzepten in einer vereinfachten Form ein, um ein grundlegendes Verständnis einiger Aspekte der vorliegenden Offenbarung bereitzustellen. Diese Zusammenfassung ist keine umfangreiche Übersicht über die Offenlegung und zielt nicht darauf ab, Schlüssel- oder kritischen Elemente der Offenlegung festzustellen oder den Umfang der Offenlegung abzugrenzen. Diese Zusammenfassung stellt bloß einige der Konzepte der Offenlegung dar, wie eine Einleitung zur ausführlichen Beschreibung, die unten zur Verfügung gestellt wird.
  • Die vorliegende Offenbarung bezieht sich allgemein auf Verfahren und Systeme zum Bereitstellen von Online-Diensten für Benutzer. Genauer gesagt beziehen sich Aspekte der vorliegenden Offenbarung darauf, Benutzern die Möglichkeit zu bieten, Empfehlungen hinsichtlich dem Optimieren der Entwicklung und der Leistungsfähigkeit ihrer Anwendungen zu erhalten.
  • Eine Ausführungsform der vorliegenden Offenbarung betrifft ein computerimplementiertes Verfahren, umfassend: Erhalten von Freigabe-Arbeitsablaufdaten, die einer Anwendung zugeordnet sind; Erhalten von mit der Anwendung assoziierten Produktions-Arbeitslastdaten; Speichern der Freigabe-Arbeitsablaufdaten und der Produktions-Arbeitslastdaten in einer Datenbank; Kombinieren der Freigabe-Arbeitsablaufdaten und der Produktions-Arbeitslastdaten, die für die Anwendung mit Daten erhalten werden, die einer oder mehreren anderen Anwendungen zugeordnet sind; Analysieren der kombinierten Daten, um Diagnose- und Optimierungsempfehlungen zu generieren; und Bereitstellen der generierten Empfehlungen für den Benutzer.
  • In einer anderen Ausführungsform enthält das Erhalten von Freigabe-Arbeitsablaufdaten, die der Anwendung zugeordnet sind, Erfassen von Daten, die der Ausführung einer oder mehrerer Stadien einer für die Anwendung definierten Pipeline zugeordnet sind.
  • In einer noch weiteren Ausführungsform umfasst das Erhalten von mit der Anwendung assoziierten Produktions-Arbeitslastdaten: Bestimmen, dass die Anwendung bereitgestellt worden ist; Überwachung der eingesetzten Anwendung; und Generieren von Daten basierend auf der Überwachung der eingesetzten Anwendung.
  • In einer anderen Ausführungsform enthält die Überwachung der eingesetzten Anwendung das Bestimmen einer Menge von Ressourcen, die von der eingesetzten Anwendung verwendet werden.
  • In einer noch weiteren Ausführungsform enthält das Überwachen der eingesetzten Anwendung das Bestimmen einer Zuweisung von genutzten Ressourcen quer über die eingesetzte Anwendung hinweg.
  • In einer anderen Ausführungsform enthält das Bereitstellen der generierten Empfehlungen für den Benutzer das Bereitstellen der Empfehlungen zur Anzeige in einem Benutzerschnittstellenbildschirm, auf den der Benutzer zugreifen kann.
  • Eine andere Ausführungsform der vorliegenden Erfindung bezieht sich auf ein System mit einem oder mehreren Prozessoren und einem nicht transitorischen computerlesbaren Medium, das mit dem einen oder den mehreren Prozessoren gekoppelt ist, auf denen Anweisungen gespeichert sind, die, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren zu veranlassen, Operationen durchzuführen, umfassend: Erhalten von Freigabe-Arbeitsablaufdaten, die einer Anwendung zugeordnet sind; Erhalten von mit der Anwendung assoziierten Produktions-Arbeitslastdaten; Speichern der Freigabe-Arbeitsablaufdaten und der Produktions-Arbeitsablaufdaten in einer Datenbank; Kombinieren der Freigabe-Arbeitslastdaten und der Produktions-Arbeitslastdaten, die für die Anwendung mit Daten erhalten werden, die einer oder mehreren anderen Anwendungen zugeordnet sind; Analysieren der kombinierten Daten, um Diagnose- und Optimierungsempfehlungen zu generieren; und Bereitstellen der generierten Empfehlungen für den Benutzer.
  • In einer anderen Ausführungsform werden der eine oder die mehreren Prozessoren des Systems veranlasst, weitere Operationen durchzuführen, umfassend das Erfassen von Daten, die der Ausführung einer oder mehrerer Stadien einer für die Anwendung definierten Pipeline zugeordnet sind.
  • In einer noch weiteren Ausführungsform werden der eine oder die mehreren Prozessoren des Systems veranlasst, weitere Operationen durchzuführen: Bestimmen, dass die Anwendung eingesetzt wurde; Überwachen der eingesetzten Anwendung; und Generieren von Daten basierend auf der Überwachung der eingesetzten Anwendung.
  • In noch einer weiteren Ausführungsform werden der eine oder die mehreren Prozessoren des Systems veranlasst, weitere Operationen durchzuführen, umfassend das Bestimmen einer Menge von Ressourcen, die von der eingesetzten Anwendung verwendet werden.
  • In noch einer weiteren Ausführungsform werden der eine oder die mehreren Prozessoren des Systems veranlasst, weitere Operationen durchzuführen, umfassend das Erhalten von Preisdaten, die der einen oder mehreren anderen Anwendungen zugeordnet sind, aus einer oder mehreren von der Anwendung getrennten Quellen.
  • In einer anderen Ausführungsform werden der eine oder die mehreren Prozessoren des Systems veranlasst, weitere Operationen durchzuführen, umfassend: Generieren eines Benutzerschnittstellenbildschirms, der dem Benutzer zugänglich ist; und Bereitstellen der Empfehlungen für die Anzeige auf dem Benutzerschnittstellenbildschirm.
  • Noch eine weitere Ausführungsform der vorliegenden Offenbarung betrifft ein oder mehrere nicht transitorische computerlesbare Medien, die computerausführbare Befehle speichern, die, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, veranlassen, dass der eine oder die mehreren Prozessoren Operationen durchführen, umfassend: Erhalten von mit einer Anwendung assoziierten Freigabe-Arbeitsablaufdaten; Erhalten von mit der Anwendung assoziierten Produktions-Arbeitslastdaten; Speichern der Freigabe-Arbeitsablaufdaten und der Produktions-Arbeitsablaufdaten in einer Datenbank; Kombinieren von Freigabe-Arbeitsablaufdaten und Produktions-Arbeitsablaufdaten mit einer oder mehreren weiteren Anwendung assoziierten Daten; Analysieren kombinierter Daten zur Generierung von Diagnose- und Optimierungsempfehlungen; und Bereitstellen generierter Empfehlungen für den Benutzer.
  • In einer oder mehreren weiteren Ausführungsformen können die hierin beschriebenen Verfahren, Systeme und computerlesbaren Medien wahlweise eines oder mehrere der folgenden zusätzlichen Merkmale enthalten: die Daten, die einer oder mehreren anderen Anwendungen zugeordnet sind, beihalten mit einer oder mehreren anderen Anwendungen assoziierte Preisdaten; die Freigabe-Arbeitsablaufdaten, die der Anwendung zugeordnet sind, enthalten mindestens eine der Daten, die dem Aufbauen der Anwendung zugeordnet sind, Daten, die dem Bereitstellen der Anwendung zugeordnet sind, und Daten, die dem Freigeben der Anwendung zugeordnet sind; und/oder die Preisdaten, die der einen oder mehreren anderen Anwendungen zugeordnet sind, die aus einer oder mehreren von der Anwendung getrennten Quellen erhalten werden.
  • Der weitere Geltungsbereich der vorliegenden Offenbarung wird aus der nachstehenden detaillierten Beschreibung ersichtlich werden. Es sollte jedoch verstanden werden, dass die detaillierte Beschreibung und die spezifischen Beispiele, obgleich sie bevorzugte Ausführungsformen zeigen, nur zur Veranschaulichung bereitgestellt werden, da verschiedene Änderungen und Modifikationen innerhalb des Erfindungsgedankens und des Geltungsbereichs der Offenbarung für den Fachmann auf dem Gebiet aus dieser detaillierten Beschreibung ersichtlich werden.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Diese und andere Aufgaben, Merkmale und Eigenschaften der vorliegenden Offenbarung werden für den Fachmann nach einem Studium der folgenden detaillierten Beschreibung in Verbindung mit den beigefügten Ansprüchen und Zeichnungen, die alle einen Teil dieser Beschreibung bilden, deutlicher werden. Die Zeichnungen umfassen Folgendes:
  • 1 stellt ein Blockdiagramm dar, das eine beispielhafte Cloud-Computerumgebung gemäß einer oder mehrerer hierin beschriebenen Ausführungsformen abbildet.
  • 2 stellt ein schematisches Diagramm dar, das ein beispielhaftes System zur Diagnose und Optimierung von Cloud-Freigabepipelines einschließlich beispielhafter Datenströme zwischen Komponenten des Systems gemäß einer oder mehrerer hierin beschriebenen Ausführungsformen abbildet.
  • 3 stellt ein Flussdiagramm dar, das ein beispielhaftes Verfahren zum Bereitstellen von Diagnose- und Optimierungsempfehlungen für einen Benutzer auf der Grundlage von Daten abbildet, die der Entwicklung und der Leistung der Anwendung des Benutzers gemäß einer oder mehrerer hierin beschriebenen Ausführungsformen zugeordnet sind.
  • 4 ist eine Benutzerschnittstelle, die eine beispielhafte Cloudverwaltungskonsole gemäß einer oder mehrerer hierin beschriebenen Ausführungsformen abbildet.
  • 5 ist ein graphischer Benutzerschnittstellenbildschirm, der ein weiteres Beispiel einer Cloudverwaltungskonsole gemäß einer oder mehrerer hierin beschriebenen Ausführungsformen abbildet.
  • 6 ist ein grafischer Benutzerschnittstellenbildschirm, der ein weiteres Beispiel einer Cloudverwaltungskonsole gemäß einer oder mehrerer hierin beschriebenen Ausführungsformen abbildet.
  • 7 ist ein Blockdiagramm, das eine beispielhafte Rechenvorrichtung abbildet, die angeordnet ist, um Benutzern die Möglichkeit bereitzustellen, Empfehlungen zu erhalten, wie die Entwicklung und die Leistungsfähigkeit ihrer Anwendungen gemäß einer oder mehrerer hierin beschriebenen Ausführungsformen zu optimieren ist.
  • Die hierin bereitgestellten Überschriften dienen nur der Bequemlichkeit und haben nicht notwendigerweise einen Einfluss auf den Umfang oder die Bedeutung dessen, was in der vorliegenden Offenlegung behauptet wird.
  • In den Zeichnungen kennzeichnen die gleichen Bezugsziffern und alle mögliche Akronyme Elemente oder Handlungen mit der gleichen oder einer ähnliche Struktur oder Funktionalität zur Erleichterung des Verständnisses und der Bequemlichkeit. Die Zeichnungen werden im Detail im Verlauf der folgenden detaillierten Beschreibung beschrieben.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Es werden nun verschiedene Beispiele und Ausführungsformen beschrieben. Die folgende Beschreibung bietet spezifische Details für ein vollständiges Verständnis und ermöglicht die Beschreibung dieser Beispiele. Jemand, der in der entsprechenden Kunst erfahren ist, wird jedoch verstehen, dass ein oder mehrere hierin beschriebenen Ausführungsformen ohne viele dieser Details angewandt werden können. Gleichwohl wird der Fachmann auch verstehen, dass eine oder mehrere Ausführungsformen der vorliegenden Offenbarung viele andere offensichtliche Merkmale enthalten können, die hier nicht im Detail beschrieben werden. Zudem können einige wohlbekannte Strukturen oder Funktionen nachfolgend nicht im Detail gezeigt oder beschrieben werden, um in der entsprechenden Beschreibung nicht für eine unnötige Verwirrung zu sorgen.
  • Mit dem Aufkommen von Cloud Computing gibt es eine Chance, mehr des Anwendungsentwicklungsprozess online durchzuführen. Beispielsweise ermöglicht das Wissen über einen Quellcode des Entwicklers, den Aufbau, wie die Anwendung eingesetzt wird, wo die Anwendung eingesetzt wird, wann die Anwendung unter einer schweren/leichten Last läuft, etc. das Erfassen der relevanten Daten über den Entwicklungsprozess der Anwendung. Solche gesammelten Daten können verwendet werden, um dem Entwickler Empfehlungen bereitzustellen, wie der Einsatz, Quellcode-Konfigurationen und dergleichen zu optimieren ist.
  • Ausführungsformen der vorliegenden Offenbarung betreffen Verfahren und Systeme, um Benutzern ein Werkzeug bereitzustellen, das Empfehlungen zur Optimierung der Entwicklung und der Leistungsfähigkeit deren Anwendungen bieten kann. Beispielsweise kann in Übereinstimmung mit einer oder mehreren hierin beschriebenen Ausführungsformen eine Diagnose- und Optimierungsmaschine verschiedene Daten erfassen, die beispielsweise dem Aufbauen, dem Einsetzen, dem Freigeben und dem Ausführen einer Anwendung zugeordnet sind, und kann solche Daten verwenden, um Empfehlungen/Vorschläge zu generieren, wie ein Anwender (z. B. Entwickler der Anwendung) eine hohe Produktivität, einfache Verwaltung und Kostenoptimierung am besten im Gleichgewicht halten kann.
  • Wie nachstehend detaillierter beschrieben wird, statten die Verfahren und Systeme der vorliegenden Offenbarung Benutzer (z. B. Kunden, Abonnenten, Entwickler usw.) mit der Fähigkeit aus, Diagnose- und Optimierungsvorschläge basierend auf Daten, die während verschiedener Stadien der Einsatzpipeline für ihre Anwendungen gesammelt wurden, zu erhalten. Da sich Benutzeranwendungen und -prioritäten im Laufe der Zeit ändern, müssen sie auch die Optimierung neu abstimmen und Was-wenn-Szenarien durchspielen, um Kompromisse zu verstehen. Beispielsweise bieten viele Cloud-Anbieter Reservierungen an, die davon ausgehen, dass die Nutzung über die Zeit konstant ist. Allerdings entspricht das nicht dem, wie die meisten Arbeitslasten in der Realität ablaufen. Dementsprechend nutzen eine oder mehrere Ausführungsformen, die hierin beschrieben sind, Kenntnisse über den Entwicklungs-Arbeitsablauf der Kunden, um Reservierungspakete für nicht-konstante Nutzungsmuster anzubieten.
  • Die Verfahren und Systeme der vorliegenden Offenbarung verwenden die End-to-End-Entstehung des Entwicklungsprozesses eines Benutzers (z. B. von dem Zeitpunkt an, zu dem der Benutzer einen Code einreicht, bis wenn die Anwendung tatsächlich ausgeführt wird), um Empfehlungen bezüglich der Art und Weise, auf die der Benutzer sein System optimieren kann, zu generieren. Beispielsweise können Empfehlungen dazu gemacht werden, inwiefern ein Benutzer seine Anwendungs-Topologie unterschiedlich gestalten, die Latenz verringern, die Datenlokalität erhöhen oder sogar die Abrechnungskosten optimieren kann. Beispielsweise kann die hierin beschriebene Optimierungsmaschine identifizieren, dass verschiedene Cloud-Ressourcen während der Zeitperioden, in denen der Benutzer typischerweise solche Ressourcen verwendet, teurer sind als während anderer Zeitperioden. Als solches kann die Optimierungsmaschine empfehlen, dass der Benutzer vorhandene Arbeitslasten anpasst, um von niedrigeren Preisen (z. B. in einem anderen Teil des Landes) Gebrauch zu machen.
  • 1 ist eine beispielhafte Cloud-Computing-Umgebung 100, in der eine oder mehrere Ausführungsformen der vorliegenden Offenbarung implementiert werden können. Die Cloud-Computing-Umgebung 100 kann einen oder mehrere Netzwerk- oder Cloud-Computing-Knoten 120, 125 enthalten, wobei deren Endknoten 105a, 105b, 105c, 105n (wobei ”n” eine beliebige Zahl ist) kommunizieren können. Die Endknoten 105a, 105b, 105c, 105n (z. B. lokale Computergeräte, Benutzergeräte usw.) können beispielsweise tragbare Computergeräte, wie beispielsweise Tablet-Computer (105a), Laptop-Computer (105b) usw., Desktop-Computer (105c), persönliche digitale Assistenten (PDA) (105n), Mobiltelefone, Smartphones und dergleichen enthalten. Es versteht sich, dass die in 1 im speziellen abgebildeten Endknoten (105a, 105b, 105c, 105n) nur einige Beispiele von Gerätetypen darstellen, die mit den Cloud-Computing-Knoten 120, 125 kommunizieren können und dass zahlreiche andere Typen von Endknoten auch über eine Vielzahl von verschiedenen Netzwerken und/oder Netzwerk-adressierbaren Verbindungen mit der Cloud-Computing-Umgebung 100 kommunizieren können (z. B. Webbrowser).
  • 2 ist ein Beispielsystem 200 zum Bereitstellen von Diagnose- und Optimierungsempfehlungen für Cloud-Freigabepipelines. Gemäß einer oder mehrerer hierin beschriebenen Ausführungsformen kann das System 200 eine Diagnose- und Optimierungsmaschine 250, einen Pipelineverwalter 240 und eine Anwendung 230 (z. B. eine Web-Anwendung) enthalten.
  • Wie nachfolgend detaillierter beschrieben wird, kann ein Benutzer eine ”Pipeline” für eine Anwendung definieren. Beispielsweise kann der Benutzer 205 eine Pipeline für die Anwendung 230 durch Ausstatten des Pipelineverwalters 240 mit verschiedenen Daten (z. B. Daten, die die Pipeline für die Anwendung (260) definieren) bezüglich der Anwendung 230 definieren. Gemäß einer oder mehreren hierin beschriebenen Ausführungsformen können die Daten, die von dem Benutzer bereitgestellt werden können, um die Pipeline zu definieren, beispielsweise Daten enthalten, die spezifizieren, wie die Anwendung 230 aufgebaut werden soll, wie und wo die Anwendung 230 eingesetzt werden soll, wie oft die Anwendung 230 freigegeben werden soll, die Bedingungen, unter denen zu einer früheren Freigabe der Anwendung 230 zurückgekehrt werden soll, und dergleichen.
  • Gemäß einer oder mehreren Ausführungsformen der vorliegenden Offenbarung kann der Benutzer 205 die Daten bereitstellen, die die Pipeline für die Anwendung (260) über einen webbasierten Benutzeroberflächeneditor definieren (z. B. die Cloudverwaltungskonsole 400, 500 und 600, dargestellt in den 4 bis 6 und weiter unten detaillierter beschrieben). Beispielsweise kann der Benutzeroberflächeneditor dem Pipelineverwalter 240 zugeordnet sein und kann eine oder mehrere Konsolen umfassen, die konfiguriert sind, dem Benutzer zu ermöglichen, verschiedene Daten einzugeben und einzureichen, die der Entwicklung, dem Testen, der Produktion und dem Einsatz der Anwendung zugeordnet sind.
  • Die 4 bis 6 zeigen beispielhafte Benutzerschnittstellen, die bei der Implementierung eines oder mehrerer der hierin beschriebenen Verfahren und Systeme verwendet werden können. Beispielsweise kann ein Benutzer mit einer Cloud-Verwaltungskonsole (dargestellt in den Benutzeroberflächen-Bildschirmen 400, 500 und 600 der entsprechenden 4, 5 bzw. 6) versehen sein, um dem Benutzer zu ermöglichen, eine Pipeline für seine Anwendung einzurichten, zu übergeben und zu verwalten. Gemäß einer oder mehrerer Ausführungsformen der vorliegenden Offenbarung sind die Benutzer mit der Fähigkeit ausgestattet, alle ihre Cloudeinsätze und -Eigentümer von einem einzigen Dashboard aus zu überwachen, zu vergleichen und zu optimieren.
  • Verschiedene Merkmale und Komponenten der veranschaulichenden Benutzerschnittstellen, die in den 4 bis 6 präsentiert werden, sind im Zusammenhang mit einem Beispielszenario beschrieben, das eine Anwendung ”TacoTruck” enthält, wobei die Anwendung ”TacoTruck” eine definierte Pipeline enthält (z. B. die Pipeline 405 in dem in 4 gezeigten beispielhaften Benutzerschnittstellenbildschirm 400). Es sollte verständlich sein, dass dieses besondere Szenario einschließlich der Beispielanwendung, Komponenten der Benutzerschnittstellen (z. B. Freigaben (410, 510, 610), Anwendungsumgebungen (415, 515, 615), Berechtigungen (420, 520, 620), Etc.), Komponenten der Pipeline (z. B. Freisetzungen (430), Einsatzstadien (440) usw.) und anderer in den 4 bis 6 gezeigter Inhalte nur für veranschaulichende Zwecke gedacht sind, und in keiner Weise beabsichtigen, den Geltungsbereich der vorliegenden Offenbarung einzuschränken.
  • Sobald eine Pipeline für die Anwendung eingerichtet worden ist (z. B. durch den Benutzer 205 für die Anwendung 230 über den Pipelineverwalter 240 in dem in 2 gezeigten Beispielsystem 200), kann die definierte Pipeline verwendet werden. Beispielsweise kann ein Benutzer die Ausführung der Pipeline durch einen beliebigen einer Vielzahl von vordefinierten Mechanismen (z. B. Senden von Quellcode, Klicken auf eine Schaltfläche, Warten auf ein bestimmtes Datum und/oder Zeit usw.) auslösen. Sobald eine Pipeline ausgeführt wird, führt die Pipeline alle für den Aufbau, die Prüfung und die Bereitstellung der Anwendung konfigurierten Operationen (z. B. durch den Benutzer 205) aus.
  • Gemäß einer oder mehrerer hierin beschriebenen Ausführungsformen kann das Diagnose- und Optimierungssystem 200 der vorliegenden Offenbarung Daten erfassen (z. B. erhalten, abrufen, empfangen usw.), die der Ausführung der für eine gegebene Anwendung definierten Pipeline zugeordnet sind (z. B. Daten, die der Ausführung einer oder mehrerer Stadien der Pipeline zugeordnet sind, wobei ein ”Stadium” aus einer Kernaufgabe (z. B. Aufbau, Implementierung, Test) bestehen kann und Gates auf einem Ziel, was ein oder mehrere Projekte sein kann (z. B. mehrere Entwicklungs oder Testprojekte)). Die mit der Ausführung der Pipeline assoziierten Daten, die durch das System 200 erfasst oder anderweitig erhalten werden können, können hierin manchmal als ”Freigabe-Arbeitsablaufdaten” bezeichnet werden. Freigabe-Arbeitsablaufdaten (270), die einer Anwendung zugeordnet sind, können zum Beispiel Daten enthalten, die dem Erstellen der Anwendung, dem Bereitstellen der Anwendung assoziierten Daten, der Freigabe der Anwendung assoziierten Daten und dergleichen zugeordnet sind. Gemäß mindestens einer Ausführungsform kann das System 200, wenn die Pipeline seine Operationen ausführt, die erfassten Freigabe-Arbeitsablaufdaten speichern (z. B. in einer oder mehreren Datenbanken, die in dem System 200 enthalten oder mit diesem zugeordnet sind).
  • Das Diagnose- und Optimierungssystem 200 kann auch konfiguriert sein, Produktions-Arbeitslastdaten (275) zu erfassen, die der Anwendung zugeordnet sind. Beispielsweise kann gemäß einer oder mehrerer hierin beschriebenen Ausführungsformen das Diagnose- und Optimierungssystem 200, nachdem eine Benutzeranwendung (230) eingesetzt worden ist, ”Produktions-Arbeitslastdaten” erhalten, die beispielsweise Laufzeitdaten, Diagnosedaten umfassen können, Überwachungsdaten und dergleichen.
  • In einem anderen Beispiel kann das Diagnose- und Optimierungssystem 200 feststellen, dass die Anwendung eines Benutzers eingesetzt worden ist, die implementierte Anwendung überwachen, und auf Grundlage dieser Überwachung verschiedene Produktions-Arbeitslastdaten (275) generieren. In Übereinstimmung mit mindestens einer Ausführungsform kann, wenn das System die eingesetzte Anwendung überwacht, beispielsweise eine Menge von Ressourcen, die von der Anwendung verwendet werden, bestimmt werden, wie und wo die Ressourcen von der Anwendung verwendet werden (z. B. die Zuweisung der verwendeten Ressourcen quer über die Anwendung hinweg) usw. Wie bei den oben beschriebenen Freigabe-Arbeitsablaufdaten (270) können die erfassten Produktions-Arbeitslastdaten (275) auch durch das System (z. B. in einer oder mehreren Datenbanken) gespeichert werden.
  • Mit den Freigabe-Arbeitsablaufdaten (270) und den Produktions-Arbeitslastdaten (275) kann das System 200 (z. B. über die Diagnose- und Optimierungsmaschine 250) die Anwendung des Anwenders analysieren und verschiedene Vorschläge/Empfehlungen erstellen, wie der Anwender die Anwendung optimieren kann. Gemäß mindestens einer Ausführungsform kann das System 200 die Freigabe-Arbeitsablaufdaten (270) und die Produktions-Arbeitslastdaten (275) mit den für die Anwendung 230 erhaltenen Preisdaten (280) kombinieren. Solche Preisdaten (280) können mit der Anwendung 230 assoziiert sein oder können einer oder mehreren anderen Anwendungen zugeordnet sein. Beispielsweise kann das System 200 konfiguriert sein, Preisdaten von anderen Datenquellen zu erhalten, wie beispielsweise Daten darüber, wie viel es kostet, Anwendungen in verschiedenen Rechenzentren auf der ganzen Welt auszuführen.
  • Sobald das System 200 die Daten analysiert (z. B. die Freigabe-Arbeitsablaufdaten (270), die Produktions-Arbeitslastdaten (275), die Preisdaten (280) und/oder irgendeine Kombination davon), kann das System 200 eine oder mehrere Diagnosen und Optimierungsempfehlungen (290) generieren. Beispielsweise kann das System 200 feststellen, dass der Benutzer 205 seine Anwendung an einem teureren Datenzentrum einsetzt und der Benutzer 205 Geld sparen könnte, indem er eine andere Region verwendet. Als weiteres Beispiel kann das System 200 feststellen, dass die Anwendung 230 des Benutzers mehr Datenverkehr in einem bestimmten Datenzentrum empfängt (im Vergleich zu anderen Datenzentren), und der Benutzer 205 demnach die CPU-Last reduzieren kann, indem er mehr Repliken/Instanzen in diesem Rechenzentrum einrichtet. Gemäß einer oder mehreren Ausführungsformen können Diagnose- und Optimierungsempfehlungen (290) generiert und in Bezug auf die Verwendung bereitgestellt werden (z. B. ob bestimmte vorhandene Ressourcen wiederverwendet oder außer Dienst gestellt werden können), die Leistung (z. B. ob Ressourcen größenverändert (aufwärts/abwärts) werden können), Kosten (z. B. ob eine Reservierungsbuchung angewandt werden soll), und zahlreiche andere Faktoren, die sich auf das Verständnis der Produktions-Arbeitslasten und Freigabe-Arbeitsabläufe der Benutzer beziehen, sowie auf Cloud-Preisoptionen und Verfügbarkeit beziehen.
  • 3 bildet ein beispielhaftes Verfahren zur Bereitstellung von Empfehlungen hinsichtlich wie die Entwicklung und die Leistungsfähigkeit ihrer Anwendungen gemäß mindestens einer Ausführungsform zu optimieren ist ab, wobei der Beispielprozess 300 durch eine Diagnose- und Optimierungsmaschine (z. B. eine Diagnose- und Optimierungsmaschine 250 in dem in 2 gezeigten Beispielsystem 200) durchgeführt werden kann.
  • Bei Block 305 können Freigabe-Arbeitsablaufdaten, die einer Anwendung zugeordnet sind, erhalten werden. Beispielsweise kann gemäß mindestens einer Ausführungsform eine Diagnose- und Optimierungsmaschine Freigabe-Arbeitsablaufdaten von einem mit der Anwendung assoziierten Pipelineverwalter erhalten (z. B. Freigabe-Arbeitsablaufdaten (270), die der Anwendung 230 zugeordnet sind und erhalten werden mittels des Pipelineverwalters 240 durch die Diagnose- und Optimierungsmaschine 250 in dem in 2 gezeigten Beispielsystem 200). Bei Block 310 können die bei Block 305 erhaltenen Freigabe-Arbeitsablaufdaten (z. B. in einer oder mehreren Datenbanken, die in dem in 2 gezeigten Beispielsystem 200 enthält oder mit diesem verbunden sind) gespeichert werden.
  • Bei Block 315 können Produktions-Arbeitslastdaten, die der Anwendung zugeordnet sind, erhalten werden. Zum Beispiel können in Übereinstimmung mit mindestens einer Ausführungsform die Daten des Produktions-Arbeitsablaufs durch eine Diagnose- und Optimierungsmaschine erfasst werden, die entworfen ist, um festzulegen, dass die Anwendung eines Benutzers eingesetzt worden ist, die implementierte Anwendung zu überwachen und basierend auf dieser Überwachung verschiedene Produktions-Arbeitsablaufdaten zu generieren (z. B. Produktions-Arbeitslastsdaten (275), die der Anwendung 230 zugeordnet sind und von dem Pipelineverwalter 240 durch die Diagnose- und Optimierungsmaschine 250 in dem in 2 gezeigten Beispielsystem 200 erhalten werden). Gemäß mindestens einer Ausführungsform können die Produktions-Arbeitslastsdaten, die bei Block 315 erhalten werden können, beispielsweise eine Menge von Ressourcen enthalten, die von der Anwendung verwendet werden, wie und wo die Ressourcen von der Anwendung verwendet werden (z. B. die Zuteilung der verwendeten Ressourcen quer über die Anwendung hinweg) und dergleichen. Bei Block 320 können die bei Block 315 erhaltenen Produktions-Arbeitslastdaten (z. B. in einer oder mehreren Datenbanken, die in dem in 2 gezeigten Beispielsystem 200 enthalten sind oder mit dem Beispielsystem 200 verbunden sind) gespeichert werden.
  • Bei Block 325 können die bei Block 305 für die Anwendung erhaltenen Freigabe-Arbeitsablaufdaten und die bei Block 315 für die Anwendung erhaltenen Produktions-Arbeitslastdaten mit Daten kombiniert werden, die einer oder mehreren anderen Anwendungen zugeordnet sind. Zum Beispiel können in Übereinstimmung mit mindestens einer Ausführungsform bei Block 325 die Freigabe-Arbeitsablaufdaten und die Produktions-Arbeitslastdaten mit für die Anwendung erhaltenen Preisdaten (z. B. Preisdaten (280) in dem in 2 gezeigten Beispielsystem 200) kombiniert werden. Solche Preisdaten können beispielsweise der Anwendung zugeordnet sein oder mit einer oder mehreren anderen Anwendungen assoziiert sein. Beispielsweise können bei Block 325 Preisdaten aus einer oder mehreren Datenquellen von der Anwendung getrennt (z. B. außerhalb des in 2 gezeigten Beispielsystems 200) erhalten werden.
  • Bei Block 330 werden die kombinierten Daten (z. B. die bei Block 305 für die Anwendung erhaltenen Freigabe-Arbeitsablaufdaten, bei Block 315 für die Anwendung erhaltenen Produktions-Arbeitslastdaten und die Daten, die mit einer oder mehreren anderen Anwendungen (z. B. Preisdaten), die bei Block 325 erhalten werden) analysiert werden, um ein oder mehrere Diagnose- und Optimierungsempfehlungen (z. B. Diagnose- und Optimierungsempfehlungen (290) in dem in 2 gezeigten Beispielsystem 200) zu generieren.
  • Bei Block 335 können die bei Block 330 generierten Diagnose- und Optimierungsempfehlungen für den Benutzer bereitgestellt werden. Beispielsweise können in Übereinstimmung mit mindestens einer Ausführungsform die bei Block 330 erzeugten Diagnose- und Optimierungsempfehlungen zur Anzeige in einem Benutzerschnittstellenbildschirm bereitgestellt werden, der durch den Benutzer zugänglich ist (z. B. eine oder mehrere der beispielhaften Benutzerschnittstellen 400, 500 und 600, die entsprechend in den 4, 5 bzw. 6 gezeigt sind).
  • 7 ist ein Blockdiagramm auf übergeordneter Ebene eines beispielhaften Computers (700), der eingerichtet ist, für Benutzer ein Werkzeug zum Empfangen von Empfehlungen bezüglich wie die Entwicklung und Leistung ihrer Anwendungen zu optimieren ist, bereitzustellen. Beispielsweise kann der Computer (700) gemäß einer oder mehreren Ausführungsformen, die hier beschrieben sind, konfiguriert sein, Benutzern die Möglichkeit bereitzustellen, Diagnose- und Optimierungsvorschläge basierend auf Daten zu empfangen, die während verschiedener Stadien der Einsatzpipeline für ihre Anwendungen gesammelt werden. In einer sehr grundlegenden Konfiguration (701) enthält die Rechenvorrichtung (700) typischerweise einen oder mehrere Prozessoren (710) und Systemspeicher (720). Ein Speicherbus (730) kann für die Kommunikation zwischen dem Prozessor (710) und dem Systemspeicher (720) verwendet werden.
  • Abhängig von der gewünschten Konfiguration kann der Prozessor (710) von irgendeinem Typ sein, einschließlich, aber nicht beschränkt auf einen Mikroprozessor (μP), einen Mikrocontroller (μC), einen digitalen Signalprozessor (DSP) oder eine beliebige Kombination davon. Der Prozessor (710) kann einen weiteren Cache-Pegel, wie einen Cachespegel (711) und einen Cache-Speicher (712), einen Prozessorkern (713) und Register (714) enthalten. Der Prozessorkern (713) kann eine arithmetische Logikeinheit (ALU), eine Gleitkommaeinheit (FPU), einen Digitalsignalverarbeitungskern (DSP Core) oder eine beliebige Kombination davon enthalten. Eine Speichersteuerung (716) kann ebenfalls mit dem Prozessor (710) verwendet werden, oder in einigen Implementierungen kann die Speichersteuerung (715) ein interner Teil des Prozessors (710) sein.
  • Abhängig von der gewünschten Konfiguration kann der Systemspeicher (720) von irgendeinem Typ sein, einschließlich, aber nicht beschränkt auf flüchtige Speicher (wie etwa RAM), nichtflüchtige Speicher (wie ROM, Flash-Speicher usw.) oder irgendeine Kombination davon. Der Systemspeicher (720) enthält typischerweise ein Betriebssystem (721), eine oder mehrere Anwendungen (722) und Programmdaten (724). Die Anwendung (722) kann ein Diagnose- und Optimierungssystem (z. B. das System 200, wie in 2 gezeigt) zum Erfassen verschiedener Daten enthalten, die zum Beispiel dem Aufbauen, dem Bereitstellen, dem Freigeben und dem Ausführen einer Anwendung zugeordnet sind, und Verwenden dieser Daten zum Generieren von Empfehlungen und Vorschlägen hinsichtlich wie ein Benutzer Berücksichtigungen hinsichtlich hoher Produktivität, einfacher Verwaltung und Kostenoptimierung im Gleichgewicht halten kann.
  • Programmdaten (724) können Speicheranweisungen enthalten, die, wenn sie durch die eine oder die mehreren Verarbeitungsvorrichtungen ausgeführt werden, ein System und ein Verfahren zum Bereitstellen von Diagnose- und Optimierungsempfehlungen für einen Benutzer implementieren, basierend auf Daten, die mit der Entwicklung und der Leistung der Benutzeranwendung verbunden sind. Zusätzlich können in Übereinstimmung mit mindestens einer Ausführungsform Programmdaten (724) Arbeitsablaufs-, Produktions- und Preisdaten (725) enthalten, die sich auf Freigabe-Arbeitsablaufdaten und Produktions-Arbeitslastdaten beziehen, die für eine gegebene Anwendung erhalten werden, sowie verschiedene Preisdaten, die verschiedenen Cloud-Computing-Angeboten und Verfügbarkeit zugeordnet sind. In einigen Ausführungsformen kann die Anwendung (722) eingerichtet sein, mit Programmdaten (724) auf einem Betriebssystem (721) zu laufen.
  • Die Rechenvorrichtung (700) kann zusätzliche Merkmale oder Funktionalität und zusätzliche Schnittstellen aufweisen, um die Kommunikation zwischen der Grundkonfiguration (701) und allen erforderlichen Vorrichtungen und Schnittstellen zu erleichtern.
  • Der Systemspeicher (720) ist ein Beispiel für Computerspeichermedien. Computerspeichermedien enthalten, sind aber nicht beschränkt auf RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnologie, CD-ROM, Digitalversatile-Disks (DVD) oder andere optische Speicher, Magnetkassetten, Magnetbänder, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder jedes andere Medium, das verwendet werden kann, um die gewünschte Information zu speichern, und auf die durch die Rechenvorrichtung 700 zugegriffen werden kann. Jedes derartige Computerspeichermedium kann Teil der Vorrichtung (700) sein.
  • Die Rechenvorrichtung (700) kann als Teil eines mobilen elektronischen Gerätes mit kleinem Formfaktor implementiert sein, wie etwa ein Mobiltelefon, ein Smartphone, ein persönlicher Datenassistent (PDA), ein persönlicher Medienabspielvorrichtung, Ein Tablet-Computer (Tablet), ein drahtloses Web-Watch-Gerät, ein persönliches Headset-Gerät, ein anwendungsspezifisches Gerät oder ein Hybrid-Gerät, das eine der oben genannten Funktionen enthält. Die Rechenvorrichtung (700) kann auch als ein Personal Computer implementiert werden, der sowohl Laptop-Computer als auch Nicht-Laptop-Computerkonfigurationen enthält.
  • Die vorstehende detaillierte Beschreibung hat verschiedene Ausführungsformen der Vorrichtungen und/oder Prozesse durch die Verwendung von Blockdiagrammen, Flussdiagrammen und/oder Beispielen dargelegt. Insoweit wie solche Blockdiagramme, Flußcharts und/oder Beispiele eine oder mehrere Funktionen und/oder Operatione beinhalten, werden sie verstanden von denen in der Wissenschaft, das jede Funktion und/oder Operation mit solchen Blockdiagrammen, Flußcharts oder Beispielen implementiert werden können, individuell und/oder kollektiv, durch ein weites Angebot von Hardware, Software, Firmware der irgendeiner virtuellen Kombination davon. In einer Verkörperung, verschiedener Portionen subjektiver Art, die hier beschrieben wird, kann implementiert werden über App Specific integrierte Schaltungen (ASICs), Feldprogrammierung (FPGAs), digitale Signalprozessoren (DSPs) oder andere integrierte Formate. Dennoch werden die Fachkundigen feststellen, dass einige Aspekte der hier dargelegten Ausführungen, teilweise oder gänzlich, ebenso in integrierten Kreisläufen implementiert werden können, als ein oder mehrere Computerprogramme, die auf einem oder mehreren Computern ausgeführt werden, als ein oder mehrere Programme, die auf einem oder mehreren Prozessoren ausgeführt werden, als Firmware oder irgend eine Kombination davon; und dass ein Entwurf der Kreisläufe und/oder des Schreibens des Codes für die Software und/oder Firmware unter Berücksichtigung der vorliegenden Veröffentlichung eine große Leistung wäre.
  • Darüber hinaus wird der Fachmann anerkennen, dass die Mechanismen des hierin beschriebenen Gegenstands in der Lage sind, als ein Programmprodukt in einer Vielzahl von Formen verbreitet zu werden, und dass eine anschauliche Ausführungsform des hierin beschriebenen Gegenstands unabhängig von dem speziellen Typ des nicht transitorischen signaltragenden Mediums, das verwendet wird, um die Verbreitung durchzuführen, anwendbar ist. Beispiele eines nicht-vorübergehenden Signalträgermediums umfassen, sind aber nicht hierauf beschränkt, Folgendes: ein aufnahmefähiges Medium, wie z. B. eine Floppy-Disk, ein Festplattenlaufwerk, eine Compact Disk (CD), eine Digital Video Disk (DVD), ein digitales Band, einen Computerspeicher, usw.; und ein Übertragungsmedium wie ein digitales und/oder analoges Kommunikationsmedium, (z. B., ein optisches Glasfaserkabel, ein Wellenleiter, eine verdrahtete Kommunikationsverbindung, eine drahtlose Kommunikationsverbindung, usw.)
  • Hinsichtlich der Verwendung von im Wesentlichen jeden mehrfachen und/oder singulären Ausdrücken kann der Fachmann aus dem Plural in den Singular und/oder aus dem Singular in den Plural übersetzen, wie dies für den Kontext und/oder die Anwendung geeignet ist. Die verschiedenen Einzahl/Mehrzahl Permutationen können hier ausgedrückt werden aus Gründen der Klarheit.
  • In Situationen, in denen die hier besprochenen Systeme persönliche Informationen über Benutzer sammeln oder persönliche Informationen nutzen können, kann den Benutzern die Möglichkeit zur Verfügung gestellt werden, zu kontrollieren, ob Programme oder Merkmale Benutzerinformationen erfassen (z. B. Informationen über das soziale Netzwerk eines Benutzers, Aktionen oder Aktivitäten, den Beruf, die Präferenzen eines Benutzers oder den aktuellen Standort eines Benutzers).
  • Somit wurden spezielle Ausführungsformen des Gegenstands beschrieben. Weitere Ausführungsformen gehören zum Umfang der folgenden Ansprüche. In einigen Fällen können die in den Ansprüchen beschriebenen Handlungen in einer anderen Reihenfolge durchgeführt werden und dennoch erwünschte Ergebnisse erzielen. Zusätzlich erfordern die in den beigefügten Figuren dargestellten Prozesse nicht notwendigerweise die bestimmte gezeigte Reihenfolge oder aufeinanderfolgende Reihenfolge, um erwünschte Ergebnisse zu erzielen. In bestimmten Implementierungen können Multitasking und eine Parallelbearbeitung vorteilhaft sein.

Claims (13)

  1. System, das Folgendes umfasst: einen oder mehrere Prozessor(en); und ein nicht transitorisches computerlesbares Medium, das gekoppelt ist mit dem einen oder den mehreren Prozessoren, die darin gespeicherte Anweisungen aufweisen, die, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren veranlassen, Operationen durchzuführen, umfassend: Erhalten (305) von Freigabe-Arbeitsablaufdaten, die einer Anwendung zugeordnet sind; Erhalten (315) von Produktions-Arbeitslastdaten, die der Anwendung zugeordnet sind; Speichern (310, 320) der Freigabe-Arbeitsablaufdaten und der Produktions-Arbeitslastdaten in einer Datenbank; Kombinieren (325) der Freigabe-Arbeitsablaufdaten und der Produktions-Arbeitslastdaten, die für die Anwendung mit Daten erhalten werden, die einer oder mehreren anderen Anwendungen zugeordnet sind; Analysieren (330) der kombinierten Daten, um Diagnose- und Optimierungsempfehlungen zu generieren; und Bereitstellen (335) der generierten Empfehlungen an den Benutzer.
  2. System nach Anspruch 1, wobei die Daten, die einer oder mehreren anderen Anwendungen zugeordnet sind, Preisdaten umfassen, die einer oder mehreren anderen Anwendungen zugeordnet sind.
  3. System nach Anspruch 1, wobei der eine oder die mehreren Prozessoren veranlasst werden, weitere Operationen durchzuführen, umfassend: Erfassen von Daten, die der Ausführung einer oder mehrerer Stadien einer für die Anwendung definierten Pipeline zugeordnet sind.
  4. System nach Anspruch 1, wobei die der Anwendung zugeordneten Freigabe-Arbeitsablaufdaten mindestens eines enthalten aus Daten, die dem Aufbauen der Anwendung zugeordnet sind, Daten, die dem Einsetzen der Anwendung zugeordnet sind, und Daten, die dem Freigeben der Anwendung zugeordnet sind.
  5. System nach Anspruch 1, wobei der eine oder die mehreren Prozessoren veranlasst werden, weitere Operationen durchzuführen, umfassend: Feststellen, dass die Anwendung eingesetzt wurde; Überwachen der eingesetzten Anwendung; und Generieren von Daten basierend auf dem Überwachen der eingesetzten Anwendung.
  6. System nach Anspruch 5, wobei der eine oder die mehreren Prozessoren veranlasst werden, weitere Operationen durchzuführen, umfassend: Feststellen einer Menge von Ressourcen, die von der eingesetzten Anwendung verwendet werden.
  7. System nach Anspruch 2, wobei der eine oder die mehreren Prozessoren veranlasst werden, weitere Operationen durchzuführen, umfassend: Erhalten von Preisdaten, die mit der einen oder mehreren anderen Anwendungen aus einer oder mehreren von der Anwendung getrennten Quellen verknüfpt sind.
  8. System nach Anspruch 1, wobei der eine oder die mehreren Prozessoren veranlasst werden, weitere Operationen durchzuführen, umfassend: Generieren eines Benutzerschnittstellenbildschirms, auf den der Benutzer zugreifen kann; und Bereitstellen der Empfehlungen zur Anzeige im Bildschirm des Benutzerschnittstellenbildschirms.
  9. Ein oder mehrere nicht-transitorisches computerlesbares Medien, die wenn Sie von einem oder mehreren Prozessoren ausgeführt werden, dazu führen, dass der eine oder mehrere Prozessoren Operationen durchführen, darunter: Erhalten (305) von Freigabe-Arbeitsablaufdaten, die einer Anwendung zugeordnet sind; Erhalten (315) von Produktions-Arbeitslastdaten, die der Anwendung zugeordnet sind; Speichern (310, 320) der Freigabe-Arbeitsablaufdaten und der Produktions-Arbeitslastdaten in einer Datenbank; Kombinieren (325) der Freigabe-Arbeitsablaufdaten und der Produktions-Arbeitslastdaten, die für die Anwendung mit Daten erhalten werden, die einer oder mehreren anderen Anwendungen zugeordnet sind; Analysieren (330) der kombinierten Daten, um Diagnose- und Optimierungsempfehlungen zu generieren; und Bereitstellen (335) der generierten Empfehlungen an den Benutzer.
  10. Ein oder mehrere nicht transitorische computerlesbare Medien nach Anspruch 9, wobei die computerausführbaren Befehle, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, veranlassen, dass der eine oder die mehreren Prozessoren weitere Operationen ausführen, umfassend: Erfassen von Daten, die der Ausführung einer oder mehrerer Stadien einer für die Anwendung definierten Pipeline zugeordnet sind.
  11. Ein oder mehrere nicht transitorische computerlesbare Medien nach Anspruch 9, wobei die computerausführbaren Befehle, wenn sie durch den einen oder die mehreren Prozessoren ausgeführt werden, veranlassen, dass der eine oder die mehreren Prozessoren weitere Operationen ausführen, umfassend: Feststellen, dass die Anwendung eingesetzt wurde; Überwachen der eingesetzten Anwendung; und Generieren von Daten basierend auf dem Überwachen der eingesetzten Anwendung.
  12. Ein oder mehrere nicht transitorische computerlesbare Medien nach Anspruch 9, wobei die Daten, die einer oder mehreren anderen Anwendungen zugeordnet sind, Preisdaten enthalten, die einer oder mehreren anderen Anwendungen zugeordnet sind.
  13. Ein oder mehrere nicht transitorische computerlesbare Medien nach Anspruch 9, wobei die der Anwendung zugeordneten Freigabe-Arbeitsablaufdaten mindestens eines enthalten aus Daten, die dem Aufbauen der Anwendung zugeordnet sind, Daten, die dem Einsetzen der Anwendung zugeordnet sind, und Daten, die dem Freigeben der Anwendung zugeordnet sind.
DE202015009252.7U 2014-02-26 2015-02-25 Diagnose und Optimierung von Cloud-Freigabepipelines Expired - Lifetime DE202015009252U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/191,168 US20150244773A1 (en) 2014-02-26 2014-02-26 Diagnosis and optimization of cloud release pipelines
US14/191,168 2014-02-26

Publications (1)

Publication Number Publication Date
DE202015009252U1 true DE202015009252U1 (de) 2017-01-18

Family

ID=52727378

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202015009252.7U Expired - Lifetime DE202015009252U1 (de) 2014-02-26 2015-02-25 Diagnose und Optimierung von Cloud-Freigabepipelines

Country Status (7)

Country Link
US (1) US20150244773A1 (de)
EP (1) EP3111328A1 (de)
JP (1) JP2017506400A (de)
KR (1) KR20160124895A (de)
CN (1) CN106030529A (de)
DE (1) DE202015009252U1 (de)
WO (1) WO2015130755A1 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170163732A1 (en) * 2015-12-04 2017-06-08 Vmware, Inc. Inter-task communication within application-release-management pipelines
US10334058B2 (en) 2015-12-21 2019-06-25 Amazon Technologies, Inc. Matching and enforcing deployment pipeline configurations with live pipeline templates
US9760366B2 (en) * 2015-12-21 2017-09-12 Amazon Technologies, Inc. Maintaining deployment pipelines for a production computing service using live pipeline templates
US9787779B2 (en) 2015-12-21 2017-10-10 Amazon Technologies, Inc. Analyzing deployment pipelines used to update production computing services using a live pipeline template process
US10193961B2 (en) 2015-12-21 2019-01-29 Amazon Technologies, Inc. Building deployment pipelines for a production computing service using live pipeline templates
CN106095479A (zh) * 2016-05-31 2016-11-09 北京中亦安图科技股份有限公司 一种企业应用发布方法、装置及系统
US11213120B2 (en) 2016-11-14 2022-01-04 Colgate-Palmolive Company Oral care system and method
US10582764B2 (en) 2016-11-14 2020-03-10 Colgate-Palmolive Company Oral care system and method
US11361672B2 (en) 2016-11-14 2022-06-14 Colgate-Palmolive Company Oral care system and method
US10835028B2 (en) 2016-11-14 2020-11-17 Colgate-Palmolive Company Oral care system and method
US11043141B2 (en) 2016-11-14 2021-06-22 Colgate-Palmolive Company Oral care system and method
US10671368B2 (en) * 2017-11-03 2020-06-02 International Business Machines Corporation Automatic creation of delivery pipelines
KR101988043B1 (ko) 2019-03-28 2019-09-30 강현주 의료용 케이블 자동 제조 방법 및 그 시스템
US20220345471A1 (en) * 2021-04-21 2022-10-27 EMC IP Holding Company LLC Early validation of communication behavior
US11609754B2 (en) * 2021-06-17 2023-03-21 Sap Se Tool for latency optimized system placement

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7080351B1 (en) * 2002-04-04 2006-07-18 Bellsouth Intellectual Property Corp. System and method for performing rapid application life cycle quality assurance
US20100235807A1 (en) * 2009-03-16 2010-09-16 Hitachi Data Systems Corporation Method and system for feature automation
US8504689B2 (en) * 2010-05-28 2013-08-06 Red Hat, Inc. Methods and systems for cloud deployment analysis featuring relative cloud resource importance
US8656023B1 (en) * 2010-08-26 2014-02-18 Adobe Systems Incorporated Optimization scheduler for deploying applications on a cloud
CN104081359B (zh) * 2012-01-31 2017-05-03 惠普发展公司,有限责任合伙企业 失败代码变化的识别
US9037897B2 (en) * 2012-02-17 2015-05-19 International Business Machines Corporation Elastic cloud-driven task execution
WO2013184133A1 (en) * 2012-06-08 2013-12-12 Hewlett-Packard Development Company, L.P. Cloud application deployment portability
US20140280964A1 (en) * 2013-03-15 2014-09-18 Gravitant, Inc. Systems, methods and computer readable mediums for implementing cloud service brokerage platform functionalities
US9413818B2 (en) * 2014-02-25 2016-08-09 International Business Machines Corporation Deploying applications in a networked computing environment

Also Published As

Publication number Publication date
EP3111328A1 (de) 2017-01-04
JP2017506400A (ja) 2017-03-02
CN106030529A (zh) 2016-10-12
WO2015130755A9 (en) 2016-03-10
WO2015130755A1 (en) 2015-09-03
KR20160124895A (ko) 2016-10-28
US20150244773A1 (en) 2015-08-27

Similar Documents

Publication Publication Date Title
DE202015009252U1 (de) Diagnose und Optimierung von Cloud-Freigabepipelines
DE112012000444B4 (de) Verfahren, System und Computerprogrammprodukt zum Ermitteln einer optimalen Datenverarbeitungsumgebung zum Ausführen eines Abbildes sowie Verfahren zum Implementieren eines entsprechenden Systems
US8701078B1 (en) Customized settings for viewing and editing assets in agile software development
DE112016002120T5 (de) Entwicklungs- und Vetriebsplattform für Software
DE112012002362T5 (de) Automatisierte Empfehlungen für Cloud-Computing-Optionen
DE112016003249T5 (de) Container-Bereitstellung auf Abhängigkeitsgrundlage
DE112016003355T5 (de) Sicherer Einsatz einer Anwendung über Einsatzorte hinweg
DE112015003406T5 (de) Datenherkunftssummierung
DE112010003886T5 (de) Bereitstellung von Diensten unter Verwendung eines Cloud-Dienste-Katalogs
DE102019131291B4 (de) Gleichzeitige ausführung von dienstleistungen
DE102012206301A1 (de) Anzeigen einer Vielzahl von Kalendereinträgen
DE202017105834U1 (de) Verwaltung von Anwendungsaktualisierungen
DE102012103634A1 (de) Planen von Veranstaltungen für mehrere Eingeladene
DE102008040009A1 (de) Lastverteiltes Zuweisen von medizinischen Taskflows auf Server einer Serverfarm
DE102010023691A1 (de) Gemeinsame Nutzung von dynamischen Inhaltsvoreinstellungen und Verhalten von EDV-Geräten
DE102020112531A1 (de) Operationelle metrische Berechnung für Arbeitsbelastungstyp
DE102017201173A1 (de) Latenzreduzierung bei der feedbackbasierten ermittlung einer systemperformance
DE102021124264A1 (de) Erzeugung von synthetischen Systemfehlern
DE102014116744B4 (de) Management von Informationstechnologieressourcen
DE19960048A1 (de) Zeitgesteuerte Startbedingungen für Aktivitäten in Workflow-Management-Systemen
DE112021005927T5 (de) Patchen von arbeitsabläufen
DE102006046717A1 (de) Dynamisch migrierende Kanäle
DE112019005043T5 (de) Streamzuweisung unter verwendung von stream-guthaben
DE112016004733T5 (de) Techniken zum Anfügen von durch ein mobiles Computergerät aufgenommenen Medien an ein elektronisches Dokument
DE102018206762A1 (de) Feature-Development-Framework und Feature-Integration-Framework zum Implementieren physikalischer Funktionsfeatures in einem Zielgerät

Legal Events

Date Code Title Description
R207 Utility model specification
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R156 Lapse of ip right after 3 years