This week I accompanied some discussions in the forum of the .NET Architects. Among several issues, one in particular caught my attention: Mission Critical projects.
What do you mean by a Mission Critical Project ?
From Wikipedia we have the term Mission Critical refers to any factors ( equipment, process, procedure, software , etc.). it is crucial to the success or completion of an activity or project. It can also refer to a project whose success is vital to the mission of the organization or company’s business.
Speaking of projects, a few examples that I consider as Critical Mission:
I believe all the above examples as systems of Mission Critical projects are at different levels and involve risks for the company’s business.
So we can highlight three types of risks involved:
What is the response time involved in real time (in milliseconds, for example)? Depend on the scenario we are dealing with, is a channel of feeders with news about politics or filter messages for opening safes security systems in banking.
Typically, conditions of real time are involved in mission critical scenarios, but are not mandatory.
My point here is that we cannot consider as Mission Critical project only on the aspect of performance and response time involved. For some industries, other attributes are just as important as the financial impact, availability and other risks.
How critical is the system you’re working today? It involves financial risks, human risks or material risks?
In short, what is the impact of a failure in your system for running the business of your company? Aspects such as disaster recovery, exception handling, fault tree, etc.., Become important in many cases.
Once identified the mission-critical scenario, how to conduct the project?
Some questions are recurring now as:
Not to mention even on issues surrounding it such as:
There are several resources that address these scenarios, either on the platform .NET or even on unmanaged code, with processes in C + + on Windows Server. In the managed environment, resources and service interfaces in WCF – Windows Communication Foundation, messaging with MSMQ, parallelism, synchronization and integration systems with low latency are examples. In all cases, the impact to the company’s business is present.
Soon, we will need new resources available on the Microsoft platform, such as Dublin (for dedicated hosting services and processes on Windows Server), Velocity (for distributed caching and high performance applications)..
Finally, try to identify which scenarios of Mission Critical Projects you are personally involved and how will these develop in the coming time. You will notice that your IT has a direct impact on the success of your company!
Much has been said about Cloud Computing in the IT market, and we can see countless articles and comments about Cloud Computing. It is the theme of trend. But some settings are wrong.
I will present some definitions, terms and key points about this technology, basing myself in books and articles read beyond the day to day in my work. This article is based on a presentation that I use at work as Cloud Computing and the series of data from the Internet.
Cloud Computing is a term that defines the practice via the Internet to access a shared set of computing resources and configurable (e.g., networks, servers, storage, applications and services) that can be quickly configured with minimal preparation, support or interaction with a service provider.
Cloud Computing promotes availability, is composed of five essential characteristics, four models of implementation and a range of service models.
The five key characteristics of cloud computing are:
(The example of storage, processing, memory, network bandwidth, and virtual machines)
The four deployment models of Cloud Services commonly used in the market:
Private Cloud – Cloud Private
Community Cloud – Cloud Shared
Public cloud – Cloud Public
Hybrid Cloud – Cloud Hybrid
Service Models based on Cloud Computing that are currently offered in the IT market:
The three models of service in Cloud Computing Provided further in the World Market:
Cloud Software as a Service (SaaS)
Cloud Platform as a Service (PaaS)
Cloud Infrastructure as a Service (IaaS)
Talks about cloud computing and cloud hosting are the trend. Through virtualization, these conversations are becoming a reality in many companies (private clouds) and service providers (public cloud). These patterns formalize certain rules and consider the problems and solutions that arise in the process of reflection on various aspects of cloud infrastructure.
Something very interesting:
Template virtual machine: The easiest way to standardize the deployment of virtual machines in a virtual infrastructure that meets certain levels of security and contains the necessary application. Here we consider the problem of the hierarchy of templates as an enterprise application typically being implemented on a set of virtual machines that must be maintained at a certain level of security and timely patching.
The approach is as follows:
We select the repeat function for applications and centralize them in a cloud on the basis of the standard services – logging, database, messaging, etc. For such services, there should be separate systems that work, of course, in your virtual machines or public clouds.
Pools of virtual machines:
What is now implemented in the VMware View is that, we have a pool of deployed virtual machines that users can retrieve and return to the pool on demand (Check out – Check in). This approach allows access to the requested service or data from maximum speed users.
The factory of virtual machines:
Here we propose a standardized approach for deploying services in virtual machines – something that VMware is now making vCloud Director and the Request Manager. The user should have a frontend, where it sets the basic required parameters to it, and let the rest be configured automatically or by the IT staff of the company (e.g. cloud services providers).
Of course, there should be an API for unification process between heterogeneous clouds.
Virtual machines that implement the PaaS (VM App). Why would you use someone else’s platform-as-service (PaaS), if you can deploy it yourself in virtual machines based on your IaaS (Infrastructure as a Service)? These are the machines for PaaS and proposes to deploy in the inner cloud. They have a very good scalability and can assist you in building the infrastructure on top of applications.
Virtual Service Machines:
Scaled cloud infrastructure using templates and VM is good, but also follow the concept of centralization of common services (e.g. directory service, or machines that provide storage resources). Here also, an opportunity to simply scale such virtual machines should be given, and they must have the highest availability, since they depend on other machines (workhorses).
The flow of services in virtual machines:
In the cloud infrastructure, where the modular nature of the applications is of great importance,the virtual environment provides much more flexibility than the physical. Therefore, it is good to build cloud services based on already existing services in order to not to carry out work on the deployment and configuration again, especially as templates and snapshots of virtual machines is easy.
Cloud broker:
If you are not able to trade on the exchange, then you hire a broker, who plays on your behalf (and at your expense), but if you plan to use the services of several service providers, you will need a software that can provide connectivity to third-party services and interaction with them in your “virtual” infrastructure (here the word virtual is in quotes because it is the second level of virtuality – that is the union of virtual resources from different providers). For example, a broker can do vMotion from one provider to another based on available resources, quality of service or even a rental value of virtual machines or applications.
By this I mean a service that will provide you information about your global cloud infrastructure. It will monitor vital functions of information systems to provide a comprehensive information about configurations and will be interacting with services on standardized interfaces.