Friday 5 September 2014

Distributed Systems & Cloud Computing


This document gives an overview about the Distributed System Architecture, Cloud Computing, Cloud Testing – Advantages & Challenges.
What is a distributed system?
A distributed system is a collection of independent computers that appear to the users of the system as a single system.
Examples:
Network of workstations
Distributed manufacturing system (e.g., automated assembly line)
Network of branch office computer.
Why do we develop distributed systems?
Availability of powerful yet cheap microprocessors (PCs, workstations), continuing advances in communication technology
Globalization, Communication, Collaboration & Commerce at the speed of light are creating a demand for highly Resilient, Efficient & Scalable distributed transactions through various applications such as high frequency trading, social networking and federated enterprise business process automation.
  1. Resiliency: The reliability, availability, accounting, performance & security of the resources have to be assured so that the users can depend on the service levels they have negotiated for.
Ø  Measure the FCAPS parameters both at the individual resource level & at the system level &
Ø  Control the resource system-wide based on the measurements, business priorities, varying workloads & latency constraints of the distributed transactions.
  1. Efficiency: The effectiveness of the use of the resources to accomplish the overall goal of the distributed system depends on two components:
Ø  Individual resource utilization efficiency.
Ø  The coordination and management cost which assures that the distributed components are contributing to the overall goal of the system.
  1. Scaling: As the requirements in the form of business priorities, workload variations or latency constraints change, the distributed system must be designed to scale accordingly. The scaling may involve dialing-up or dialing-down of resources, geographically migrating them.
FCAPS is a network management framework created by the International Organization for Standardization (ISO). 
FCAPS categorizes the working objectives of network management into five levels. The five levels are:  
    1. fault-management (F),
    2. the configuration level (C),
    3. the accounting level (A),
    4. the performance level (P) and the
    5. security level (S).
       At the fault management level, network problems are found and corrected. Potential future problems are identified and steps are taken to prevent them from occurring or recurring. With fault management, the network stays operational, and downtime is minimized.
       At the configuration management level, network operation is monitored and controlled. Hardware and programming changes, including the addition of new equipment and programs, modification of existing systems, and removal of obsolete systems and programs, are coordinated. At the C level, inventory of equipment and programs is kept and updated regularly.
       The accounting management  level, which might also be called the allocation level, is devoted to distributing resources optimally and fairly among network subscribers. This makes the most effective use of the systems available, minimizing the cost of operation. The A level is also responsible for ensuring that users are billed appropriately.
       The performance management level is involved with managing the overall performance of the network. Throughput is maximized, network bottlenecks are avoided, and potential problems are identified. A major part of the effort is to identify which improvements will yield the greatest overall performance enhancement.
       At the security management level, the network is protected against hackers, unauthorized users, and physical or electronic sabotage. The confidentiality of user information is maintained where necessary or warranted. Security systems also allow network administrators to control what each individual authorized user can (and cannot) do with the system.
What is cloud computing?
       Cloud Computing refers to manipulating, configuring, and accessing the applications online. It offers online data storage, infrastructure and application. We need not to install a piece of software on our local PC and this is how, the cloud computing overcomes platform dependency issues. Hence, the Cloud Computing is making our business application mobile and collaborative.
Cloud Service Models
Following are the cloud service models:
       Infrastructure as a Service(IaaS) Model
       Platform as a Service(PaaS) Model
       Software as a Service(SaaS) Model
       Identity as a Service(IDaaS) Model
       Network as a Service(NaaS) Model

IaaS provides access to fundamental resources such as physical machines, virtual machines, virtual storage etc. Apart from these resource the IaaS also offers:
       Virtual machine disk storage
       Virtual local area network (VLANs)
       Load balancers
       IP addresses
       Software bundles
       All of the above resources are made available to end user via server virtualization. Moreover, these resources are accessed by the customers as if they own them.
Benefits
       IaaS allows the cloud provider to freely locate the infrastructure over the internet in cost-effective manner. Some of the key benefits of IaaS are listed below:
       Full Control of the computing resources through Administrative Access to VMs.
       Flexible and Efficient renting of Computer Hardware.
       Portability, Interoperability with Legacy Applications.
Issues
Here are the issues associated with IaaS:
       Compatibility with Legacy Security Vulnerabilities
       Virtual Machine Sprawl
       Robustness of VM-level Isolation
       Data Erase Practices
       PaaS offers the run time environment for applications. It also offers development & deployment tools, required to develop applications. PaaS has a feature of point-and-click tools that enables non-developers to create web applications.
       The following diagram shows how PaaS offers an API and development tools to the developers and how it helps the end user to access business applications
Benefits
Following are the benefits of PaaS model:
       Lower administrative overhead
       Lower total cost of ownership
       Scalable Solutions
       More current system software
Issues
Like SaaS, PaaS also place significant burdens on consumer's browsers to maintain reliable and secure connections to the provider systems. Therefore, PaaS shares many of the issues of SaaS. However, there are some specific issues associated with PaaS as listed below:
       Lack of portability between PaaS clouds
       Event Based Processor Scheduling
       Security Engineering of PaaS applications
Software as a Service(SaaS) model allows to provide software applications as a service to the end users. It refers to a software that is deployed on a hosted service and is accessible via internet. There are several SaaS applications. Some of them are listed below:
       Billing and Invoicing System
       Customer Relationship Management (CRM) applications
       Human Resource (HR) Solutions
