Friday, 17 October 2014

1:: Software Architecture Introduction

What is architecture?

Blueprint of Software system, which emphasis on how system should look like after implementing the system.

Why architecture?

Architecture is required to ensure the consistency of understanding the system across the stakeholders.

-It should not be perceived differently client and application developer etc.

Who are our Stakeholders?

a)      Application Developer b) Database designer c) Configuration management team d) Support & Maintenance Team e) Users
Advantages of SA

What are Advantages?
·         Consistency of understanding the system across the stakeholders
·         Fast development
·         Base-lining the work
·         Quick decisions

View & Structures?

View: each view represents certain aspect of architecture.
Structure: This is underlying part of view. Set of elements connected together forms structure.

Structure can discussed in three parts.
  1. Module 
  2. Component and Connector 
  3. Allocation

 
•Module Structure
How is the system to be structured as a set of code units (modules)?
•Component and connector structures
How is the system to be structured as a set of elements that have
runtime behavior (components) and interactions (connectors)
What are major executing components and how do they interact

•Allocation structures
How is the system to relate to non software structures in it’s
environment (CPU or cluster of CPUs, File Systems, Networks,
Development Teams ...)

4+1 view?

Tuesday, 14 October 2014

7::Hypervisors

Definitions
–Hypervisor (or VMM – Virtual Machine Monitor) is a software layer that allows several virtual machines to run on a physical machine <software responsible for system virtualization>
–The physical OS and hardware are called the Host
–The virtual machine OS and applications are called the Guest

Understanding TYPE1 & TYPE2
Click here for Type1
Click here for Type2

Type 3 (Hybrid Hypervisor)
The hypervisors run directly on the hardware, but leverage the features of an existing OS running as a guest.

6:: Virtualization

Definition:
Virtualization is the creation of a virtual (rather than actual) version of something, such as a hardware platform, operating system (OS), storage device, or network resources.

Virtualization is not new, but it has recently become more popular
In the late 1960s, mainframe computers were virtualized and rented out to smaller companies that could not afford an actual mainframe as a cost effective solution
In the 1980s and 1990s, with the advent of the personal computer (PC) and the drop in hardware costs, virtualization lost steam
Recently however, virtualization has grown in popularity again, desktop and server virtualization are common to see in organizations

virtualization is a broad term that refers to the abstraction of computer resources
It is "a technique for hiding the physical characteristics of computing resources from the way in which other systems, applications, or end users interact with those resources. This includes making a single physical resource (such as a server, an operating system, an application, or storage device) appear to function as multiple logical resources; or it can include making multiple physical resources (such as storage devices or servers) appear as a single logical resource."


Virtualization Categories

There are broadly two main categories of software virtualization
1)Process Virtualization
2)System Virtualization

1)Process Virtualization:
Run a process under the control of a layer of software.

–The virtualization software runs above the OS and hardware combination
–Sun’s JVM, MS .Net, Rosetta, Pin, etc.
JVM:
–Interprets, then compiles “byte code” files
–“Write once, run anywhere”
–extensive libraries – extend OS API as Java standard
Rosetta:
–Translates PowerPC binaries “on-the-fly” to x86

2)System Virtualization
Run an operating system under the control of a layer of software
The Virtualization software runs in between the host hardware and the guest software.
Goal is to provide virtualized hardware resources
Enables elasticity in hardware without effecting the guest software.
Ex: VMware, Xen, KVM
Virtualization is way to run multiple operating systems and user applications on the same hardware
–E.g., run both Windows and Linux on the same laptop

Refer Below for understanding Virtualization in more detail.

5:: Disadvantages of Cloud

1. Security
2. Compliance
3. Interoperability and vendor lock-in: App developed on one cloud and want to run other cloud platform i.e System developed on AZURE and want to deploy same on AMAZON. In this case we will come across Vendor locking.

Monday, 13 October 2014

4:: Main Aspects of Cloud System



3:: Three-Four-Five (3-4-5) Rule

What Cloud has to offer you can be incorporated in 3-4-5 Rule

3 : Services
4 : Deployment Models
5 : Characteristics

3: There are three services which are being provided by Cloud
4: 4 ways to deploy the cloud
5: What makes cloud different from other models can be proved based on FIVE characterizations.

3 : Services
1. IaaS (Infrastructure as a Service):
The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary
software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems,
storage, deployed applications, and possibly limited control of select networking components (e.g., host firewalls)


2. PaaS (Platform as a Service):
The capability provided to the consumer is to deploy onto the cloud infrastructure consumercreated
or acquired applications created using programming languages and tools supported by
the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and
possibly application hosting environment configurations



3. SaaS(Software as a Service):
The capability provided to the consumer is to use the provider's applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such
as a web browser (e.g., webbased
email). The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual
application capabilities, with the possible exception of limited userspecific
application configuration settings

Detail view of SAAS,IAAS,PAAS


4 : Deployment Models(Four)

Private Cloud
Community Cloud
Public Cloud
Hybrid Cloud

1) Private Cloud (Single Org)
The cloud infrastructure is operated solely for a single organization. It may be managed by the
organization or a third party, and may exist on-premises or off-premises
Also called as “Enterprise Cloud”

2)Community Cloud (Multiple Org)
 The cloud infrastructure is shared by several organizations and supports a specific community
that has shared concerns (e.g., mission, security requirements, policy, or compliance
considerations).
 It may be managed by the organizations or a third party and may exist on-premises or offpremises.

3)Public Cloud (For Public)
 The cloud infrastructure is made available to the general public or a large industry group and is
owned by an organization selling cloud services
 Also called as “Internet Cloud”


4) Hybrid Cloud
The cloud infrastructure is a composition of two or more clouds (private, community, or public)
Leasing public cloud services when private cloud capacity is insufficient
Also called as “Mixed Cloud”

Cloud-bursting?
A hybrid cloud takes shape when a private cloud is supplemented with
computing capacity from public clouds
The approach of temporarily renting capacity to handle spikes in load
is known as “Cloud-bursting”

5: Characteristics(FIVE)

1.On-demand self-service:
•Users can provision servers and networks with little human intervention

2.Broad network access:
•Any computing capabilities are available over the network. Many different devices are allowed access through standardized mechanisms

3.Resource pooling:
•Multiple users can access clouds that serve other consumers according to demand.
•Cloud services need to share resources between users and clients in order to reduce costs

4.Elasticity:
•Provisioning is rapid and scales out or in based on need

5.Metered or measured service:
•One of the compelling business use cases for cloud computing is the ability to "pay as you go“, where the consumer pays only for the resources that are
actually used by his applications

2:: Cloud Computing Introduction

CLOUD COMPUTING IN A NUTSHELL
Cloud computing is like plugging an electric appliance into an outlet
All because of virtualization
An umbrella term to describe a category of sophisticated on-demand
computing services
It denotes a model on which a computing infrastructure is viewed as a
“cloud”, from which businesses and individuals access applications from
anywhere in the world on demand
Principle: Offering computing, storage, and software “as a service

What is Cloud Computing???

Def:

Cloud computing is a model for enabling ubiquitous, convenient, ondemand
network access to a shared pool of configurable computing resources
(e.g., networks, servers, storage, applications, and services) that can be rapidly
provisioned and released with minimal management effort or service provider
interaction. (by NIST)

“an Internet based computing paradigm that delivers on-demand software and hardware
computing capability as a ‘service’ through virtualization where the end user is completely abstracted
from the computing resources”

Roots of Cloud??