Showing posts with label Enterprise Private Cloud. Show all posts
Showing posts with label Enterprise Private Cloud. Show all posts

Tuesday, February 28, 2012

Vaadin – The Server Side Programming Model for Web Based GUI


The Vaadin framework is a server side programming model for web based GUI. It is for developers, architects who prefer to avoif programming using frameworks like jQuery, JSP, JSF. Also, output generated by Vaadin is compatible across web browsers including mobile / handheld devices.

The Vaadin framework programming is carried out in Java as kind of SWING library. The same is compiled into .classes using Java compiler. However, at runtime, the framework is available in a Jar file which has to be included in WAR file. The WAR file takes care of generating appropriate HTML / DHTML and AJAX scripts which is sent to web browser for display. So all browser compatibility issues are taken care by vaadin framework.

Also, vaadin has a plugin for Eclipse which makes development so much easier including drag-n-drop support for UI widgets.

Vaadin is open source project with very good community support including forums.
You can check out vaadin at - Vaadin Homepage


I played around with vaadin using vaadin documentation which is very exhaustive, and found it simple to use and develop.

Tuesday, March 15, 2011

Hadoop Compute Cluster: Summary

What is Hadoop?
Hadoop is inspired by Google’s Architecture – Map Reduce and Google File System. It is a top level Apache project. It is completely written in Java.

Advantages of using Hadoop
Hadoop compute clusters are built on cheap commodity hardware. Hadoop automatically handles node failures and data replication. Hadoop is a good framework for building batch data processing system. Hadoop provides API and framework implementation for working with Map Reduce. The Map Reduce implementation is provided on top of Hadoop Job Infrastructure.
Hadoop Job infrastructure can manage and handle HUGE amounts of data in the range of peta bytes.

When is Hadoop a good choice?
Hadoop is a good choice for building batch processing systems to process huge amounts of unstructured data. Also, to use Hadoop effectively, the system should process data in parallel. Also, a definite advantage of Hadoop is that when you want to use cheap hardware and scale the cluster horizontally.

When is Hadoop NOT a good choice?
Hadoop is not a good choice for building systems that carry out intense calculations with little or no data. Also, for systems where requirements restrict that the processing cannot be easily made parallel. Also, since Hadoop is a batch processing system, there is lot of latency between request and response and so is not suitable for interactive system.

Hadoop Eco-system
Several projects are supporting Hadoop Eco-system:
·         Hadoop Common – The common utilities that support the other Hadoop sub – projects
·         HDFS – A distributed file system that provides high throughput access to application data
·         MapReduce – A software framework for distributed processing of large data sets on compute clusters.
·         Avro – A data serialization system.
·         Chukwa – A data collection system for managing large distributed systems
·         Hbase – A scalable, distributed database that supports structured data storage for large tables
·         Hive – A data warehouse  infrastructure that provides data summarization and ad hoc querying
·         Mahout – A scalable machine learning and data mining library
·         Pig – A high – level data-flow language and execution framework for parallel computation
·         ZooKeeper – A high – performance coordination service for distributed applications

Hadoop Distributed File System (HDFS):
HDFS is a file system internally used by Hadoop framework for buffering, transferring and copying data across nodes within the Hadoop cluster.

Hadoop copies each file data to multiple nodes. This allows for node failures without data loss.



Hadoop Architecture Overview

The above diagram depicts Hadoop Architecture. There is one Name node per cluster. This imposes high risk by pausing as a Single Point of Failure for hardware. This can be prevented by mounting the Name node on multiple file systems to provide data redundancy. Name node manages the file system name space and meta data.
There are lots of data nodes within a cluster. It manages data blockes which represent fragments of files on HDFS. Each block is replicated wihin data nodes (at least 3 copies), so this prevents failure.
There is exactly one Job Tracker per cluster. Clients submit job requests to job tracker. Job tracker schedules and monitors Map Reduce jobs on task trackers.
There are typically many task trackers. These are responsible for executing map reduce operations. Task trackers are also responsible for reading and writing input and output data to Map Reduce jobs.

