Continuous software deployment
AssigneeArmory, Inc.
InventorsIsaac Mosquera, Ben Mappen, Andrew Backes, Alex Bello, Daniel R. Odio
Life of this patent
Estimating the term…
Abstract
Methods and systems may be used to deploy software more quickly from development to a production environment. The methods and systems may speed up the process of developing and deploying new code. Integrations may be provided to monitor aspects of the system to provide statistics and metrics for better understanding and to automatically optimize certain aspects of the software development cycle.
Claims20
A computer-implemented method for automated canary deployment, the method comprising:
- providing a first production hardware infrastructure running a first production code;
- receiving a code update in a development environment;
- launching a second production hardware infrastructure running a second production code that incorporates the code update;
- directing a first portion of user traffic to the first production hardware infrastructure and a second portion of user traffic to the second production hardware infrastructure;
- monitoring the performance of the first production code and the second production code in serving user traffic;
- determining whether the performance of the second production code falls below a threshold performance on one or more metrics;
- when the second production code does not fall below the threshold performance on the one or more metrics for a period of time, redirecting the first portion of user traffic from the first production hardware infrastructure to the second production hardware infrastructure.
A computer-implemented method for application creation, the method comprising:
- receiving a user input indicative of a desire to create a new application;
- receiving a user selection of a coding language;
- receiving a user input indicative of an application name;
- without further user input, a computer system performing the following steps:
- creating a repository for storing code for the new application;
- configuring and enabling continuous integration for the repository to be continuously updated with code from a plurality of developers;
- creating a continuous deployment pipeline for deploying code from the repository to a production release;
- creating a user entity with permissions for managing production hardware infrastructure;
- creating tokens for secrets management;
- creating a dashboard for displaying application performance metrics from the production release;
- assigning application alerts from the production release to a team selected from a plurality of teams;
- initiating an application framework corresponding to the coding language;
- initiating health checks for the production hardware infrastructure.
A computer-implemented method for determining a service level agreement (SLA) for a software application, the method comprising:
- providing a software application;
- providing an application performance monitoring platform that monitors the performance of the software application and determines application performance statistics;
- receiving a user configuration of a method for computing a service level agreement based on the application performance statistics;
- computing a service level agreement of the software application according to the user configured method for computing the service level agreement.
Dependencies are inferred from the claim text.