Saturday, May 12, 2012

Common Terminologies used in Cloud Computing

With so much buzz around Cloud Computing and SaaS you must be wondering about the common terms revolving around this new paradigm shift of technology. There are multiple definitions and explanations provided over the internet at your disposal. Here are some of the most common terminologies with a simple explanation of each of them for your easy understanding.

API - Application Programming Interface allows software applications to interact with other software. Requested data from another application is returned back in a predefined format and according to specific rules.
ASP - Application Service Provider; typically associated with a hosted single tenant software solution wherein a business provides computer based services to customers over a network.
Cloud Computing - Cloud computing is Internet-based computing, whereby shared resources, software and information are provided to computers and other devices on-demand, like the electricity grid. It describes a new consumption and delivery model for IT services based on the Internet, and it typically involves the provision of dynamically scalable and often virtualized resources as a service over the Internet. Customers do not own and maintain the physical infrastructure, instead avoid capital expenditure by renting usage from a third-party provider. They consume resources as a service and pay only for resources that they use.

Cloud operating system - A computer operating system that is specially designed to run in a provider’s datacenter and can be delivered to the user over the Internet or another network. Windows Azure is an example of a cloud operating system or “cloud layer” that runs on Windows Server 2008. The term is also sometimes used to refer to cloud-based client operating systems such as Google’s Chrome OS.
Freemium – A business model, in which a SaaS provider offers basic features of its software to users free of cost and charges a premium for supplemental or advanced features.
Hosted application - An Internet-based or Web-based application software program, that runs on a remote server and can be accessed via an Internet-connected PC or thin client.
Hybrid cloud - A networking environment that includes multiple integrated internal and/or external Cloud providers.
IaaS - Infrastructure-as-a-Service refers to a combination of hosting, hardware, provisioning and basic services needed to run a SaaS or Cloud Application that is delivered on a pay-as-you-go basis. It is a virtualized environment delivered as a service over the Internet by the provider. The infrastructure can include servers, network equipment and software.
Mashup - Mashup is a web application that combines data or functionality from two or more external sources to create a new service.
Multi-tenancy - Multi-tenancy refers to software architecture where a single instance of software runs on a server, serving multiple client organizations (tenants).
PaaS - Platform-as-a-Service solutions are development platforms for which the development tool itself is hosted in the Cloud and is accessed through a browser. With PaaS, developers can build web applications without installing any tools and then they can deploy their application and services without any systems administration skills.
Pay as you go - A cost model for Cloud services that includes both subscription-based and consumption-based models, in contrast to traditional IT cost model that requires up-front capital expenditure for hardware and software.
Private Cloud - A private cloud is a proprietary network or a data center that supplies hosted services to a limited number of people.
Public Cloud - A public cloud sells services to anyone on the Internet. It is a cloud computing environment that is open for use to the general public. Currently, Amazon Web Services is the largest public cloud provider.
SaaS - Software-as-a-Service refers to multi-tenant software delivered over the internet and customers consume the product as a subscriptions service that is delivered on a pay-as-you-go basis. Applications don’t have to be purchased, installed or run on the customer’s computers.
Subscription-based pricing - A pricing model that lets customers pay a fee to use the service for a particular time period.

Vendor lock-in - Dependency on the particular cloud vendor and difficulty moving from one cloud vendor to another due to lack of standardized protocols, APIs, data structures (schema), and service models.

Virtualization - Virtualization means to create a virtual version of a device or resource, such as a server, storage device, network or even an operating system where the framework divides the resource into one or more execution environments.

Vertical Cloud - A cloud computing environment optimized for use in a particular vertical i.e., industry or application use case.

Service Orientated Architecture (SOA) - A service-oriented architecture is essentially a collection of services. These services communicate with each other. The communication can involve either simple data passing or it could involve two or more services coordinating an activity.
The next time you talk to your cloud service provider, you will be able to understand the jargon they use and decide the best solution for yourself.

Recommended Cloud Computing Management Tools

Designed from the ground-up to provide next generation Cloud management, Abiquo is the most complete and advanced solution available on the market today. Abiquo provides class-leading features like virtual to virtual conversion through a platform that is easy to implement and operate, liberating your IT organization from the drudgery of managing thousands of virtual machines, without relinquishing control of the physical infrastructure.