Hadoop modes of operation
Hadoop operates in three modes of operation:
·         Stand – alone
·         Pseudo – distributed
·         Fully-distributed (Cluster)

The stand-alone and Pseudo-distributed modes of operations are development modes of operations used by development teams to carry out development of Map Reduce jobs.
The stand-alone mode of development does not use HDFS but uses local operating system files system. Hadoop and all application code runs inside a single Java process. This is on a Single machine.
The pseudo – distributed mode of Hadoop runs all the processes like Name node, Data node, Job Tracker and Task Tracker as separate processes. HDFS file system is used in this mode of operation. This is again on a single machine.
Both the above approaches are used by developers to carry out development activities.
The third mode of Hadoop operation is Fully – Distributed Cluster. HDFS file system is used. This is over a cluster of machines. Read / write processes are balanced over a cluster of nodes.  There are several daemon threads of Name node, Data node, Task Tracker and Job Tracker.

Conclusion
Hadoop is a leading open source framework where distributed parallel processing is required. There are many companies supporting Hadoop development including Apache, Cloudera, etc.

References:

Monday, January 24, 2011

Easy Infrastructure as a Service (IaaS) : Setting up Enterprise Private Cloud - Eucalyptus

Usage Scenario:
During many phased of SDLC, there is a need to create hardware and software environments repeatedly to perform development, integration testing, system testing and user acceptance testing. This repeated deployment of hardware and software takes lot of time and eats into the bandwidth of today’s delivery organization to focus on the core responsibility of delivering tested application.
Delivery organization also needs to provision and re-provision hardware and software for ever increasing requirements of development and testing in addition to the resources. Also, setting up of separate hardware and software takes time as well as prone to configuration errors. Plus, separate hardware installations consumes space which is at a premium.

Solution:
The solution to above mentioned usage pain points is to setup private cloud. Eucalyptus, an open source private cloud provider provides software that can be deployed to setup private cloud within the organization’s internal premises.
Eucalyptus is software that implements scalable IaaS-style private and hybrid clouds. Eucalyptus implements the Amazon Web Services (AWS) API which allows interoperability with existing AWS-compatible services and tools.
The Eucalyptus private cloud brings following capability to the organization:
·        Standardization of virtual machines appliance. This means that a standard stack of operating system, web servers, databases are pre-grouped as a set and can be deployed on demand by the internal users of the organization.
·        Elimination of configuration errors while creating consistent development and test environments in terms of hardware and software configurations
·        Significant savings on cost for space and time to deploy the infrastructure
·        The deployment requests can be automated using a workflow and charge mechanisms can be created for the inventory of software and hardware for various departments within the organization.

Eucalyptus private cloud architecture:
The above diagram shows different components that make a Eucalyptus cloud cluster. The components are Cloud Controller, Walrus, Cluster Controller, Node Controller and Storage Controller.
The Cloud Controller provides Amazon Web Services like interface to control and manage the cloud. Walrus component is similar to AWS S3 storage and provides bucket like storage to user of cloud. Cluster controller manages the network of nodes in the cluster and storage controller manages AWS EBS kind of storage for the cloud. Every node in the cluster will be required to install Node Controller to manage each node and interact with the Cluster Controller.

Typical Configuration:
If you want to tryout the feature of Eucalyptus private cloud, you can create a 2 machine cluster as a minimum.
You can deploy a typical Eucalyptus installation in a 2 machine configuration. The components Cloud Controller, Walrus, Cluster Controller and Storage Controller reside on one machine. The other machine will contain Node controller.
Both the machines have Server Operating System as Ubuntu 10.04. The Ubuntu OS has option to deploy private Enterprise Cloud. The installation steps are given in the references section.

Conclusion:
Private Enterprise Cloud will change the way in which the computing is currently done in the Enterprises as well as Delivery organizations.  Private Enterprise Cloud brings flexibility in configuration management and deployment management. Coming quarters will see significant adoption of Private Enterprise Cloud as the de-facto platform for infrastructure management or Infrastructure as a Service(IaaS).

References: