Monday, April 4, 2022

Migration plan for a cloud service to Service Fabric:

 

The preparation for the migration involves the following:

1)      Defining the Service Fabric cluster: The planning for a Service Fabric cluster will culminate with an Azure Resource Manager (ARM) template that defines the node types and their numbers.  Sample template for creating a Service Fabric cluster is included here.

2)      Developer workstation requirements: The workstation requirements are important for application development. These include Docker for windows to containerize and test the applications prior to deployment, Visual Studio Docker support for Docker compatibility, and compute resources when workstations do not have 8GB of memory. Azure DevTest Labs service is an option for such compute.

3)      Networking requirements: Service Fabric deployments for large enterprises require careful planning for the following:

a.       Reachability over VPN: Enterprises extend their corporate network with a private address space to an Azure subscription. ExpressRoute or Site-to-Site VPN provides secure on-premises connectivity and must have corresponding resources instantiated for viewing and managing via the Azure Portal.

b.       NSG rules: Enterprises must secure their inbound and outbound network traffic through third-party firewall appliances or with Azure Network Security Group rules or both.

c.       Address Space: The Service Fabric cluster has tight control over address space requirements and subnets. These will also be described under the placement constraints.

4)      Containerizing existing Windows applications: Docker images can run an operating system, an IIS server and the windows application to be migrated to Service Fabric. Proper choice of base line image, Docker layers, customizations and hardening are required to secure the containerized image. A sample Dockerfile has been included here for this purpose. The base image could be a locked-down custom enterprise image that enforces enterprise requirements but often it is an official signed image from a public image repository and as an alpine version at that.

5)      Cluster configuration – node types:  A Service Fabric cluster may have one or mode nodeTypes which loosely map to an Azure Virtual Machine Scale Set (VMSS) each. A VMSS is a set of Virtual Machines (VM)s with the same set of properties. Each cluster must have at least one node type-primary node type, which runs the Service Fabric system services. The application containers cannot be run on the primary node type. The sizing of the primary node type is directly proportional to the size of the cluster. T-shirt sizing of Service Fabric cluster is available and can be referenced via monikers such as Standard_D2s_v3. Application and Data intensive compute can form the other node types. Choice of node types can be determined based on the application that is being migrated. If the Service Fabric cluster starts out with being dedicated to a single application, it can have just two node types – primary and application. Each scale set can be scaled in or out independently and does not require extensive planning and testing because the actual size can grow or shrink driven by monitoring and metrics.

No comments:

Post a Comment