Characteristics
Here are the characteristics of SaaS service model:
       SaaS makes the software available over the internet.
       The Software are maintained by the vendor rather than where they are running.
       The license to the software may be subscription based or usage based.
       SaaS applications are cost effective since they do not require any maintenance at end user side.
       They are available on demand. They can be scaled up or down on demand.
       They are automatically upgraded and updated.
       SaaS offers share data model. Therefore multiple users can share single instance of infrastructure. It is not required to hard code the functionality for individual users.
       All users are running same version of the software.
Benefits
Using SaaS has proved to be beneficial in term of scalability, efficiency, performance and much more. Some of the benefits are listed below:
       Modest Software Tools
       Efficient use of Software Licenses
       Centralized Management & Data
       Platform responsibilities managed by provider
       Multitenant solutions.
Issues
There are several issues associated with SaaS. Some of them are listed below:
       Browser based risks
       Network dependence
       Lack of portability between SaaS clouds
Employees in a company require to login to system to perform various tasks. These systems may be based on local server or cloud based. Following are the problems that an employee might face:
       Remembering different username and password combinations for accessing multiple servers.
       If an employee leaves the company, It's required to ensure that each of the user's account has been disabled. This increases workload on IT staff.
To solve above problems, a new technique emerged which is known as Identity as a Service (IDaaS).
IDaaS offers management of identity (information) as a digital entity. This identity can be used during electronic transactions.
To solve the problem of using different username & password combination for different servers, companies now employ Single Sign-On software, which allows the user to login only one time and manages the user's access to other systems.
SSO has single authentication server, managing multiple access to other systems, as shown in the following diagram:
Networks as a Service allows us to access to network infrastructure directly and securely. NaaS makes it possible to deploy custom routing protocols.
NaaS uses virtualized network infrastructure to provide network services to the consumer. It is the responsibility of NaaS provider to maintain and manage the network resources, which decreases the workload from the consumer. Moreover, NaaS offers network as a utility.
How NaaS is delivered?
To use NaaS model, the consumer is required to logon to the web portal, where he can get on line API. Here, the consumer can customize the route.
In turn, consumer has to pay for the capacity used. It is also possible to turn off the capacity at any time.
Mobile NaaS
Mobile NaaS offers more efficient and flexible control over mobile devices. It uses virtualization to simplify the architecture to create more efficient processes.
NaaS Benefits
NaaS offers a number of benefits, some of the are discussed below:
       Independence
       Analytics
       Resilience
       Ease of Adding new Service Elements
       Isolation of customer traffic
       Support Models
       SAAS is the starting point to every service within cloud computing ecosystem
       SaaS is highest on the maturity level and growth curve amongst XaaS
       SaaS has highest revenue generating service within cloud model for next several years
SaaS Catalysts
       Intrigue of access to unlimited Computing and storage resources, made available and paid for only as needed (Pay as you go)
       Decreasing cost of bandwidth
       Customer frustration with traditional software buying cycle (license, maintenance contract, upgrades)
       Perceived increase in control over the vendor relationship
       Early SaaS success stories –Salesforce.com, WebEx, etc. Demonstrate broader value proposition
       You focus on your application and not on infrastructure
Primary Concerns with the SaaS Model
       Security concerns
       Concerns over compliance with standards
       Concerns over integration with legacy applications
       Concerns over reliability and robustness of service
       Not comfortable with putting mission-critical application on shared infrastructure and have access over internet
       SaaS can not be configured to meet my corporation's all specific needs
Cloud testing / SaaS testing is not same as in-house application testing. Cloud applications introduce many new challenges and traditional testing skills, methodologies, and tools are just not sufficient.  At the same time, testing is more important than ever as frequent issues may, at best, result into customer flight and loss of revenue.   At worst, a loss of customer data or violating customer information confidentiality may result in lawsuits that could devastate the business.
While there is a clear and compelling business case for Cloud computing, there are significant risks including performance, security, and availability.  To assure that cloud delivers on it value proposition, it is critical that you address:
       Confidentiality: You must ensure that strict security measures are in place in your cloud application. Only authorized users are able to access information that is relevant to them. You must thoroughly test the security of your applications to preserve confidentiality of your customers’ data.
       Performance:  As your customers access your cloud applications over the internet, loads will inevitably vary based on things like the number of customers, how many are logged in at given time, and how extensive the operations they are performing. You must thoroughly test performance to understand behavior with varying loads, identify when you need to increase resources, and limit certain operations during peak usages
       Resource sharing (multi-tenancy): Cloud allows elasticity (e.g. resources are available on demand for your changing needs). If a proper resource quota is not in place, some applications can consume significant resources and negatively impact other applications. Your cloud environment where your application is deployed, should assure that enough resources are reserved for varying load, and that consumption of resources by one application cannot negatively impact other applications. Each application / customer must have a strictly enforced quota to ensure smooth delivery of all applications.  You must thoroughly test availability and quota boundaries for cloud applications
       Availability:  Resource sharing and dependence on internet infrastructure can caused availability issues for many cloud applications. You must perform exhaustive load stress tests with resource utilizations metrics and soak tests to assure that your application does not have availability issues.


Donate:

Please Donate the some money (anything do you want) for my
blog if you beneficial for this, I will provide more real example for the
latest technique for whom who wants to make a carrier in IT field or solved
some problem, My Name is – RITESH KUMAR SINGH A/C number- 913010044116345 AXIS
Bank LTD :- Vaishali NCR, India-001

No comments:

Post a Comment