BitNami Cloud is based on the Amazon Cloud, you have access to a wide variety of server types that can be configured with custom storage. You can start with a basic server and then scale up (or down) the type of server and the disk space as your needs change.

mCloud™ On-Demand is an operational management platform that works with Amazon EC2 to provide an integrated cloud stack for deploying, managing and monitoring enterprise class Rails, Java or PHP applications with ease. mCloud On-Demand also lets you focus on building business value instead of managing infrastructure.

Scalr provides you with a high uptime, fault-tolerant website: Scalr monitors all your servers for crashes, and replaces any that fail. To ensure you never lose any data, Scalr backups your data at regular intervals and uses Amazon EBS for database storage.

With CloudStack as the foundation for infrastructure clouds, data center operators can quickly and easily build cloud services within their existing infrastructure to offer on-demand, elastic cloud services.

CrowdDirector monitors and manages traffic across your mission-critical servers, services, and compute clouds to maximize availability and control of web and Internet services. CrowdDirector enables content providers to configure and manage disparate network resources – without having to build and support the tools to monitor and manage them. CrowdDirector is equivalent to having high-powered load balancers distributed across the Internet, setup to feed real-time information about your site operations real-time.

The RightScale Cloud Management Environment provides all you need to design, deploy, and manage your cloud deployments across multiple public or private clouds, giving you direct access to your server and storage resources in the cloud as if they were in your own data center.

rPath is a unique system automation platform that accelerates and improves the quality of IT service delivery by automating platform provisioning, managing application release processes, and providing a way to predictably deliver updates and patches up and down the stack.

Is the first of the next generation of identity and access management solutions that is delivered as a fully managed service. Symplified is available either completely hosted or on-premise with an appliance. Let Symplified apply our extensive IAM expertise to deliver customized identity services.

Kaavo’s offerings solve the challenge of deploying and managing distributed applications and workloads in the clouds.  Kaavo is the first and only company to deliver a solution with a top down application focused approach to IT infrastructure management in public, private, and hybrid clouds.

Cloudera offers enterprises a powerful new data platform built on the popular Apache Hadoop open-source software package.

Monitis automates and makes easy monitoring of dynamic cloud resources. Monitis supports monitoring of most popular Cloud computing providers including Amazon EC, Rackspace, GoGrid, Softlayer, and more.

How much is 1 byte, 1KB, 1MB, 1GB, 1TB , 1PB, 1EB, 1ZB, 1YB ? ? ?

1 byte v/s 1KB v/s 1MB v/s 1GB v/s 1TB v/s 1PB v/s 1EB v/s 1ZB v/s 1YB 

The basic unit used in computer data storage is called a bit .
8 Bits are equal to 1 Byte .

Bit : A Bit is a value of either a 0 or 1.

Byte : 1 Byte = 8 Bits

Kilobyte (KB) : 1 KB = 8,192 Bits ,
                           1 kB = 1,024 Bytes

Megabyte (MB) 1MB =1024 KB

Gigabyte (GB) 1GB = 1024 MB

Terabyte (TB) 1TB = 1024 GB

Petabyte (PB) 1PB = 1024 TB

Exabyte (EB) 1EB = 1024 PB

Zettabyte (ZB) 1ZB = 1024 EB

Various Layers Of The OSI Model

Open System Interconnection (OSI) Model was developed by the international standard organisation that describe the flow of information from one computer to another computer. It is also called as ISO OSI Model basically. There are total 7 Layers on the OSI Model that perform there distinct functions in the model series.
All the layer of the OSI Model uses difference protocols. Protocol defines the procedures & consequences that how to transmit the data. It is a set of rule that how to be transmit the data.


Layer 1: Physical Layer

The physical layer defines electrical and physical specifications for devices. In particular, it defines the relationship between a device and a transmission medium, such as a copper or fiber optical cable. This includes the layout of pins, voltages, cable specifications, hubs, repeaters, network adapters, host bus adapters (HBA used in storage area networks) and more.

The major functions and services performed by the physical layer are,

