From 89a35669df9c1d07cb508be53856deae41bc24d6 Mon Sep 17 00:00:00 2001 From: Tomi Juvonen Date: Thu, 19 Apr 2018 11:47:36 +0300 Subject: [PATCH] Update the maintenance design document JIRA: DOCTOR-125 Change-Id: Ideb1482fa026213bfe5ebc7a1da89cfed634950f Signed-off-by: Tomi Juvonen --- .../design/images/maintenance-workflow.png | Bin 0 -> 81286 bytes .../design/maintenance-design-guideline.rst | 426 +++++++++++++++------ 2 files changed, 302 insertions(+), 124 deletions(-) create mode 100644 docs/development/design/images/maintenance-workflow.png diff --git a/docs/development/design/images/maintenance-workflow.png b/docs/development/design/images/maintenance-workflow.png new file mode 100644 index 0000000000000000000000000000000000000000..9b65fd5938f2e44374820231a3c3e1d9e67269d5 GIT binary patch literal 81286 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 | - +<-------------------------+ | - | 2. | | | | - +------>+ 3. | | | - | +-------->+ 4. | | - | | +------->+ | - | | 5. +<-------+ | - +<----------------+ | | - | | 6. | | - +------------------------->+ | - +<-------------------------+ 7. | - +------------------------------------->+ - | 8. | | | | - +------>+ 9. | | | - | +-------->+ | | - +--------------------------------------+ - | 10. | - +--------------------------------------+ - | 11. | | | | - +------------------------->+ | - +<-------------------------+ | - | 12. | | | | - +------>+-------->+ | 13. | - +------------------------------------->+ - +-------+---------+--------+-----------+ - -Concepts used below: - -- `full maintenance`: This means maintenance will take a longer time and - resource should be emptied, meaning container or VM need to be moved or - deleted. Admin might need to test resource to work after maintenance. - -- `reboot`: Only a reboot is needed and admin does not need separate testing - after that. Container or VM can be left in place if so wanted. - -- `notification`: Notification to rabbitmq. - -Admin makes a planned maintenance session where he sets -a `maintenance_session_id` that is a unique ID for all the hardware resources he -is going to have the maintenance at the same time. Mostly maintenance should be -done node by node, meaning a single compute node at a time would be in single -planned maintenance session having unique `maintenance_session_id`. This ID will -be carried trough the whole session in all places and can be used to query -maintenance in admin tool API. Project running a Telco application should set -a specific role for admin tool to know it cannot do planned maintenance unless -project has agreed actions to be done for its VMs or containers. This means the -project has configured itself to get alarms upon planned maintenance and it is -capable of agreeing needed actions. Admin is supposed to use an admin tool to -automate maintenance process partially or entirely. - -The flow of a successful planned maintenance session as in OpenStack example -case: - -1. Admin disables nova-compute in order to do planned maintenance on a compute - host and gets ACK from the API call. This action needs to be done to ensure - no thing will be placed in this compute host by any user. Action is always - done regardless the whole compute will be affected or not. -2. Admin sends a project specific maintenance notification with state - `planned maintenance`. This includes detailed information about maintenance, - like when it is going to start, is it `reboot` or `full maintenance` - including the information about project containers or VMs running on host or - the part of it that will need maintenance. Also default action like - migration will be mentioned that will be issued by admin before maintenance - starts if no other action is set by project. In case project has a specific - role set, planned maintenance cannot start unless project has agreed the - admin action. Available admin actions are also listed in notification. -3. Application manager of the project receives AODH alarm about the same. -4. Application manager can do switch over to his ACT-STBY service, delete and - re-instantiate his service on not affected resource if so wanted. -5. Application manager may call admin tool API to give preferred instructions - for leaving VMs and containers in place or do admin action to migrate them. - In case admin does not receive this instruction before maintenance is to - start it will do the pre-configured default action like migration to - projects without a specific role to say project need to agree the action. - VMs or Containers can be left on host if type of maintenance is just `reboot`. -6. Admin does possible actions to VMs and containers and receives an ACK. -7. In case everything went ok, Admin sends admin type of maintenance - notification with state `in maintenance`. This notification can be consumed - by Inspector and other cloud services to know there is ongoing maintenance - which means things like automatic fault management actions for the hardware - resources should be disabled. -8. If maintenance type is `reboot` and project is still having containers or - VMs running on affected hardware resource, Admin sends project specific - maintenance notification with state updated to `in maintenance`. If project - do not have anything left running on affected hardware resource, state will - be `maintenance over` instead. If maintenance can not be performed for some - reason state should be `maintenance cancelled`. In this case last operation - remaining for admin is to re-enable nova-compute service, ensure - everything is running and not to proceed any further steps. -9. Application manager of the project receives AODH alarm about the same. -10. Admin will do the maintenance. This is out of Doctor scope. -11. Admin enables nova-compute service when maintenance is over and host can be - put back to production. An ACK is received from API call. -12. In case project had left containers or VMs on hardware resource over - maintenance, Admin sends project specific maintenance notification with - state updated to `maintenance over`. -13. Admin sends admin type of maintenance notification with state updated to - `maintenance over`. Inspector and other - cloud services can consume this to know hardware resource is back in use. +There should be at least one empty host compatible to host under maintenance in +order to have a smooth `rolling maintenance` done. For this to be possible also +down scaling the application instances should be possible. + +Infrastructure admin should have a tool that is responsible for hosting a +maintenance work flow session with needed APIs for admin and for applications. +The Group of hosts in single maintenance session should always have the same +physical capabilities, so the rolling maintenance can be guaranteed. + +Flow diagram is meant to be as high level as possible. It currently does not try +to be perfect, but to show the most important interfaces needed between VNFM and +infrastructure admin. This can be seen e.g. as missing error handling that can +be defined later on. + +Flow diagram: + +.. figure:: images/maintenance-workflow.png + :alt: Work flow in OpenStack + +Flow diagram step by step: + +- Infrastructure admin makes a maintenance session to maintain and upgrade + certain group of hardware. At least compute hardware in single session should + be having same capabilities like the amount number of VCPUs to ensure + the maintenance can be done node by node in rolling fashion. Maintenance + session need to have a `session_id` that is a unique ID to be carried + throughout all events and can be used in APIs needed when interacting with + the session. Maintenance session needs to have knowledge about when + maintenance will start and what capabilities the possible upgrade to + infrastructure will bring to application payload on top of it. It will be + matter of the implementation to define in more detail whether some more data is + needed when creating a session or if it is defined in the admin tool + configuration. + + There can be several parallel maintenance sessions and a single session can + include multiple projects payload. Typically maintenance session should include + similar type of compute hardware, so you can guarantee moving of instances on + top of them can work between the compute hosts. + +- State `MAINTENANCE` `project event` and reply `ACK_MAINTENANCE`. Immediately + after a maintenance session is created, infrastructure admin tool will send + a project specific 'notification' which application manager can consume by + subscribing to AODH alarm for this event. As explained already earlier all + `project event`s will only be sent in case the project subscribes to alarm and + otherwise the interaction with application will simply not be done and + operations could be forced. + + The state `MAINTENANCE` event should at least include: + + - `session_id` to reference correct maintenance session. + - `state` as `MAINTENANCE` to identify event action needed. + - `instance_ids` to tell project which of his instances will be affected by + the maintenance. This might be a link to admin tool project specific API + as AODH variables are limited to string of 255 character. + - `reply_url` for application to call admin tool project specific API to + answer `ACK_MAINTENANCE` including the `session_id`. + - `project_id` to identify project. + - `actions_at` time stamp to indicate when maintenance work flow will start. + `ACK_MAINTENANCE` reply is needed before that time. + - `metadata` to include key values pairs of a capabilities coming over the + maintenance operation like 'openstack_version': 'Queens' + +- Optional state `DOWN_SCALE` `project event` and reply `ACK_DOWN_SCALE`. When it + is time to start the maintenance work flow as the time reaches the `actions_at` + defined in previous `state event`, admin tool needs to check if there is already + an empty compute host needed by the `rolling maintenance`. In case there is no + empty host, admin tool can ask application to down scale by sending project + specific `DOWN_SCALE` `state event`. + + The state `DOWN_SCALE` event should at least include: + + - `session_id` to reference correct maintenance session. + - `state` as `DOWN_SCALE` to identify event action needed. + - `reply_url` for application to call admin tool project specific API to + answer `ACK_DOWN_SCALE` including the `session_id`. + - `project_id` to identify project. + - `actions_at` time stamp to indicate when is the last moment to send + `ACK_DOWN_SCALE`. This means application can have time to finish some + ongoing transactions before down scaling his instances. This guarantees + a zero downtime for his service. + +- Optional state `PREPARE_MAINTENANCE` `project event` and reply + `ACK_PREPARE_MAINTENANCE`. In case still after down scaling the applications + there is still no empty compute host, admin tools needs to analyze the + situation on compute host under maintenance. It needs to choose compute node + that is now almost empty or has otherwise least critical instances running if + possible, like looking if there is floating IPs. When compute host is chosen, + a `PREPARE_MAINTENANCE` `state event` can be sent to projects having instances + running on this host to migrate them to other compute hosts. It might also be + possible to have another round of `DOWN_SCALE` `state event` if necessary, but + this is not proposed here. + + The state `PREPARE_MAINTENANCE` event should at least include: + + - `session_id` to reference correct maintenance session. + - `state` as `PREPARE_MAINTENANCE` to identify event action needed. + - `instance_ids` to tell project which of his instances will be affected by + the `state event`. This might be a link to admin tool project specific API + as AODH variables are limited to string of 255 character. + - `reply_url` for application to call admin tool project specific API to + answer `ACK_PREPARE_MAINTENANCE` including the `session_id` and + `instance_ids` with list of key value pairs with key as `instance_id` and + chosen action from allowed actions given via `allowed_actions` as value. + - `project_id` to identify project. + - `actions_at` time stamp to indicate when is the last moment to send + `ACK_PREPARE_MAINTENANCE`. This means application can have time to finish + some ongoing transactions within his instances and make possible + switch over. This guarantees a zero downtime for his service. + - `allowed_actions` to tell what admin tool supports as action to move + instances to another compute host. Typically a list like: `['MIGRATE', 'LIVE_MIGRATE']` + +- Optional state `INSTANCE_ACTION_DONE` `project event`. In case admin tool needed + to make action to move instance like migrating it to another compute host, this + `state event` will be sent to tell the operation is complete. + + The state `INSTANCE_ACTION_DONE` event should at least include: + + - `session_id` to reference correct maintenance session. + - `instance_ids` to tell project which of his instance had the admin action + done. + - `project_id` to identify project. + +- At this state it is guaranteed there is an empty compute host. It would be + maintained first trough `IN_MAINTENANCE` and `MAINTENANCE_COMPLETE` steps, but + following the flow chart `PLANNED_MAINTENANCE` will be explained next. + +- Optional state `PLANNED_MAINTENANCE` `project event` and reply + `ACK_PLANNED_MAINTENANCE`. In case compute host to be maintained has + instances, projects owning those should have this `state event`. When project + receives this `state event` it knows instances moved to other compute host as + resulting actions will now go to host that is already maintained. This means + it might have new capabilities that project can take into use. This gives the + project the possibility to upgrade his instances also to support new + capabilities over the action chosen to move instances. + + The state `PLANNED_MAINTENANCE` event should at least include: + + - `session_id` to reference correct maintenance session. + - `state` as `PLANNED_MAINTENANCE` to identify event action needed. + - `instance_ids` to tell project which of his instances will be affected by + the event. This might be a link to admin tool project specific API as AODH + variables are limited to string of 255 character. + - `reply_url` for application to call admin tool project specific API to + answer `ACK_PLANNED_MAINTENANCE` including the `session_id` and + `instance_ids` with list of key value pairs with key as `instance_id` and + chosen action from allowed actions given via `allowed_actions` as value. + - `project_id` to identify project. + - `actions_at` time stamp to indicate when is the last moment to send + `ACK_PLANNED_MAINTENANCE`. This means application can have time to finish + some ongoing transactions within his instances and make possible switch + over. This guarantees a zero downtime for his service. + - `allowed_actions` to tell what admin tool supports as action to move + instances to another compute host. Typically a list like: `['MIGRATE', 'LIVE_MIGRATE', 'OWN_ACTION']` + `OWN_ACTION` means that application may want to re-instantiate his + instance perhaps to take into use the new capability coming over the + infrastructure maintenance. Re-instantiated instance will go to already + maintained host having the new capability. + - `metadata` to include key values pairs of a capabilities coming over the + maintenance operation like 'openstack_version': 'Queens' + +- `State IN_MAINTENANCE` and `MAINTENANCE_COMPLETE` `admin event`s. Just before + host goes to maintenance the IN_MAINTENANCE` `state event` will be send to + indicate host is entering to maintenance. Host is then taken out of production + and can be powered off, replaced, or rebooted during the operation. + During the maintenance and upgrade host might be moved to admin's own host + aggregate, so it can be tested to work before putting back to production. + After maintenance is complete `MAINTENANCE_COMPLETE` `state event` will be sent + to know host is back in use. Adding or removing of a host is yet not + included in this concept, but can be addressed later. + + The state `IN_MAINTENANCE` and `MAINTENANCE_COMPLETE` event should at least + include: + + - `session_id` to reference correct maintenance session. + - `state` as `IN_MAINTENANCE` or `MAINTENANCE_COMPLETE` to indicate host + state. + - `project_id` to identify admin project needed by AODH alarm. + - `host` to indicate the host name. + +- State `MAINTENANCE_COMPLETE` `project event` and reply + `MAINTENANCE_COMPLETE_ACK`. After all compute nodes in the maintenance session + have gone trough maintenance operation this `state event` can be send to all + projects that had instances running on any of those nodes. If there was a down + scale done, now the application could up scale back to full operation. + + - `session_id` to reference correct maintenance session. + - `state` as `MAINTENANCE_COMPLETE` to identify event action needed. + - `instance_ids` to tell project which of his instances are currently + running on hosts maintained in this maintenance session. This might be a + link to admin tool project specific API as AODH variables are limited to + string of 255 character. + - `reply_url` for application to call admin tool project specific API to + answer `ACK_MAINTENANCE` including the `session_id`. + - `project_id` to identify project. + - `actions_at` time stamp to indicate when maintenance work flow will start. + - `metadata` to include key values pairs of a capabilities coming over the + maintenance operation like 'openstack_version': 'Queens' + +- At the end admin tool maintenance session can enter to `MAINTENANCE_COMPLETE` + state and session can be removed. + +Benefits +======== + +- Application is guaranteed zero downtime as it is aware of the maintenance + action affecting its payload. The application is made aware of the maintenance + time window to make sure it can prepare for it. +- Application gets to know new capabilities over infrastructure maintenance and + upgrade and can utilize those (like do its own upgrade) +- Any application supporting the interaction being defined could be running on + top of the same infrastructure provider. No vendor lock-in for application. +- Any infrastructure component can be aware of host(s) under maintenance via + `admin event`s about host state. No vendor lock-in for infrastructure + components. +- Generic messaging making it possible to use same concept in different type of + clouds and application payloads. `instance_ids` will uniquely identify any + type of instance and similar notification payload can be used regardless we + are in OpenStack. Work flow just need to support different cloud + infrastructure management to support different cloud. +- No additional hardware is needed during maintenance operations as down- and + up-scaling can be supported for the applications. Optional, if no extensive + spare capacity is available for the maintenance - as typically the case in + Telco environments. +- Parallel maintenance sessions for different group of hardware. Same session + should include hardware with same capabilities to guarantee `rolling + maintenance` actions. +- Multi-tenancy support. Project specific messaging about maintenance. + +Future considerations +===================== + +- Pluggable architecture for infrastructure admin tool to handle different + clouds and payloads. +- Pluggable architecture to handle specific maintenance/upgrade cases like + OpenStack upgrade between specific versions or admin testing before giving + host back to production. +- Support for user specific details need to be taken into account in admin side + actions (e.g. run a script, ...). +- (Re-)Use existing implementations like Mistral for work flows. +- Scaling hardware resources. Allow critical application to be scaled at the + same time in controlled fashion or retire application. POC --- -There was a `Maintenance POC`_ for planned maintenance in the OPNFV Beijing -summit to show the basic concept of using framework defined by the project. +There was a `Maintenance POC`_ demo 'How to gain VNF zero down-time during +Infrastructure Maintenance and Upgrade' in the OCP and ONS summit March 2018. +Similar concept is also being made as `OPNFV Doctor project`_ new test case +scenario. -.. _DOCTOR-52: https://jira.opnfv.org/browse/DOCTOR-52 .. _OPNFV Doctor project: https://wiki.opnfv.org/doctor .. _use cases: http://artifacts.opnfv.org/doctor/docs/requirements/02-use_cases.html#nvfi-maintenance .. _architecture: http://artifacts.opnfv.org/doctor/docs/requirements/03-architecture.html#nfvi-maintenance .. _implementation: http://artifacts.opnfv.org/doctor/docs/requirements/05-implementation.html#nfvi-maintenance -.. _planned maintenance session: https://lists.opnfv.org/pipermail/opnfv-tech-discuss/2017-June/016677.html -.. _Maintenance POC: https://wiki.opnfv.org/download/attachments/5046291/Doctor%20Maintenance%20PoC%202017.pptx?version=1&modificationDate=1498182869000&api=v2 +.. _Maintenance POC: https://youtu.be/7q496Tutzlo -- 2.16.6