Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Geo Redundancy in Azure Service Fabric Applications

I'm trying to come up with a solution for achieving Geo-Redundancy (2+ datacentres) while using Service Fabric reliable Actors/Services to manage state. It insinuates here that geo replication is possible

This may happen when, for example, if you aren’t geo replicated and your entire cluster is in one data center, and the entire data center goes down.

but doesn't explain how to switch it on.

Does anybody know if it's a planned feature for ASF that just hasn't been released yet, or whether it's present but not fully explored yet?

Alternatively does anybody have any recommended approaches for cross DC resilience when the state required to run the app is stored using ASF's StateManager?

thanks, Alex

like image 651
Alex Zevenbergen Avatar asked Dec 15 '15 11:12

Alex Zevenbergen


People also ask

Why geo redundancy is used in Azure?

Azure Storage offers geo-redundant storage to ensure high availability even in the event of a regional outage. Storage accounts configured for geo-redundant replication are synchronously replicated in the primary region, and then asynchronously replicated to a secondary region that is hundreds of miles away.

How does geo redundancy work?

Geo-redundant storage (GRS) copies your data synchronously three times within a single physical location in the primary region using LRS. It then copies your data asynchronously to a single physical location in a secondary region that is hundreds of miles away from the primary region.

Why is geo redundancy used?

What Is the Purpose of Geo-Redundancy? Geo-redundancy aims to protect your data while minimizing downtime by replicating your organization's data and IT infrastructure to other sites, such as secondary data centers or colocation facilities, spread across different geographic regions.

What's the minimum amount of availability zones where a cluster should be deployed to ensure high availability and disaster recovery?

An Availability Zone spanning virtual machine scale set should be configured with at least three Availability Zones, no matter the durability level.

How does geo-redundant replication work in Azure Storage?

Storage accounts configured for geo-redundant replication are synchronously replicated in the primary region, and then asynchronously replicated to a secondary region that is hundreds of miles away. Azure Storage offers two options for geo-redundant replication.

What is Azure redundancy and how does it work?

Azure Storage always stores multiple copies of your data so that it is protected from planned and unplanned events, including transient hardware failures, network or power outages, and massive natural disasters. Redundancy ensures that your storage account meets the Service-Level Agreement (SLA) for Azure Storage even in the face of failures.

What is geo-redundant availability and how does it work?

The final piece of the magic behind the Geo-Redundant Availability process is the use of the Azure Traffic Manager. This component provides dynamic DNS based resolution for your application to properly route requests to the service (s) that can best handle the request. In effect, it is a smart load balancer that exists at a global level.

What is Geo-zone redundant storage (gzrs)?

For protection against regional disasters, Microsoft recommends using geo-zone-redundant storage (GZRS), which uses ZRS in the primary region and also geo-replicates your data to a secondary region. The following table shows which types of storage accounts support ZRS in which regions:


2 Answers

Alex,

Apparently the service fabric team is still to crack this problem - more info below. However, you should be able to GeoHA Service Fabric Cluster on Azure by yourself. Here's an example of that:

https://alexandrebrisebois.wordpress.com/2016/05/31/deploy-a-geo-ha-service-fabric-cluster-on-azure/

Not today, but this is a common request that we continue to investigate. The core Service Fabric clustering technology knows nothing about Azure regions and can be used to combine machines running anywhere in the world, so long as they have network connectivity to each other. However, the Service Fabric cluster resource in Azure is regional, as are the virtual machine scale sets that the cluster is built on. In addition, there is an inherent challenge in delivering strongly consistent data replication between machines spread far apart. We want to ensure that performance is predictable and acceptable before supporting cross-regional clusters. Source: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-common-questions

Cheers,

Paulo

like image 150
Paulo Gomes Avatar answered Sep 25 '22 16:09

Paulo Gomes


There is no reason you cannot install a series of nodes in different regions as part of the same Fabric, and use placement constraints to control service allocation. As long as the nodes can properly communicate with each other, there should be no problem with this.

If you're using Azure, you should deploy them to Virtual Networks, and link them together using VPNs. You could even cross to on-prem.

like image 30
Jerome Haltom Avatar answered Sep 23 '22 16:09

Jerome Haltom