Thursday, January 26, 2017

Today we continue to describe migratory assets. A significant percentage of the end users do not care about where the assets come from.  Consequently we can move assets between public cloud to public cloud or even public cloud to private cloud or even private to private cloud while letting the users access their resources by name and in some cases by the same IP. 
There are two factors contributing to this: 
1) a large number of requests are for fine grained number of assets 
2) Most assets are managed by system center managers that don't depend on the host but only on the agent running inside the asset. 
These promote migratory assets. 
Another important criteria is the offloading of infrastructure activities to existing automations in the public cloud. Take for example, periodic evaluation of unused resources and the reminders to customers. This is no longer done with custom or proprietary automations. Instead the same technologies that monitor usages and trigger alerts in public cloud can be reused. There is significant savings in reusing out of box technologies. First, the tools and technologies are widely accepted and have already matured to feedback across organizational usages. Second, there is no need to increase ownership and maintenance of in house tools and technologies that serve the same purpose. 
By a similar counterargument, there is always a place for in house tools and automations that can benefit private cloud implementations and boost the overall offering to the customer. Cheap, dirty and fast solutions are easily facilitated in a private cloud and we welcome this with independently controlled private cloud as an alternative offering to the customers.  For example, we can create clusters and containers in a private cloud that can benefit as additional resources to the user. 
Lastly, applications and services can leverage appliances, technologies and services that are not available in a private cloud. We have storage appliances, network accelerators, firewalls, routers and many other technologies that can apply only in private cloud. These then become foundations for Infrastructure as a service, Platform as a service and software as a service layers which bring their own advantages. Arguably though these upper layers for the most part should not differentiate between whether the resources are requested from private cloud or public cloud providers
#codingexercise
Find the maximum product of a subsequence of an array of integers such that no two elements are adjacent.
int GetMaxProduct(List<int> A)
{
assert( A.all(x => x > 0));
if (A == null || A.Count == 0) return 0;
int inclusive = A[0];
int exclusive = 0;
for (int i = 1; i < A.Count; i++)
{
var max = Math.max(inclusive, exclusive);
inclusive  = exclusive × A[i];
exclusive = max;
}
return Math.max(inclusive, exclusive);

}
if the integers were both positive and negative, we would have need to make sure the count of selected negatives is even. We would keep track of two products one with the negative integers only and the other regular.
The key observation here is that we skip the negatives and find the desired max among the positives. Then we take the negatives alone and find their desired max with the additional criteria that they have to be even in count. Whichever is greater dictates the list that will be included as is and elements of the other list will be included such that there are no adjacencies.

No comments:

Post a Comment