Maintain control over restricted data during deployment to cloud computing environments
By introducing access control and automated operation technologies in the cloud computing environment, the problem of DevOps personnel not authorized to access restricted data is solved, and the event management and deployment efficiency and data security of cloud service providers are improved.
Patent Information
- Application Number
- CN202110557269.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2015-11-05
- Filing Date
- 2016-11-04
- Publication Date
- 2024-12-17
- Estimated Expiration
- 2036-11-04
AI Technical Summary
In a cloud computing environment, data control policies limit who can access restricted data and control planes, resulting in challenges for cloud service providers in event management and software/firmware deployment, especially when DevOps personnel are not authorized, Proper maintenance and deployment in the production environment.
By introducing access control technology, DevOps personnel are allowed to perform automated and remote operations without access to restricted data or unauthorized access to the control plane, and provide on-time access to ensure compliance with data control policies while also passing the accompanying model and publishing and deployment mechanisms to ensure data security.
It realizes event management of DevOps personnel in the cloud computing environment and automated and remote execution of software/firmware deployment, ensuring data security and compliance with data control policies, while improving the operational efficiency of cloud service providers.
Smart Images

Figure CN113094055B_ABST
Abstract
Description
[0001] This application is a divisional application of an invention patent application with an international application date of November 4, 2016, which entered the Chinese national stage on May 4, 2018, with Chinese national application number 201680064751.7, and invention name “Maintaining control of restricted data during deployment in a cloud computing environment”. Background Art
[0002] Cloud computing environments (including data centers, server farms, etc.) have become increasingly common for providing large amounts of computing and storage resources. For example, cloud computing environments have been used to store and retrieve large amounts of data for various service applications (e.g., web applications, email services, search engine services, etc.). These networked systems typically include a large number of nodes distributed throughout one or more data centers, where each node provides a physical machine or a virtual machine running on a physical host.
[0003] Partly due to the complexity and the large number of nodes that can be included in such a cloud computer environment, resolving incidents and deploying software updates can be a time-consuming and expensive process. Data control policies imposed on cloud computing environments also contribute to the challenges of event management and deployment. In particular, many cloud computing environments are subject to data control policies that limit who has access to certain data and control planes, which allow changes to the production environment (i.e., the physical and logical environment in which the cloud service infrastructure components that provide services to customers are hosted). These data control policies can be driven by various factors (such as, for example, customer-driven requirements, laws, or industry best practices). Such data control policies can limit a given cloud computing environment to a certain service of an entity or to personnel who are authorized to access certain data or production environments, geographic boundaries, or certain logical or physical components within a given production environment. By way of example, customers in highly regulated industries (such as healthcare) may require that their computing environments be limited to certain screened personnel. As another example, some customers may be subject to regulations that limit the geographic boundaries in which cloud services are provided or in which restricted data is stored, processed, or both. Such regulations may include who is authorized to have access to restricted data and the control plane of the production environment. Complying with these data control policies presents challenges in how cloud services are deployed and managed to maintain control over data. Summary of the invention
[0004] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
[0005] Embodiments of the present invention generally relate to deploying a release to a production environment of a cloud computing environment in a manner that maintains control of the data. According to an embodiment, a DevOps person is assigned a research and development release task. However, the DevOps person is not authorized to deploy the release to the cloud computing environment because the DevOps person does not have access to restricted data in the cloud computing environment or the ability to modify the cloud computing environment to gain access to restricted data. When completed, an operator with access to restricted data and the right to modify the cloud computing environment is notified of the release and a given release specification that provides details of the release. If the operator approves the release, the release is transmitted to the cloud computing environment, and a deployment engine automatically deploys the release to the production environment of the cloud computing environment. BRIEF DESCRIPTION OF THE DRAWINGS
[0006] The present invention is described in detail below with reference to the accompanying drawings, in which:
[0007] Figure 1 is a block diagram illustrating a system for automated and / or remote execution of operations for event management according to an embodiment of the present invention;
[0008] Figure 2 is a flow chart illustrating a method for event management using automation and / or remote execution of operations according to an embodiment of the present invention;
[0009] Figure 3 is a block diagram illustrating a system for just-in-time access to a cloud computing environment for event management according to an embodiment of the present invention;
[0010] Figure 4 is a flow chart illustrating a method for event management using just-in-time access to a cloud computing environment according to an embodiment of the present invention;
[0011] Figure 5 is a block diagram illustrating a system for accompanying a session on a cloud computing environment for event management according to an embodiment of the present invention;
[0012] Figure 6 is a flow chart illustrating a method for event management using an escorted session for a cloud computing environment according to an embodiment of the present invention;
[0013] Figure 7 is a block diagram illustrating a system for deploying a release to a production environment of a cloud computing environment according to an embodiment of the present invention;
[0014] Figure 8 is a flowchart illustrating a method for deploying a release to a production environment of a cloud computing environment according to an embodiment of the present invention; and
[0015] Fig. 9is a block diagram of an exemplary computing environment suitable for use in implementing embodiments of the present invention. DETAILED DESCRIPTION
[0016] The subject matter of the present invention is described herein with particularity to meet statutory requirements. However, the specification itself is not intended to limit the scope of this patent. On the contrary, the inventor has anticipated that the claimed subject matter may also be implemented in other ways, including in combination with other present or future technologies and those described in this document. Different steps or step combinations similar. Moreover, although the terms "step" and / or "block" may also be used to imply different elements of the method used, the terms should not be interpreted as implying any particular order between or among the various steps disclosed herein unless and except when the order of the individual steps is explicitly described.
[0017] As described above, data control policies on cloud computing environments often restrict who has access to certain data and control planes to implement changes to the production environment (i.e., the physical and logical environment in which cloud infrastructure components that provide services to customers are hosted). According to some data control policies, the data stored by the cloud service includes both unrestricted data and restricted data. Although access to unrestricted data may be more generally available, access to restricted data is only available to individuals who meet the requirements indicated by the data control policy. As used herein, the term "operator" is used to refer to individuals who have persistent access to restricted data or do not require pre-approval to access restricted data. Individuals who are considered operators may vary depending on the applicable data control policies of the cloud computing environment. By way of example only, operators may be required to reside in a country where the cloud computing environment is located and has passed screening requirements (e.g., background / security boundary checks). Operators may be third-party entities, authorized personnel within a given entity or across multiple entities. Operators are typically defined by cloud service providers, but in some instances, operators may be defined by customers.
[0018] As used herein, "restricted data" includes any data whose access is limited to and / or controlled by an operator. By way of example only and not limitation, restricted data may include customer content / data, end-user identifiable information, and access control data. Customer content is defined as content and all data provided directly by a customer user, including all text, sound, software, or image files provided by the customer and provided on behalf of the customer through the use of the service. This includes, but is not limited to: email bodies (in whole or in part), email attachment bodies, information in the body of a file, IM or voice conversations, customer-generated large objects or structured storage data, customer binaries running in virtual machines, customer-owned security information / secrets (certificates, encryption keys, storage keys, customer address list data (name, (one or more) email addresses), office addresses, phone numbers, managers / direct reports, positions, distribution group memberships), network packet payloads, database content, service bus message content, etc. End-user identifiable information is defined as data that is unique to a user or is generated based on its use of the service; it can be linked to an individual user and does not include customer content. This includes, but is not limited to: user-specific Internet Protocol (IP) addresses, email addresses, email subject lines or email attachment names, user names, display names, office numbers, employee IDs, address book data, behavioral / usage data that can be linked to individual users, location information, machine names, etc. Access control data is used to manage access to other types of data or functionality within the environment, including access to customer content or end-user identifiable information. It includes passwords, security certificates, and other authentication-related data, such as: passwords for platform components; private keys used to manage certificates for platform components.
[0019] Alternatively, "non-restricted" data may be more generally accessible and not limited to access by operators. By way of example only and not limitation, non-restricted data may include account / administrator data, payment data, organization-identifiable information, and system metadata. Account / administrator data is information about an administrator provided during registration, purchase, or administration of a service, such as: the name of the customer's company name (e.g., "Contoso"), the customer's Internet domain name (in the absence of a user name; e.g., "contoso.cn"), the customer's company billing address, the email address, name, username, IP address of such administrator's computer or customer server (i.e., not tied to an end user), etc. of a service administrator for a hosted service. Payment data is information about a payment instrument (such as credit card details). It is subject to other security precautions, but may not be considered "restricted" for the access restrictions addressed herein. Organization-identifiable information is defined as data that can be used to identify a specific tenant (typically configuration or usage data), is not linkable to an individual user, and does not contain customer content. This may include: tenant ID, customer subscription ID, aggregate behavior / usage data that may be associated with a tenant rather than a user, tenant usage data, tenant IP addresses (e.g., IP addresses associated with a customer's virtual machine or a local server rather than an individual end user), etc. System metadata includes operational data such as: service records (assuming they do not contain restricted data), technical information about subscriptions (e.g., service topology), technical information about tenants (e.g., customer role names), configuration settings / files, service status, preference metrics, IP addresses used for Internet transport services (firewalls, network flows, traffic monitoring), etc.
[0020] Data control policies that restrict who can access restricted data and make certain changes to the production environment of a cloud computing environment present challenges to cloud service providers. In particular, the operation of cloud services requires the management of events, which may include, for example, maintenance tasks, deployment events, live field events, customer reported events, and support requests. In addition, the operation of cloud services requires that periodic updates and patches be deployed to the production environment. In the context of a cloud computing environment where access to restricted data and the control plane is limited to operators, it may be difficult to properly provide event management and software / firmware deployment when the number and available expertise of operators may not be sufficient to properly maintain the cloud computing environment.
[0021] Embodiments of the present invention relate to technical improvements that allow cloud service providers to employ DevOps personnel to facilitate incident management and software / firmware deployment in cloud computing environments while satisfying data control policies that manage access to restricted data and the control plane of the cloud computing environment. As used herein, "DevOps personnel" includes individuals from the engineering team of a cloud service provider (including subsidiaries, affiliates, suppliers, etc.) who do not have access to "restricted data" and unlimited access to the control plane of the cloud computing environment. In some instances, DevOps personnel may not reside in the country in which the cloud computing environment is located and may not be subject to security screening requirements applied to operators.
[0022] According to an embodiment of the present invention, access control technology is provided to allow DevOps personnel to facilitate event management and software / firmware deployment, while ensuring that DevOps personnel do not have the technical means to obtain unapproved access to restricted data or control planes to implement changes to the production environment of the cloud computing environment, which will give DevOps personnel the ability to access restricted data.
[0023] As will be described in more detail below, access control techniques for event management include allowing automated operations to be performed in response to known events that do not require any involvement of DevOps personnel to perform automated operations. The technology also includes allowing remote operations to be performed by DevOps personnel in response to events where DevOps personnel are not provided with access to restricted data in the cloud computing environment or the control plane of the cloud computing environment. The operator can control whether the remote operation is performed and can edit the data before any data is returned to the DevOps personnel. Another technology is to provide just-in-time (JIT) access to DevOps personnel to resolve the incident. JIT access is subject to inspection and approval caused by the operator. In addition, JIT access is limited to a specific level or type of access and is also first in time, so that JIT access is revoked when the time period expires. Another technology for event management is to use an escort model, in which an escort session between an operator and a DevOps person is established, and the escort session is connected to the production environment of the cloud computing environment. This gives DevOps personnel access to the production environment during an escort session to troubleshoot an incident, while operations personnel monitor the escort session and can terminate the session as desired.
[0024] A further embodiment ensures compliance with data control policies in the context of release deployment by requiring an operator to authorize the deployment. According to an embodiment, a DevOps person is assigned the task of developing a release. However, the DevOps person is not authorized to deploy the distribution to the cloud computing environment. When completed, an operator with access to restricted data and rights to modify the cloud computing environment is notified of the release and a given release specification providing details of the release. If the operator approves the release, the release is transmitted to the cloud computing environment, and the deployment engine automatically deploys the release to the production environment of the cloud computing environment.
[0025] Automated and remote execution
[0026] Some embodiments of the present invention relate to control and command tools that allow incident management operations to be performed on a production environment of a cloud computing environment at a distance so that DevOps personnel are not provided with access to the production environment. As will be discussed in more detail below, this includes the automated execution of operations, where operations are automatically selected and executed on the production environment to resolve the incident in response to a specific event trigger. This also includes a portal that allows DevOps personnel to review event information and select operations to be performed on the production environment to resolve the incident. Some operations are considered "permitted operations" that can be performed without operator approval. These include operations that will not expose any restricted data or allow DevOps personnel to change the production environment to access restricted data. Other operations are considered "inspectable operations" that require operator approval and / or supervision.
[0027] Now go to Figure 1 , a block diagram of an exemplary system 100 in which some embodiments of the present invention can be adopted is provided. It should be understood that the arrangement and other arrangements described herein are only set forth as examples. Other arrangements and elements (e.g., machines, interfaces, functions, orders, and functional groups, etc.) shown may be supplemented or replaced, and some elements may be omitted together. Further, many of the elements described herein are functional entities that may be implemented as discrete or distributed components or in combination with other components and in any suitable combination and position. Various functions described herein as performed by one or more entities may be performed by hardware, firmware, and / or software. For example, various functions may be performed by a processor that executes instructions stored in a memory.
[0028] In addition to other components not shown, the system 100 includes a DevOps device 102, an operator device 104, and a cloud computing environment 106. Figure 1 The system 100 shown in FIG. 1 is an example of a suitable computing system architecture. Figure 1Each of the components shown in the figure can be connected via any type of computing device (such as, for example, a combination of Fig. 9 The computing device 900 described herein is implemented. These components can communicate with each other via a network, which may include but is not limited to one or more local area networks (LANs) and / or wide area networks (WANs). Such a networking environment is common in offices, enterprise-wide computer networks, intranets, and the Internet. It should be understood that any number of devices can be adopted in the system 100 within the scope of the present invention. Each may include a single device or multiple devices that collaborate in a distributed environment that jointly provides the functions described herein. In addition, other components not shown may also be included in a network environment.
[0029] As in Figure 1 As shown in , cloud computing environment 106 includes production environment 108, which includes the physical and logical environment where cloud service infrastructure components that provide services to customers are hosted. This includes systems that store / process both restricted and unrestricted data. Cloud computing environment 106 also includes an operations execution manager 110, which is responsible for managing the execution of automated operations and remote operations submitted by DevOps personnel.
[0030] When an event is identified, information about the event is recorded and provided to the operations execution manager 110. The operations execution manager 110 analyzes the event information against the policy 112, which includes mapping specific operations to specific triggers. A trigger may include any of a variety of information about a production environment that may be reported using an event. If the event information includes information that matches a specific trigger in the policy 112, then the automated operation or set of automated operations mapped to the trigger in the policy 112 is automatically executed on the production environment 108 via the execution host 114.
[0031] Automated actions can be mapped to triggers in policy 112 in several different ways according to embodiments of the invention. In some instances, the mapping is manually generated by operations personnel and / or DevOps personnel. In other instances, the mapping is learned over time by collecting information about which actions are performed in response to various events. Machine learning is used to analyze the collected information to determine which actions are successful for handling certain events using a threshold level of certainty.
[0032] In some embodiments, instead of automatically performing the identified (one or more) actions, recommendations can be provided to the DevOps personnel via a portal 116 accessed on the DevOps device 102. The DevOps personnel examines the event information and the (one or more) recommended actions and determines whether to perform the (one or more) actions. This approach may be preferred in cases where the mapping is developed via machine learning analysis to ensure that the determined mapping is appropriate. Over time, when the confidence in the mapping reaches a certain level, the process can be automated, as described above.
[0033] When the event does not trigger any automated operation (or recommended operation), the event information is provided to the portal 116 on the DevOps device 102. The event information provided to the DevOps personnel includes only non-restricted data. DevOps can check the event information and select one or more operations to perform to solve the event. In some instances, a first set of licensed operations is available, which can be performed remotely by DevOps personnel without any approval from the operator. These operations are operations that will not expose any restricted data to DevOps personnel or allow DevOps personnel to modify the production environment 108 in a manner that allows DevOps personnel to access restricted data. In some instances, a second set of checkable operations is available, which can be performed remotely by DevOps personnel only after approval by the operator. These include operations with the potential to expose at least restricted data. In some embodiments, licensed operations and checkable operations can be described by policies 112 for cloud computing environments 106.
[0034] When a permitted operation or a permitted operation set is submitted by a DevOps personnel via portal 116, the execution host 114 performs (one or more) operations on the production environment 108. Alternatively, when a checkable operation or a checkable operation set is submitted by a DevOps personnel via portal 116, (one or more) operations are not automatically executed. Instead, information about (one or more) checkable operations is provided to the operator via portal 118 on the operator device 104. The operator checks and determines whether to allow the execution of (one or more) operations. If (one or more) operations are approved and executed, the data returned from (one or more) operations is initially provided to the operator via portal 118. The operator can edit any restricted data, and the edited data is provided to the DevOps personnel via portal 116. This ensures that no restricted data is provided to the DevOps personnel.
[0035] In some embodiments, when an operation is performed for debugging, virtual machine 12 is initialized and used for debugging purposes. This ensures that restricted data does not leave the cloud computing environment. Instead, DevOps personnel use portal 116 to remote into virtual machine 120 to perform debugging.
[0036] Reference now Figure 2 , a flow chart illustrating a method 200 for automating and / or remotely performing operations to resolve events in a cloud computing environment is provided. Each block of the method 200 and any other method discussed herein includes a computing process that can be performed using any combination of hardware, firmware, and / or software. For example, various functions can be performed by a processor executing instructions stored in a memory. The method can also be implemented as computer-usable instructions stored on a computer storage medium. The method can be provided via a stand-alone application, a service, or a hosted service (standalone or in combination with another hosted service), or inserted into another product, to name a few. For example, the method 200 can be performed using a computing device (such as Fig. 9 The computing device 900) is executed.
[0037] As shown at block 202, event information is received and recorded. The event information is analyzed to determine whether an automated action is available, as shown at block 204. This may include comparing the event information to a policy that maps event triggers to specific automated actions. If one or more automated actions are identified based on the event information, the automated action(s) are executed on the production environment, as shown at block 206. The automated actions have been reviewed by an operations staff and pre-approved for autonomous execution in a cloud computing environment.
[0038] If no automated actions are identified, the event information is analyzed to determine whether a recommended action is available, as shown at block 208. This can include comparing the event information to a policy that maps event triggers to specific recommended actions. If one or more recommended actions are identified based on the event information, information about events that utilize (one or more) recommended actions is provided to the DevOps personnel, as shown at block 210. The DevOps personnel can examine the event information and (one or more) recommended actions to determine whether to perform (one or more) actions. Thus, if a command is received from the DevOps personnel at block 212 to perform (one or more) actions, the (one or more) actions are performed on the production environment, as shown at block 214. Alternatively, the DevOps personnel may decide to perform (one or more) alternative actions as shown by advancing to block 218.
[0039] If no automatic or recommended actions are identified, the event information is provided to the DevOps personnel, as shown at block 216. The DevOps personnel reviews the event information, and one or more actions are selected by the DevOps personnel, as shown at block 218. A determination is made as to whether the action(s) include(s) permitted or reviewable actions at block 220. If only permitted action(s) are received, then the action(s) are performed, as shown at block 222. If any reviewable action(s) are included, then the identification of the action(s) is sent to the operations personnel, as shown at block 224.
[0040] The operations personnel reviews the operation(s), and a command is received to approve or reject the operation(s), as shown at block 226. If rejected, a notification is provided to the DevOps personnel, as shown at block 228. Alternatively, if approved, the operation(s) are performed on the production environment, as shown at block 230. Data returned from the operation(s) is provided to the operations personnel, as shown at block 232, and edits from the operations personnel are received, as shown at block 234. Access to the edited data is then provided to the DevOps personnel, as shown at block 236. As previously noted, in some embodiments, operations on the production environment of the cloud computing environment are performed using virtual machines within the cloud computing environment, and the DevOps engineer can remote into the virtual machine to perform debugging.
[0041] JIT Access
[0042] Some embodiments of the present invention relate to providing DevOps personnel with just-in-time (JIT) access to the production environment of a cloud computing environment in order to perform incident management. This provides DevOps personnel with access that is both limited in scope (i.e., the level of access permitted) and limited in time (i.e., JIT access is revoked after a set time period). As the data custodian / trustee of the cloud computing environment, operations personnel may be given the ability to review JIT access requests from DevOps personnel and determine whether to grant or deny the requested access. JIT access allows DevOps personnel to be provided with near real-time access to the production environment without providing DevOps personnel with persistent access to the production environment.
[0043] refer to Figure 3, a block diagram of an exemplary system 300 in which some embodiments of the present invention can be adopted is provided. It should be understood that the arrangement and other arrangements described herein are only set forth as examples. Other arrangements and elements (e.g., machines, interfaces, functions, orders, and functional groups, etc.) shown may be supplemented or replaced, and some elements may be omitted together. Further, many of the elements described herein are functional entities that may be implemented as discrete or distributed components or in combination with other components and in any suitable combination and position. Various functions described herein as performed by one or more entities may be performed by hardware, firmware, and / or software. For example, various functions may be performed by a processor that executes instructions stored in a memory.
[0044] In addition to other components not shown, system 300 includes DevOps equipment 302, operator equipment 304, and cloud computing environment 306. It should be understood that in Figure 3 The system 300 shown in FIG. 1 is one example of a suitable computing system architecture. Figure 3 Each of the components shown in the figure can be connected via any type of computing device (such as, for example, a combination of Fig. 9 The computing device 900 described herein is implemented. These components can communicate with each other via a network, which may include but is not limited to one or more local area networks (LANs) and / or wide area networks (WANs). Such a network environment is common in offices, enterprise-wide computer networks, intranets and the Internet. It should be understood that any number of devices can be adopted in the system 300 within the scope of the present invention. Each may include a single device or multiple devices that collaborate in a distributed environment that jointly provides the functions described herein. In addition, other components not shown may also be included in a network environment.
[0045] As in Figure 3 As shown in , cloud computing environment 306 includes production environment 308, which includes the physical and logical environment in which cloud service infrastructure components that provide services to customers are hosted. This includes systems that store / process both restricted data and non-restricted data. Cloud computing environment 306 also includes JIT service 310, which is responsible for handling JIT access for DevOps personnel.
[0046] When an event occurs, event information is recorded and provided to the DevOps personnel via the portal 312 on the DevOps device 302. The event information provided to the DevOps personnel includes only unrestricted data. The DevOps personnel examines the event information and determines that JIT access is required to resolve the event. In this way, the DevOps personnel submits a JIT access request to the JIT service 310 using the portal 312. The JIT access request can specify multiple parameters about the requested access. In various embodiments, the JIT access request specifies a specific level or type of access to a specific resource. The JIT access request also specifies the event for which the JIT access is requested (e.g., via an event number or other identifier).
[0047] When the JIT service 310 receives a JIT access request, the JIT service checks the request. Based on the JIT policy 314 set for the cloud computing environment, some JIT access requests are automatically granted by the JIT service 310, while other JIT access requests are elevated for approval by an operations staff. Typically, the JIT service 310 checks the JIT access request against the JIT policy 314 to determine whether the request is automatically granted. In this determination, the JIT service 310 can consider information such as the DevOps person (team, role, etc.) requesting JIT access, whether there is an active incident, the incident type, and the level / type of access requested.
[0048] If JIT access is automatically granted, notification of the grant can be provided to the operator via portal 316 on the operator device 304. Alternatively, if JIT access is not automatically granted, the request is provided to the operator via portal 316. The operator reviews the details of the JIT access request and determines whether to approve or deny JIT access. In either case of automated approval via JIT service 310 or approval by the operator, a time limit is set for JIT access. DevOps personnel can access the production environment based on the level / type of access granted. When the time limit expires, the JIT access is revoked. Alternatively, if access is no longer needed before the time limit expires (e.g., the incident is resolved), the DevOps personnel can choose to revoke JIT access.
[0049] Now go to Figure 4, a flowchart illustrating a method 400 for providing JIT access to a production environment of a cloud computing environment to a DevOps personnel is provided. As shown at block 402, event information is received and recorded. The event information is provided to the DevOps personnel, as shown at block 404. The DevOps personnel examines the event information and determines that JIT access is required to access and resolve the event. Therefore, a JIT access request from the DevOps personnel is received, as shown at block 406. The JIT access request specifies various information about the request, such as, for example, information about the requesting DevOps personnel (e.g., team, role, etc.), whether the event is identified, the event type, and the level / type of the requested event.
[0050] The JIT access request is evaluated by the JIT service, as shown at block 408. For example, details about the JIT access request can be compared with the JIT policy for the cloud computing environment. Based on the evaluation, a determination is made at block 410 as to whether the JIT access is automatically approved.
[0051] If JIT access is not automatically approved, the JIT access request is sent to the operations staff, as shown at block 412. The operations staff reviews the details of the JIT access request and determines whether to approve the request. Accordingly, a determination is made at block 414 as to whether approval is received. If JIT access is denied, a notification of the denial is sent to the DevOps staff, as shown at block 416.
[0052] Alternatively, if JIT access is automatically approved or approved by operations personnel, JIT access is provided to DevOps personnel, as shown at block 418. This includes setting a time limit for JIT access. DevOps personnel then access the production environment based on the approved JIT access to troubleshoot the incident. After the time limit expires, the JIT access is revoked, as shown at block 420. Alternatively, if JIT access is no longer needed (e.g., the incident has been resolved), the operations personnel or DevOps personnel can choose to edit the JIT access before the time limit expires.
[0053] Accompanying Model
[0054] A further embodiment of the present invention provides an escort model for incident management in a cloud computing environment. According to the escort model, DevOps personnel are given access to a production environment of a cloud computing environment, and operations personnel serve as escorts during the session.
[0055] refer to Figure 5, a block diagram of an exemplary system 500 in which some embodiments of the present invention can be adopted is provided. It should be understood that the arrangement and other arrangements described herein are only set forth as examples. Other arrangements and elements (e.g., machines, interfaces, functions, orders, and functional groups, etc.) shown may be supplemented or replaced, and some elements may be omitted together. Further, many of the elements described herein are functional entities that may be implemented as discrete or distributed components or in combination with other components and in any suitable combined position. Various functions described herein as performed by one or more entities may be performed by hardware, firmware, and / or software. For example, various functions may be performed by a processor that executes instructions stored in a memory.
[0056] In addition to other components not shown, system 500 includes DevOps equipment 502, operator equipment 504, and cloud computing environment 506. It should be understood that in Figure 5 The system 500 shown in FIG. 5 is one example of a suitable computing system architecture. Figure 5 Each of the components shown in the figure can be connected via any type of computing device (such as, for example, a combination of Fig. 9 The computing device 900 described herein is implemented. These components can communicate with each other via a network, which may include but is not limited to one or more local area networks (LANs) and / or wide area networks (WANs). Such a network environment is common in offices, enterprise-wide computer networks, intranets and the Internet. It should be understood that any number of devices can be adopted in the system 500 within the scope of the present invention. Each may include a single device or multiple devices that collaborate in a distributed environment that jointly provides the functions described herein. In addition, other components not shown may also be included in a network environment.
[0057] As in Figure 5 As shown in , cloud computing environment 506 includes production environment 508, which includes the physical and logical environment in which cloud service infrastructure components that provide services to customers are hosted. This includes systems that store / process both restricted data and non-restricted data. Cloud computing environment 506 also includes an accompanying session service 510, which is responsible for facilitating accompanying sessions.
[0058] When an event occurs, the event information is recorded, and a determination is made by the DevOps personnel or the operator to troubleshoot the event using the accompanying session. The operator uses the operator device 504 to connect to the accompanying session service 510 to initiate the accompanying session. In addition, instructions are sent to the DevOps device 502 for the DevOps personnel to connect to the accompanying session service 510 to join the accompanying session. Using the instructions, the DevOps personnel use the DevOps device 502 to join the accompanying session via the accompanying session service 510. Within the accompanying session provided by the accompanying session service 510, the operator uses the operator's access credentials to connect to the production environment 508. The DevOps personnel and the operator have parallel mouse and keyboard control on the accompanying session and view the same information from the production environment. In this way, the DevOps personnel continue to troubleshoot the event using the operator's privileged access, while the operator monitors the actions of the DevOps personnel and can terminate the accompanying session as desired.
[0059] Figure 6 6 is a flow chart illustrating a method 600 for performing a chaperone session. As shown at block 602, a request to initiate a chaperone session is received at a chaperone session service from an operator's device. The request may be based on an event identifier that requires the chaperone session to resolve the event. In response to the request, the chaperone session is initiated, as shown at block 604. In addition, chaperone session information is provided to allow the DevOps personnel to join the session, as shown at block 606. A request to join the chaperone session is received from the DevOps device based on the provided session information, as shown at block 608, and in response, the DevOps device is joined to the session at block 610.
[0060] The escort session is used to connect to the production environment of the cloud computing environment using the operator's access credentials, as shown at block 612. Given the operator's access level, the session is then used by the DevOps personnel to troubleshoot the incident, as shown at block 614. In addition, the operator monitors the actions of the DevOps personnel during the escort session. When the troubleshooting is complete or at any other time, the operator can terminate the escort session, as shown at block 616.
[0061] Incident management using a combined approach
[0062] It should be noted that although the various event management methods are separate from each other as discussed above, any combination of event management methods may be available at a cloud computing environment, depending on the data control policy applicable to the cloud computing environment. For example, a cloud computing environment may be provided that includes: Figure 1 , Figure 3 and Figure 5Components of the cloud computing environment 106, 306, and / or 506 shown in . The order in which the incident management methods are selected can also be indicated by the level of data security provided by each method. For example, a method with a higher level of data security can be initially tried to resolve the incident, and if the first method fails to resolve the incident, another method with a lower level of data security is subsequently tried.
[0063] Typically, automation and remote operation execution provide the highest level of data security because DevOps personnel are not provided with access to the production environment. Instead, only operations can be submitted to the production environment (automatically or via approval from the operator). In addition, the operator has the opportunity to check and return data to edit any restricted data. When DevOps personnel are provided with a certain level of access to the production environment, JIT access provides a relatively low level of data security. However, this access level can be limited and access is also limited in time. Accompanying sessions may provide the lowest level of data security. In the accompanying model, DevOps personnel are granted access levels that can be used for accompanying operators for access. When the operator is actively monitoring the session and can terminate the session if necessary, if restricted data is returned during the session, the DevOps personnel may be able to view the restricted data at least temporarily.
[0064] deploy
[0065] Another area that presents potential problems for data control policies for cloud computing environments is the deployment of releases (e.g., software / firmware updates, patches, etc.) to a production environment. In particular, if a DevOps person is assigned the development task of a release for a production environment, it is important to ensure that the release does not make changes that would allow the DevOps person to access restricted data. Therefore, some embodiments are directed to techniques for facilitating the deployment of releases developed by DevOps personnel in a manner that prevents such changes. As will be discussed in more detail below, any release must be approved by an operations person before deployment. If approved by the operations person, the release is then automatically deployed to the production environment. In this way, the operations person is not required to deploy the release but can control the deployment.
[0066] Figure 7It is a block diagram illustrating an exemplary system 700 in which some embodiments of the present invention can be adopted.It should be understood that the arrangement and other arrangements described herein are only set forth as examples.To supplement or replace those arrangements and elements (e.g., machines, interfaces, functions, orders, and functional groups, etc.) shown, other arrangements and elements can be used, and some elements can be omitted together.Further, many elements in the elements described herein are functional entities that can be implemented as discrete or distributed components or in combination with other components and in any suitable combined position.The various functions described herein as performed by one or more entities can be performed by hardware, firmware and / or software.For example, various functions can be performed by a processor that executes instructions stored in a memory.
[0067] In addition to other components not shown, system 700 includes a deployment manager 702, a submitter device 704, an approver device, an operator device 708, and a cloud computing environment 710. Figure 7 The system 700 shown in FIG. 7 is one example of a suitable computing system architecture. Figure 1 Each of the components shown in the figure can be connected via any type of computing device (such as, for example, a combination of Fig. 9 The computing device 900 described herein is implemented. These components can communicate with each other via a network, which may include but is not limited to one or more local area networks (LANs) and / or wide area networks (WANs). Such a network environment is common in offices, enterprise-wide computer networks, intranets and the Internet. It should be understood that any number of devices can be adopted in the system 700 within the scope of the present invention. Each may include a single device or multiple devices that collaborate in a distributed environment that jointly provides the functions described herein. In addition, other components not shown may also be included in the network environment.
[0068] The deployment manager 702 generally operates to facilitate development releases by DevOps personnel, submit the releases to the cloud computing environment 710, and deploy the releases to the production environment 712. Using the deployment UI 714 on the submitter device, the DevOps personnel assigned the development release task authorize and submit the release to the deployment manager 702. Releases are stored in the associated development storage 716 during development. For a given release, the submitting DevOps personnel authorizes a published release specification that describes the release with enough details for the operations personnel to understand what is being deployed. The release specification can be stored in the development storage 716 associated with the release.
[0069] In some embodiments, a release requires approval by a DevOps person before submitting the release to the cloud computing environment 710. When a release is submitted to the deployment manager 702, the deployment manager 702 notifies the approver DevOps person. The approver DevOps person uses the deployment UI 718 on the approver device 706 to review and approve the release.
[0070] Once the release is approved by the approver DevOps personnel, a notification is provided to the operations personnel to review the release. The operations personnel access and review the release specifications using the deployment UI 722 on the operator device 708. In this way, the operations personnel ensure that the release will not make changes to the production environment 712 that would allow the DevOps personnel to access restricted data. The operations personnel then use the deployment UI 722 to approve or disapprove the release.
[0071] If the release is approved by the operator, the release is transferred from the development storage 716 to the release storage 720 in the cloud computing environment 710. The deployment engine 724 in the cloud computing environment 710 automatically deploys the release to the production environment 712. No action other than approval is required from the operator to deploy the release. During deployment, the operator can view the deployment status for the release using the deployment UI 722. In addition, the operator can cancel, restart, or resume the deployment via the deployment UI 722. DevOps personnel can also view the status of the deployment via the deployment UI (e.g., deployment UI 714, 718). However, DevOps personnel may not be given the ability to cancel, restart, or resume the deployment.
[0072] Now go to Figure 8 , a flow chart illustrating a method 800 for deploying a release to a production environment of a cloud computing environment is provided. As shown at block 802, a release and release specification are received from a DevOps person and stored. As described above, the release specification describes the release with sufficient detail for the operations person to understand the release and ensures that the release will not provide the DevOps person with access to restricted data. An approver from the DevOps person is notified of the release, as shown at block 804. The approver examines the release and / or release specification and approves the release, as shown at block 806.
[0073] In response to the approval from the approver DevOps personnel, the operations personnel are notified of the release, as shown at block 808. Access to the release specification is provided to the operations personnel, as shown at block 810. The operations personnel review the release specification and choose whether to approve or disapprove the release. This gives the operations personnel an opportunity to ensure that the release will not make changes to the cloud computing environment, which will provide the DevOps personnel with the ability to access restricted data.
[0074] A determination is made at block 812 as to whether the operator approves the release. If the release is disapproved, a notification of the disapproval is provided to the DevOps personnel, as shown at block 814. Alternatively, if the release is determined to be approved, the release is transmitted to the cloud computing environment and stored within the cloud computing environment, as shown at block 816. The release is automatically deployed to the production environment of the cloud computing environment using the deployment engine, as shown at block 818. The status of the deployment is tracked, as shown at block 820. In this way, the operator and / or DevOps personnel can check the status of the deployment. In addition, the operator can cancel, restart, or resume the deployment.
[0075] General operating environment
[0076] Having described embodiments of the present invention, an exemplary operating environment in which embodiments of the present invention may be implemented is described below to provide a general context for various aspects of the present invention. Fig. 9 , in particular, an exemplary operating environment for implementing embodiments of the invention is shown and generally designated as computing device 900. Computing device 900 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Computing device 900 should also not be interpreted as illustrating any dependencies or requirements relating to any one or combination of components.
[0077] The present invention may be described in the general context of computer code or machine-usable instructions, including computer-executable instructions (such as program modules) executed by a computer or other machine (such as a personal digital assistant or other handheld device). In general, program modules including routines, programs, objects, components, data structures, etc. refer to code that performs specific tasks or implements specific abstract data types. The present invention may be practiced in a variety of system configurations, including handheld devices, consumer electronic devices, general-purpose computers, more specialized computing devices, etc. The present invention may also be practiced in a distributed computing environment in which tasks are performed by remote processing devices linked through a communication network.
[0078] refer to Fig. 9 , computing device 900 includes bus 910, which directly or indirectly couples the following devices: memory 912, one or more processors 914, one or more presentation components 916, input / output ports 918, input / output components 920, and an illustrative power supply 922. Bus 910 represents what may be one or more buses (such as an address bus, a data bus, or a combination thereof). Although shown with lines for clarity Fig. 9, but in reality, delineating the various components is not so clear, and the metaphorical ground line would more accurately be gray and fuzzy. For example, one could consider a presentation component (such as a display device) to be an I / O component. Also, a processor has memory. The inventors recognize that the nature of the art is such and reiterate that Fig. 9 The diagrams illustrate only exemplary computing devices that may be used in conjunction with one or more embodiments of the present invention. No distinction is made between categories such as "workstation," "server," "laptop," "handheld device," etc., as all are contemplated. Fig. 9 within the scope of and with reference to a “computing device”.
[0079] The computing device 900 generally includes various computer-readable media. Computer-readable media can be any available media that can be accessed by the computing device 900 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example and not limitation, computer-readable media can include computer storage media and communication media. Computer storage media include both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for the storage of information (such as computer-readable instructions, data structures, program modules or other data). Computer storage media include but are not limited to RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disc (DVD) or other optical disk storage devices, cassettes, tapes, disk storage devices or other magnetic storage devices or any other media that can be used to store desired information and can be accessed by the computing device 900. Computer storage media do not include signals themselves. Communication media generally implement other data in computer-readable instructions, data structures, program modules or modulated data signals (such as carrier waves or other transmission mechanisms), and include any information delivery media. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media (such as a wired network or direct-wired connection) and wireless media (such as acoustic, RF, infrared and other wireless media). Any combination of the above should also be included within the scope of computer-readable media.
[0080] Memory 912 includes computer storage media in the form of volatile and / or non-volatile memory. Memory can be removable, non-removable, or a combination of the two. Exemplary hardware devices include solid-state memory, hard disk drives, optical disk drives, etc. Computing device 900 includes one or more processors that read data from various entities (such as memory 912 and / or I / O components 920). (One or more) presentation components 916 present data indications to a user or other device. Exemplary presentation components include display devices, speakers, printing components, vibration components, etc.
[0081] I / O port 918 allows computing device 900 to be logically coupled to other devices including I / O components 920, some of which may be built-in. Illustrative components include microphones, joysticks, game pads, satellite dishes, scanners, printers, wireless devices, etc. I / O components 920 may provide a natural user interface (NUI) that processes air gestures, voice, or other physiological inputs generated by a user. In some instances, the input may be transmitted to an appropriate network element for further processing. NUI may implement any combination of the following: voice recognition, touch and light pen recognition, facial recognition, biometric recognition, gesture recognition on and near the screen, air gestures, head and eye tracking, and touch recognition associated with a display on computing device 900. Computing device 900 may be equipped with a depth camera (such as a stereo camera system, an infrared camera system, an RGB camera system, and a combination of these) for gesture detection and recognition. In addition, computing device 900 may be equipped with an accelerometer or gyroscope that implements detection motion. The output of the accelerometer or gyroscope may be provided to a display of computing device 900 to render immersive augmented reality or virtual reality.
[0082] As can be appreciated, embodiments of the present invention generally relate to providing event management and release deployment for cloud computing environments in a manner that maintains control over restricted data. The present invention has been described with respect to specific embodiments, which are intended to be illustrative rather than restrictive in all respects. Alternative embodiments will be apparent to those of ordinary skill in the art to which the present invention pertains without departing from the scope of the present invention.
[0083] From the foregoing, it will be seen that the present invention is well adapted to maintain all of the objects and purposes set forth hereinabove, as well as other advantages that are obvious and inherent to the systems and methods. It will be appreciated that certain features and subcombinations have utility and may be employed without reference to other features and subcombinations. This is contemplated by the claims and is within the scope of the claims.
Claims
1. A computerized method for deploying a release to a production environment of a cloud computing environment, comprising: providing a publication specification for the publication, the publication author having no access to restricted data in the cloud computing environment, wherein the publication is at least one of: a software upgrade, a software patch, a firmware upgrade, or a firmware patch, and the publication specification describes at least how the publication cannot be changed in a way that would allow unauthorized access to the restricted data; providing access to said publication specification; receiving the publication at the cloud computing environment; receiving approval for said release; as well as In response to the approval, the release is automatically deployed to the production environment. 2 . The method of claim 1 , wherein the method further comprises receiving the release and the release specification via a deployment UI outside of the cloud computing environment. 3 . The method of claim 2 , wherein the method further comprises storing the release and the release specification in a development storage device external to the cloud computing environment. 4 . The method of claim 2 , wherein the method further comprises providing a notification for approving the publishing prior to transmitting to the cloud computing environment. The method of claim 4 , wherein the method further comprises providing the notification regarding the publishing in response to receiving the approval. 6 . The method of claim 1 , wherein the method further comprises tracking a status of deploying the release to the production environment of the cloud computing environment. 7 . The method of claim 6 , wherein the method further comprises providing status information regarding the status of deploying the release to the production environment of the cloud computing environment.
8. The method of claim 6, wherein the method further comprises providing status information regarding the status of deployment of the publication to an author of the publication.
9. One or more computer storage media storing computer usable instructions that, when used by one or more computing devices, cause the one or more computing devices to perform operations comprising: providing a publication specification for a publication, a publication author having no access to restricted data in a cloud computing environment, wherein the publication is at least one of: a software upgrade, a software patch, a firmware upgrade, or a firmware patch, and the publication specification describes at least how the publication cannot be changed in a way that would allow unauthorized access to the restricted data; providing access to said publication specification; receiving the publication at the cloud computing environment; receiving approval for said release; as well as Responsive to the approval, the release is automatically deployed to a production environment.
10. The one or more computer storage media of claim 9, wherein the one or more computing devices are further caused to perform operations comprising receiving the release and the release specification via a deployment UI external to the cloud computing environment.
11. The one or more computer storage media of claim 10, wherein the one or more computing devices are further caused to perform operations comprising storing the release and the release specification in development storage external to the cloud computing environment.
12. The one or more computer storage media of claim 10, wherein the one or more computing devices are further caused to perform operations comprising providing a notification for approving the publication prior to transmission to the cloud computing environment.
13. The one or more computer storage media of claim 12, wherein the one or more computing devices are further caused to perform operations comprising providing the notification regarding the publishing in response to receiving the approval.
14. The one or more computer storage media of claim 9, wherein the one or more computing devices are further caused to perform operations comprising tracking a status of deploying the release to the production environment of the cloud computing environment.
15. The one or more computer storage media of claim 14, wherein the one or more computing devices are further caused to perform operations comprising providing status information regarding the status of deploying the release to the production environment of the cloud computing environment.
16. The one or more computer storage media of claim 14, wherein the one or more computing devices are further caused to perform operations comprising providing status information regarding the status of deployment of the publication to an author of the publication.
17. A computerized system comprising: one or more processors; as well as One or more computer storage media storing computer usable components for deploying a release to a production environment of a cloud computing environment, the computer usable components comprising: a deployment manager supporting development of the release by a release author who does not have access to restricted data in the cloud computing environment, the deployment manager receiving the release and a release specification and storing the release and the release specification in a development storage device external to the cloud computing environment, wherein the release is at least one of: a software upgrade, a software patch, a firmware upgrade, or a firmware patch, and the release specification describes at least how the release cannot be changed in a way that would allow unauthorized access to the restricted data; the development storage device, the development storage device being used to store the release before transmitting the release to the cloud computing environment; A publication storage device at the cloud computing environment, the publication storage device receiving and storing the publication; and A deployment engine is provided to deploy the release to the production environment of the cloud computing environment in response to receiving approval of the release.
18. The computerized system of claim 17, wherein the release and the release specification are received external to the cloud computing environment via a deployment UI.
19. The computerized system of claim 18, wherein the release and the release specification are stored in a development storage device external to the cloud computing environment.
20. The computerized system of claim 18, wherein notification is provided for approval of the publishing prior to transmission to the cloud computing environment.
