We were reviewing the containerization differences in the public clouds. Containerization has been a new and emerging trend in application development and cloud computing usage.
As we review more about containerization, we should take note of some of the classics of application development:
1) Physics laws cannot be violated. All aspects of applications from design to performance are determined by storage and processing requirements.
2) Applications need to be modular so that they can have separation of concerns
3) Applications need not assume anything about storage and processing as they are provisioned on a variety of platform components
4) Layering still makes sense as that the functionalities are tiered so one can work assuming lower layer works.
5) Virtualization can be deep but applications don’t have to be chatty.
6) Networking communications are still secured by encryption and authentication related activities
7) Dependencies and backing services continue to be declared and isolated to provide fault zones
8) Logging and other application monitoring patterns continue to assist in the field as their forms have changed.
9) Application best practice has become norm and they are made available in a variety of options.
10) Portability remains important as they are now being serviced by containers.
Each decision taken by the developer for the application development is weighed against these and other guiding principles.
#codingexercise
If we have a matrix where each cell has a cost to travel and we can only move right or down, what is the minimum cost to travel from top right of matrix to bottom right corner ?
int GetCost(int[,] A, int m, int n)
{
if (n < 0 || m < 0)
return INT_MAX;
if (m == 0 && n == 0)
return A[m,n];
return A[m, n] + Math.min(GetCost(A, m-1, n) , GetCost(A, m, n-1));
}
As we review more about containerization, we should take note of some of the classics of application development:
1) Physics laws cannot be violated. All aspects of applications from design to performance are determined by storage and processing requirements.
2) Applications need to be modular so that they can have separation of concerns
3) Applications need not assume anything about storage and processing as they are provisioned on a variety of platform components
4) Layering still makes sense as that the functionalities are tiered so one can work assuming lower layer works.
5) Virtualization can be deep but applications don’t have to be chatty.
6) Networking communications are still secured by encryption and authentication related activities
7) Dependencies and backing services continue to be declared and isolated to provide fault zones
8) Logging and other application monitoring patterns continue to assist in the field as their forms have changed.
9) Application best practice has become norm and they are made available in a variety of options.
10) Portability remains important as they are now being serviced by containers.
Each decision taken by the developer for the application development is weighed against these and other guiding principles.
#codingexercise
If we have a matrix where each cell has a cost to travel and we can only move right or down, what is the minimum cost to travel from top right of matrix to bottom right corner ?
int GetCost(int[,] A, int m, int n)
{
if (n < 0 || m < 0)
return INT_MAX;
if (m == 0 && n == 0)
return A[m,n];
return A[m, n] + Math.min(GetCost(A, m-1, n) , GetCost(A, m, n-1));
}
No comments:
Post a Comment