• Establishment and termination of a connection to a communications medium.
• Participation in the process whereby the communication resources are effectively shared among multiple users. For example, contention resolution and flow control.
• Modulation or conversion between the representation of digital data in user equipment and the corresponding signals transmitted over a communications channel. These are signals operating over the physical cabling (such as copper and optical fiber) or over a radio link.
• Parallel SCSI buses operate in this layer, although it must be remembered that the logical SCSI protocol is a transport layer protocol that runs over this bus. Various physical-layer Ethernet standards are also in this layer; Ethernet incorporates both this layer and the data link layer. The same applies to other local-area networks, such as token ring, FDDI, ITU-T G.hn and IEEE 802.11, as well as personal area networks such as Bluetooth and IEEE 802.15.4.

Layer 2: Data Link Layer

The data link layer provides the functional and procedural means to transfer data between network entities and to detect and possibly correct errors that may occur in the physical layer. Originally, this layer was intended for point-to-point and point-to-multipoint media, characteristic of wide area media in the telephone system. Local area network architecture, which included broadcast-capable multi-access media, was developed independently of the ISO work in IEEE Project 802. IEEE work assumed sub layering and management functions not required for WAN use. In modern practice, only error detection, not flow control using sliding window, is present in data link protocols such as Point-to-Point Protocol (PPP), and, on local area networks, the IEEE 802.2 LLC layer is not used for most protocols on the Ethernet, and on other local area networks, its flow control and acknowledgment mechanisms are rarely used. Sliding window flow control and acknowledgment is used at the transport layer by protocols such as TCP, but is still used in niches where X.25 offers performance advantages.

The ITU-T G.hn standard, which provides high-speed local area networking over existing wires (power lines, phone lines and coaxial cables), includes a complete data link layer which provides both error correction and flow control by means of a selective repeat Sliding Window Protocol.

Both WAN and LAN service arranges bits, from the physical layer, into logical sequences called frames. Not all physical layer bits necessarily go into frames, as some of these bits are purely intended for physical layer functions. For example, every fifth bit of the FDDI bit stream is not used by the layer.

WAN protocol architecture

Connection-oriented WAN data link protocols, in addition to framing, detect and may correct errors. They are also capable of controlling the rate of transmission. A WAN data link layer might implement a sliding window flow control and acknowledgment mechanism to provide reliable delivery of frames; that is the case for Synchronous Data Link Control (SDLC) and HDLC, and derivatives of HDLC such as LAPB and LAPD.

IEEE 802 LAN architecture

Practical, connectionless LANs began with the pre-IEEE Ethernet specification, which is the ancestor of IEEE 802.3. This layer manages the interaction of devices with a shared medium, which is the function of a media access control (MAC) sub layer. Above this MAC sub layer is the media-independent IEEE 802.2 Logical Link Control (LLC) sub layer, which deals with addressing and multiplexing on multi-access media.

While IEEE 802.3 is the dominant wired LAN protocol and IEEE 802.11 the wireless LAN protocol, obsolescent MAC layers include Token Ring and FDDI. The MAC sub layer detects but does not correct errors.

Layer 3: Network Layer

The network layer provides the functional and procedural means of transferring variable length data sequences from a source host on one network to a destination host on a different network, while maintaining the quality of service requested by the transport layer (in contrast to the data link layer which connects hosts within the same network). The network layer performs network routing functions, and might also perform fragmentation and reassembly, and report delivery errors. Routers operate at this layer, sending data throughout the extended network and making the Internet possible. This is a logical addressing scheme – values are chosen by the network engineer. The addressing scheme is not hierarchical.

The network layer may be divided into three sub layers:

Sub network access – that considers protocols that deal with the interface to networks, such as X.25;

Sub network-dependent convergence – when it is necessary to bring the level of a transit network up to the level of networks on either side

Sub network-independent convergence – handles transfer across multiple networks.

An example of this latter case is CLNP, or IPv7 ISO 8473. It manages the connectionless transfer of data one hop at a time, from end system to ingress router, router to router, and from egress router to destination end system. It is not responsible for reliable delivery to a next hop, but only for the detection of erroneous packets so they may be discarded. In this scheme, IPv4 and IPv6 would have to be classed with X.25 as subnet access protocols because they carry interface addresses rather than node addresses.

A number of layer-management protocols, a function defined in the Management Annex, ISO 7498/4, belong to the network layer. These include routing protocols, multicast group management, network-layer information and error, and network-layer address assignment. It is the function of the payload that makes these belong to the network layer, not the protocol that carries them.

Layer 4: Transport Layer

The transport layer provides transparent transfer of data between end users, providing reliable data transfer services to the upper layers. The transport layer controls the reliability of a given link through flow control, segmentation/de-segmentation, and error control. Some protocols are state and connection oriented. This means that the transport layer can keep track of the segments and retransmit those that fail. The transport layer also provides the acknowledgement of the successful data transmission and sends the next data if no errors occurred.

OSI defines five classes of connection-mode transport protocols ranging from class 0 (which is also known as TP0 and provides the least features) to class 4 (TP4, designed for less reliable networks, similar to the Internet). Class 0 contains no error recovery, and was designed for use on network layers that provide error-free connections. Class 4 is closest to TCP, although TCP contains functions, such as the graceful close, which OSI assigns to the session layer. Also, all OSI TP connection-mode protocol classes provide expedited data and preservation of record boundaries.

Layer 5: Session Layer

The session layer controls the dialogues (connections) between computers. It establishes, manages and terminates the connections between the local and remote application. It provides for full-duplex, half-duplex, or simplex operation, and establishes check pointing, adjournment, termination, and restart procedures. The OSI model made this layer responsible for graceful close of sessions, which is a property of the Transmission Control Protocol, and also for session check pointing and recovery, which is not usually used in the Internet Protocol Suite. The session layer is commonly implemented explicitly in application environments that use remote procedure calls. On this level, Inter-Process (computing) communication happen (SIGHUP, SIGKILL, End Process, etc.).

Layer 6: Presentation Layer

The presentation layer establishes context between application-layer entities, in which the higher-layer entities may use different syntax and semantics if the presentation service provides a mapping between them. If a mapping is available, presentation service data units are encapsulated into session protocol data units, and passed down the stack.

This layer provides independence from data representation (e.g., encryption) by translating between application and network formats. The presentation layer transforms data into the form that the application accepts. This layer formats and encrypts data to be sent across a network. It is sometimes called the syntax layer.

The original presentation structure used the basic encoding rules of Abstract Syntax Notation One (ASN.1), with capabilities such as converting an EBCDIC-coded text file to an ASCII-coded file, or serialization of objects and other data structures from and to XML.

Layer 7: Application Layer

The application layer is the OSI layer closest to the end user, which means that both the OSI application layer and the user interact directly with the software application. This layer interacts with software applications that implement a communicating component. Such application programs fall outside the scope of the OSI model. Application-layer functions typically include identifying communication partners, determining resource availability, and synchronizing communication. When identifying communication partners, the application layer determines the identity and availability of communication partners for an application with data to transmit. When determining resource availability, the application layer must decide whether sufficient network or the requested communication exists. In synchronizing communication, all communication between applications requires cooperation that is managed by the application layer.

Linux Kernal

With over 13 million lines of code, the Linux kernel is one of the largest open source projects in the world, but what is a kernel and what is it used for?

So What is the Kernel?

A kernel is the lowest level of easily replaceable software that interfaces with the hardware in your computer. It is responsible for interfacing all of your applications that are running in “user mode” down to the physical hardware, and allowing processes, known as servers, to get information from each other using inter-process communication (IPC).

Different Types of Kernels
There are, of course, different ways to build a kernel and architectural considerations when building one from scratch. In general, most kernels fall into one of three types: monolithic, microkernel, and hybrid. Linux is a monolithic kernel while OS X (XNU) and Windows 7 use hybrid kernels. Let’s take a quick tour of the three categories so we can go into more detail later.

Microkernel
A microkernel takes the approach of only managing what it has to: CPU, memory, and IPC. Pretty much everything else in a computer can be seen as an accessory and can be handled in user mode. Microkernels have a advantage of portability because they don’t have to worry if you change your video card or even your operating system so long as the operating system still tries to access the hardware in the same way. Microkernels also have a very small footprint, for both memory and install space, and they tend to be more secure because only specific processes run in user mode which doesn’t have the high permissions as supervisor mode.

Pros
Portability
Small install footprint
Small memory footprint
Security

Cons
Hardware is more abstracted through drivers
Hardware may react slower because drivers are in user mode
Processes have to wait in a queue to get information
Processes can’t get access to other processes without waiting

Monolithic Kernel
Monolithic kernels are the opposite of microkernels because they encompass not only the CPU, memory, and IPC, but they also include things like device drivers, file system management, and system server calls. Monolithic kernels tend to be better at accessing hardware and multitasking because if a program needs to get information from memory or another process running it has a more direct line to access it and doesn’t have to wait in a queue to get things done. This however can cause problems because the more things that run in supervisor mode, the more things that can bring down your system if one doesn’t behave properly.

Pros
More direct access to hardware for programs
Easier for processes to communicate between eachother
If your device is supported, it should work with no additional installations
Processes react faster because there isn’t a queue for processor time

Cons
Large install footprint
Large memory footprint
Less secure because everything runs in supervisor mode

Hybrid Kernel
Hybrid kernels have the ability to pick and choose what they want to run in user mode and what they want to run in supervisor mode. Often times things like device drivers and filesystem I/O will be run in user mode while IPC and server calls will be kept in the supervisor mode. This give the best of both worlds but often will require more work of the hardware manufacturer because all of the driver responsibility is up to them. It also can have some of the latency problems that are inherent with microkernels.

Pros
Developer can pick and choose what runs in user mode and what runs in supervisor mode
Smaller install footprint than monolithic kernel
More flexible than other models

Cons
Can suffer from same process lag as microkernel
Device drivers need to be managed by user (typically)

Where Are the Linux Kernel Files?








The kernel file, in Ubuntu, is stored in your /boot folder and is called vmlinuz-version. The name vmlinuz comes from the unix world where they used to call their kernels simply “unix” back in the 60s so Linux started calling their kernel “linux” when it was first developed in the 90s.
When virtual memory was developed for easier multitasking abilities, “vm” was put at the front of the file to show that the kernel supports virtual memory. For a while the Linux kernel was called vmlinux, but the kernel grew too large to fit in the available boot memory so the kernel image was compressed and the ending x was changed to a z to show it was compressed with zlib compression. This same compression isn’t always used, often replaced with LZMA or BZIP2, and some kernels are simply called zImage.
The version numbering will be in the format A.B.C.D where A.B will probably be 2.6, C will be your version, and D indicates your patches or fixes.









In the /boot folder there will also be other very important files called initrd.img-version, system.map-version, and config-version. The initrd file is used as a small RAM disk that extracts and executes the actual kernel file. The system.map file is used for memory management before the kernel fully loads, and the config file tells the kernel what options and modules to load into the kernel image when the it is being compiled.

Linux Kernel Architecture
Because the Linux kernel is monolithic, it has the largest footprint and the most complexity over the other types of kernels. This was a design feature which was under quite a bit of debate in the early days of Linux and still carries some of the same design flaws that monolithic kernels are inherent to have.
One thing that the Linux kernel developers did to get around these flaws was to make kernel modules that could be loaded and unloaded at runtime, meaning you can add or remove features of your kernel on the fly. This can go beyond just adding hardware functionality to the kernel, by including modules that run server processes, like low level virtualization, but it can also allow the entire kernel to be replaced without needing to reboot your computer in some instances.
Imagine if you could upgrade to a Windows service pack without ever needing to reboot…

Kernel Modules





What if Windows had every driver available already installed and you just had to turn on the drivers you needed? That is essentially what kernel modules do for Linux. Kernel modules, also known as a loadable kernel module (LKM), are essential to keeping the kernel functioning with all of your hardware without consuming all of your available memory.
A module typically adds functionality to the base kernel for things like devices, file systems, and system calls. LKMs have the file extension .ko and are typically stored in the /lib/modules directory. Because of their modular nature you can easily customize your kernel by setting modules to load, or not load, during startup with the menuconfig command or by editing your /boot/config file, or you can load and unload modules on the fly with the modprobe command.
Third party and closed source modules are available in some distributions, like Ubuntu, and may not be installed by default because the source code for the modules is not available. The developer of the software (i.e. nVidia, ATI, among others) do not provide the source code but rather they build their own modules and compile the needed .ko files for distribution. While these modules are free as in beer, they are not free as in speech and thus are not included by some distributions because the maintainers feel it “taints” the kernel by providing non-free software.
A kernel isn’t magic, but it is completely essential to any computer running properly. The Linux kernel is different than OS X and Windows because it includes drivers at the kernel level and makes many things supported “out of the box”. Hopefully you will know a little bit more about how your software and hardware works together and what files you need to boot your computer.

Your Reviews/Queries Are Accepted