Tuesday, January 6, 2015

(Phase One – Plan) Strategy to migrate Software Applications to Cloud



Series:
 (Disclaimer: The manuscript is my personal view and is not affiliated to any groups or organizations)


This blog concludes my series of posts for Phase One of migration.

As plan brings in some structure and format to the effort it is imperative to have one. One of the iterative/agile methodologies (scrum, XP Programming, etc.) could immensely assist to keep the project under management and control. Adequate milestone should put in place to measure the progress of the project.

A typical fishbone diagram (very high prominent milestones):

Fishbone of milestone



A typical sundry list of task list:

Azure expertise build up plan
Feasibility Study
communication plan
Role and Team Identification
SwimLane by Tasks (or WBS)
SwimLane by Role
Application migration plan
Data migration plan
business continuity plan
Capacity Planning
Study Applicable QoS elements
Infrastructure Setup
Network
VMs
Database
App Servers
Web Servers
CMDB config
CI config
Performance Test
Endurance Test
Application Unit Test
Application Integration Test
Application Security Test
Infra hardening
Infra endurance test
Cutover Traffic to Azure
post cutover validation
Phase 1 postmortem


A sample project plan for Phase 1, adjust start and end date appropriately:

Task Name

Migration of Software Services

Project Planning

   Define objective of the project

   Define preliminary scope of the project

   List departments, vendors, partners, those needs to participate

   List different types of business pertinent

   List different types of technical documents needed to support the effort

   List different types of processes needed

   List tools which will facilitate the project

   Identify project team members

   Prepare a list of boards

   Prepare working protocol

   List ongoing and planned activities

   Communicate the project to the organization

   Communicate the working protocol

   Communicate the project tool list with their intention

   Prepare budget

   Approve budget

Project commencement

   Commence documenting of processes

   Review of the above document

      Iterate

      Finalize

      Share Point & Communicate

   Implement various process

   Commence documenting

      Software

      Hardware

      Storage

      Network

      Architecture

   Review of Prepared Document

   Prepare communication plan

   Prepare responsibility matrix

   Prepare risks and study them

   Prepare quality control plan

   Prepare controlled structure

   Prepare software and service catalog

   Group software and service catalog which should be migrated together

   Study and document current licenses agreements

      Software

      Hardware

      Storage

      Network

      data center

   Task team member to implement tools needed for the project plan and governance

      Share point

      Wiki

      Discussion boards

       Email distribution groups

   Prepare detail migration architecture plan including rollout plan

      vendors

      partners

   Prepare detailed WBS

   Prepare cost control structures and approaches to calculate them. Prepare all the required materials for the EVA analysis

   Communicate out various plans and already approved documents from above steps

   Get necessary approval and sign off

Project Implementation and Control

   Plan for IaaS VMs as replacement of hardware

   Plan for Azure components equivalent of network gear

   Plan of Azure Storage

   Prepare to migrate permissiable assets such as SSL certificate

   Renew license of software with Vendor

   Sign up for Azure

   Renew license with partner

   Infrastructure setup

      setup Storage

      setup vnets, subnets, and ACLs

      setup cloud service

      setup backup

   Install hardware

      setup up VMS

      setup availabiliyt set

      setup auto scale group

   configure DR

   Configure DR (copy of 4.8 and 4.9)

   Configure OS build systems

   Install OS build infrastructure

   Instance software

      Database

      Web servers

      Application servers

      smtp servers

      ftp servers

      Install configure other necessary assets such SMB mount point

   Configure software for application

   Install application

   Use new license while installing

   Configure Load Balancer and Traffic Manager

   Take backup of data from current data center

   Restore data in Azure

   Take incremental data backup from current data center

   Put up a maintenance page in the current data center application

   Restore incremental data in Azure

   Change DNS of the URLs from the old to the one in Azure

   Verify that the application is running smoothly in the new data center

      check monitoring system

   Verify that traffic dies down at the old data center

      Firewall

       Load balancer

       Application logs

   Move the backup and retention data from the old data center to Azure

   Ensure that feature development or changes for the software or service goes to Azure

   Measure output against elements covered in controlled structures

   Update EVA

   Check the progress of the cost controls

   Identify and Mitigate potential risks

   Decommission all old licenses

   Organize various meetings to take status of each task

   Communicate as per RACI matrix created earlier

   Ensure that payments for vendors are paid out

   Ensure that payments for vendors, and partners are set up with recurring payments

   Shutdown the old Data Center

      Network gear

      Hardware

      Software

      Power

   Verify that all the licenses used by the assets in the old data center was either transferred or don’t get automatic renew

   Ensure that data center is paid out

      Electricity

       HVAC

Project Close out and conclusion

   Take feedback

      Vendors

      Partners

   Decommission all boards

   Close out meeting

Reference:
Quality of Services of Architecture
·        Flexibility and Extensibility
·        Maintainability and Readability
·        Performance and Efficiency
·        Scalability
·        Availability, Robustness, Fault Tolerance and Reliability
·        Usability and Accessibility
·        Testability and Manageability
·        Security (user data and app logs; infra and app)
·        Functionality and Correctness

No comments:

Post a Comment