Friday, February 3, 2017

Today we continue to compare networking capabilities in the azure and aws public clouds. We compared Security, Security Groups, Network ACLs, Custom routing tables, Virtual network interfaces, DNS service, connectivity, VPN over IPSec, private connectivity over Exchange, SDK & Tools. Now we review CDN And traffic Manager from Azure.
CDN delivers content to end users through a robust network of global data centers. It cuts the time that it takes to serve up content to the web applications by caching closer to the user than the origin. Using the CDN, we can cache publically available objects loaded from Azure blob storage, web application, virtual machine, application folder and other HTTP/HTTPS location.  The content is typically static such as images, stylesheets, documents, files, client-scripts and HTML pages and dynamic content such as PDF report and graph can also be served. CDN does not do this for each request and can even serve up entire websites from its cache. Generally video benefits immensely from the low latency.The locations are regional and chosen to maximize the bandwidth to the clients. It should be noted that the clients can be mobile and a host of data could come from the Internet of Things (IoT) but as data grows the CDNs cache more locally to the clients thus enabling better user experience.
Traffic manager routes incoming traffic for high performance and availability. Traffic manager distributes the user traffic for service endpoints in different datacenters. These endpoints can be Azure VMs, endpoints and cloud services. However, Traffic Manager can also be used with external non-Azure endpoints. Traffic Manager uses the Domain Name System to direct client requests to the most appropriate endpoint based on a traffic routing method and the health of the endpoints. Traffic Manager provides a range of traffic routing methods to suit different application needs, endpoint health monitoring and automatic failover.  Thus it can improve availability, responsiveness, allow maintenance without downtime, combine on-premise and cloud based applications and distribute traffic for large, complex deployments.


#codingexercise
We look at the tree construction method for finding the different interpretations for a sequence of digits.

Node GetTree(List<int>A, String b, int prev)
{
if (prev > 26)
     return null;
var newb = b + prev.ToLetter();
var root = new Node(){b};
if (A.Count != 0)
{
     prev = A[0];
     root.left = GetTree(prev, newb, A.GetRange(1, A.Count - 1));
     if (A.Count > 1) {
       prev = A[0]*10 + A[1];
       root.right = GetTree(prev, newb, A.GetRange(2, A.Count-2));
     }
}
return root;
}

Then we can print the leaves of this tree as ABA, AU, LA for {1,2,1}

Given a value N, if we want to make change for N cents, and we have infinite supply of each of S = { S1, S2, .. , Sm} valued coins, how many ways can we make the change? The order of coins doesn’t matter.
int GetCount(List<int> coins, int num, int sum)
{
if (sum == 0) return 1;
if (sum < 0) return 0;
if (num <= 0 && sum >= 1) return 0;
return GetCount(coins, num-1, sum) + GetCount(coins, num, sum-coins[num-1]);
}
we could also do the same with combinations where we take one or more of the same coins as long as the sum is not exceeded.

No comments:

Post a Comment