Thursday, December 8, 2016

We were discussing System Center Managers such as from AWS. It's a cloud service that helps you automatically collect software inventory, apply OS patches, create system images, and configure windows and Linux operating systems. It enables you to seamlessly bridge the existing infrastructure with AWS. In other words, it can help manage both EC2 and on-premise resources. It works with the help of an agent installed on each of the computing resource and an iam role with system manager permissions that give it visibility in the AWS EC2 console. Even on premise instances now appear in the EC2 console with the 'mi-' prefix. This is a huge win for private cloud providers because they no longer need legacy, custom or proprietary server management software.
System Center Managers are leveraged for Inventory management and Remote Administration - two hugely onerous tasks when the number of assets proliferate. Inventory management gives an outside in perspective over all the assets together with the inside out information on each asset from the metadata gathered by the service. It also centralizes access control, authentication and auditing together with such things as CloudWatch, CloudTrail and Amazon SNS.  This service allows remote administration of a wide variety of tasks through three different means, Amazon cli, AWS console and REST APIs. Furthermore, we can perform native administration using Powershell on Windows and ssh on Linux family.
But this is not all. System center managers assist with State Management and Maintenance and Automation deployment as well. State Manager helps us ensure that instances are bootstrapped with specific software at startup, joined to a Windows domain, or patched with specific software updates.  State Management is done with associations that binds a policy document and one or more targets. Automation on the other hand can help with automating machine images, apply driver and agent updates, OS patches or application updates.
As we see with the definition of on-premise computers to be loose enough to include instances in other cloud providers, we can have a holistic single view of almost all inventory.
#codingexercise
Print the numbers in a matrix in Spiral form
static void PrintSpiralIterative(int[,] A, int r, int c)
        {
            int top = 0;
            int bottom = r - 1;
            int left = 0;
            int right = c - 1;
            Console.WriteLine("----------------------------");
            while (top < bottom && left < right)
            {
                for (int j = left; j < right; j++)
                    Console.Write("{0} ", A[top, j]);
                for (int i = top; i < bottom; i++)
                    Console.Write("{0} ", A[i, right]);
                for (int j = right; j > left; j--)
                    Console.Write("{0} ", A[bottom, j]);
                for (int i = bottom; i > top; i--)
                    Console.Write("{0} ", A[i, left]);
                top++;
                bottom--;
                left++;
                right--;
            }
            while (top <= bottom && left < right)
            {
                if (top <= bottom)
                {
                    for (int j = left; j <= right; j++)
                        Console.Write("{0} ", A[top, j]);
                    top++;
                }
                if (top <= bottom)
                {
                    for (int j = right; j >= left; j--)
                        Console.Write("{0} ", A[bottom, j]);
                    bottom--;
                }
            }
            while (top < bottom && left <= right)
            {
                if (left <= right)
                {
                    for (int i = bottom; i >= top; i--)
                        Console.Write("{0} ", A[i, right]);
                    right--;
                }
                if (left <= right)
                {
                    for (int i = top; i <= bottom; i++)
                        Console.Write("{0} ", A[i, left]);
                    left++;
                }
            }
            while (top <= bottom && left <= right)
            {
                Console.Write("{0} ", A[top, left]);
                top++;
                left++;
            }
            Console.WriteLine();
            Console.WriteLine("----------------------------");
        }
For
1  2  3  4
5  6  7  8
9 10 11 12
13 14 15 16
//----------------------------
//1 2 3 4 8 12 16 15 14 13 9 5: 6 7 11 10
//----------------------------
the above iteration based method can be made recursive by taking the top, left, bottom, right as parameters
#Recursive_call
https://drive.google.com/file/d/0B-H0-bJJQAq5UDVVcEN0dUJuSEk/view?usp=sharing

No comments:

Post a Comment