Thursday, January 8, 2015

(Phase Two – Strategy) Strategy to migrate Software Applications to Cloud



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


By this time you already are in Azure (or AWS), are comfortable around different Cloud services, and getting used to different characteristics of Cloud (such architecture/design, development, devops, test, etc.)

Did you finish post mortem of the first phase? If not then do so. It is vital not to repeat avoidable mistakes. Most of the time, post mortem highlights process related gaps.

In the second phase goal is to further the goal of Cloud strategy. All functional area of applications and enterprise need to make curate more of their actions towards Cloud:

1.      ALM tools need to make use of Cloud services.

2.      Application needs to use further use of Cloud Services.

3.      DevOps needs to further automate and code the build, and release steps

4.      Load Test can leverage Load Test service in Cloud.

5.      Enterprise IT needs to further integrate, improve policy and governance, implement SSO, etc.

In gist the application needs to become more PaaS and IT Cloud strategy is taking its shape.

Are you continuing the discovery and knowledge sharing sessions? Are you continuing the rapid PoC activities?

Did you conduct a thorough reconnaissance on how IaaS implementation is functioning? Is there any aberration?  Is your finance moved from CapEx to OpEx model? Does your team feel comfortable with new Cloud jargons, concepts, etc.? (VMs, SDNs, auto scale, Cloud Storage, ELBs, managed services (DB, queues, automation, etc.)

How much PaaS services did you make use in the previous phase? Analyze each layer of the application and find out if the depended service can be replaced with an existing PaaS or if there is a need to re-architect and recode to move towards the goal.

Did you make use of the Cloud PaaS web analytic and web app monitoring tools?

Can you contemplate about using readily available services to discover new business insights from the application and user data?

Can you move source code repository to Cloud? Analyze and find out the gaps.

Can you manage the entire project which follows an agile methodology hosted in Cloud? Analyze.

Can you move the build activity to Cloud?

Can you move Load Test to Cloud?

Can you evaluate on the strategy of the build and deployment processes viz. containerization, CMDB and CI continuous usage, etc.?

Can you not use your own personnel credential to authenticate in Cloud? Can you use corp credential?

Can you move away from IaaS to PaaS? This is the main goal of this phase from application perspective.

My intention is to share my experience around the posed above questions.

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