DE202015009252U1 - Diagnose und Optimierung von Cloud-Freigabepipelines - Google Patents
Diagnose und Optimierung von Cloud-Freigabepipelines Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols 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.
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-Umgebung100 , in der eine oder mehrere Ausführungsformen der vorliegenden Offenbarung implementiert werden können. Die Cloud-Computing-Umgebung100 kann einen oder mehrere Netzwerk- oder Cloud-Computing-Knoten120 ,125 enthalten, wobei deren Endknoten105a ,105b ,105c ,105n (wobei ”n” eine beliebige Zahl ist) kommunizieren können. Die Endknoten105a ,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 in1 im speziellen abgebildeten Endknoten (105a ,105b ,105c ,105n ) nur einige Beispiele von Gerätetypen darstellen, die mit den Cloud-Computing-Knoten120 ,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-Umgebung100 kommunizieren können (z. B. Webbrowser). -
2 ist ein Beispielsystem200 zum Bereitstellen von Diagnose- und Optimierungsempfehlungen für Cloud-Freigabepipelines. Gemäß einer oder mehrerer hierin beschriebenen Ausführungsformen kann das System200 eine Diagnose- und Optimierungsmaschine250 , einen Pipelineverwalter240 und eine Anwendung230 (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 Anwendung230 durch Ausstatten des Pipelineverwalters240 mit verschiedenen Daten (z. B. Daten, die die Pipeline für die Anwendung (260 ) definieren) bezüglich der Anwendung230 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 Anwendung230 aufgebaut werden soll, wie und wo die Anwendung230 eingesetzt werden soll, wie oft die Anwendung230 freigegeben werden soll, die Bedingungen, unter denen zu einer früheren Freigabe der Anwendung230 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 Cloudverwaltungskonsole400 ,500 und600 , dargestellt in den4 bis6 und weiter unten detaillierter beschrieben). Beispielsweise kann der Benutzeroberflächeneditor dem Pipelineverwalter240 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 bis6 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-Bildschirmen400 ,500 und600 der entsprechenden4 ,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 bis6 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 Pipeline405 in dem in4 gezeigten beispielhaften Benutzerschnittstellenbildschirm400 ). 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 den4 bis6 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 Anwendung230 über den Pipelineverwalter240 in dem in2 gezeigten Beispielsystem200 ), 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 Benutzer205 ) 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 System200 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 System200 , wenn die Pipeline seine Operationen ausführt, die erfassten Freigabe-Arbeitsablaufdaten speichern (z. B. in einer oder mehreren Datenbanken, die in dem System200 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 Optimierungssystem200 , 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 System200 (z. B. über die Diagnose- und Optimierungsmaschine250 ) 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 System200 die Freigabe-Arbeitsablaufdaten (270 ) und die Produktions-Arbeitslastdaten (275 ) mit den für die Anwendung230 erhaltenen Preisdaten (280 ) kombinieren. Solche Preisdaten (280 ) können mit der Anwendung230 assoziiert sein oder können einer oder mehreren anderen Anwendungen zugeordnet sein. Beispielsweise kann das System200 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 System200 eine oder mehrere Diagnosen und Optimierungsempfehlungen (290 ) generieren. Beispielsweise kann das System200 feststellen, dass der Benutzer205 seine Anwendung an einem teureren Datenzentrum einsetzt und der Benutzer205 Geld sparen könnte, indem er eine andere Region verwendet. Als weiteres Beispiel kann das System200 feststellen, dass die Anwendung230 des Benutzers mehr Datenverkehr in einem bestimmten Datenzentrum empfängt (im Vergleich zu anderen Datenzentren), und der Benutzer205 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 Beispielprozess300 durch eine Diagnose- und Optimierungsmaschine (z. B. eine Diagnose- und Optimierungsmaschine250 in dem in2 gezeigten Beispielsystem200 ) 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 Anwendung230 zugeordnet sind und erhalten werden mittels des Pipelineverwalters240 durch die Diagnose- und Optimierungsmaschine250 in dem in2 gezeigten Beispielsystem200 ). Bei Block310 können die bei Block305 erhaltenen Freigabe-Arbeitsablaufdaten (z. B. in einer oder mehreren Datenbanken, die in dem in2 gezeigten Beispielsystem200 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 Anwendung230 zugeordnet sind und von dem Pipelineverwalter240 durch die Diagnose- und Optimierungsmaschine250 in dem in2 gezeigten Beispielsystem200 erhalten werden). Gemäß mindestens einer Ausführungsform können die Produktions-Arbeitslastsdaten, die bei Block315 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 Block320 können die bei Block315 erhaltenen Produktions-Arbeitslastdaten (z. B. in einer oder mehreren Datenbanken, die in dem in2 gezeigten Beispielsystem200 enthalten sind oder mit dem Beispielsystem200 verbunden sind) gespeichert werden. - Bei Block
325 können die bei Block305 für die Anwendung erhaltenen Freigabe-Arbeitsablaufdaten und die bei Block315 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 Block325 die Freigabe-Arbeitsablaufdaten und die Produktions-Arbeitslastdaten mit für die Anwendung erhaltenen Preisdaten (z. B. Preisdaten (280 ) in dem in2 gezeigten Beispielsystem200 ) kombiniert werden. Solche Preisdaten können beispielsweise der Anwendung zugeordnet sein oder mit einer oder mehreren anderen Anwendungen assoziiert sein. Beispielsweise können bei Block325 Preisdaten aus einer oder mehreren Datenquellen von der Anwendung getrennt (z. B. außerhalb des in2 gezeigten Beispielsystems200 ) erhalten werden. - Bei Block
330 werden die kombinierten Daten (z. B. die bei Block305 für die Anwendung erhaltenen Freigabe-Arbeitsablaufdaten, bei Block315 für die Anwendung erhaltenen Produktions-Arbeitslastdaten und die Daten, die mit einer oder mehreren anderen Anwendungen (z. B. Preisdaten), die bei Block325 erhalten werden) analysiert werden, um ein oder mehrere Diagnose- und Optimierungsempfehlungen (z. B. Diagnose- und Optimierungsempfehlungen (290 ) in dem in2 gezeigten Beispielsystem200 ) zu generieren. - Bei Block
335 können die bei Block330 generierten Diagnose- und Optimierungsempfehlungen für den Benutzer bereitgestellt werden. Beispielsweise können in Übereinstimmung mit mindestens einer Ausführungsform die bei Block330 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 Benutzerschnittstellen400 ,500 und600 , die entsprechend in den4 ,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 System200 , wie in2 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 Rechenvorrichtung700 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)
- 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. - 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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. - 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
2014
- 2014-02-26 US US14/191,168 patent/US20150244773A1/en not_active Abandoned
-
2015
- 2015-02-25 JP JP2016553561A patent/JP2017506400A/ja not_active Withdrawn
- 2015-02-25 DE DE202015009252.7U patent/DE202015009252U1/de not_active Expired - Lifetime
- 2015-02-25 CN CN201580008835.4A patent/CN106030529A/zh active Pending
- 2015-02-25 KR KR1020167026405A patent/KR20160124895A/ko not_active Application Discontinuation
- 2015-02-25 EP EP15711921.5A patent/EP3111328A1/de not_active Withdrawn
- 2015-02-25 WO PCT/US2015/017476 patent/WO2015130755A1/en active Application Filing
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 |