Sunday, 22 July 2012

OpenStack Cloud Services


Abstract
In an attempt to gain a competitive edge, businesses are increasingly looking for new and innovative ways to cut costs while maximizing value. We are evaluating OpenStack cloud services from technical and commercial angles to be used by an enterprise.
Introduction
As per Wikipedia: Cloud computing is the delivery of computing and storage capacity as a service to a community of end-recipients. The name comes from the use of a cloud-shaped symbol as an abstraction for the complex infrastructure it contains in system diagrams. Cloud computing entrusts services with a user's data, software and computation over a network.



A cloud service is distinguished from traditional managed hosting services by three main characteristics:
  1. Pay as you go — you consume and pay for the service by the minute or by the hour. You do not pay in advance for resources that you may or may not actually use.
  2. Elasticity — you can scale up or scale down your consumption of resources based on demand.
  3. Managed infrastructure — the infrastructure for the service is owned and completely managed by the provider.

As per some of the analysts, anything and everything beyond your firewall is cloud. So the cloud is a physical place, perhaps owned and controlled by some other entity, and it contains computing resources that are available pretty much on demand for a price. There are mainly three types of cloud computing:
§  Infrastructure as a Service (IaaS), Examples of IaaS include: Amazon Cloud Formation (and underlying services such as Amazon EC2, Simple Storage Service), Rackspace Cloud, Google Compute Engine, and RightScale.
§  Platform as a Service (PaaS), and Examples of PaaS include: Amazon Elastic Beanstalk, Heroku, EngineYard, Google App Engine, and Microsoft Azure.
§  Software as a Service (SaaS). Examples of SaaS include: Google Apps, Quickbooks Online and Salesforce.com.



Using Infrastructure as a Service, users rent use of servers (as many as needed during the rental period) provided by one or more cloud providers. Using Platform as a Service, users rent use of servers and the system software to use in them. Using Software as a Service, users also rent application software and databases. The cloud providers manage the infrastructure and platforms on which the applications run.
End users access cloud-based applications through a web browser or a light-weight desktop or mobile app while the business software and user's data are stored on servers at a remote location. Proponents claim that cloud computing allows enterprises to get their applications up and running faster, with improved manageability and less maintenance, and enables IT to more rapidly adjust resources to meet fluctuating and unpredictable business demand.
However further cloud service can have 3 further services in stack, which are following:
Clients (examples) are computer hardware and/or computer software which rely on The Cloud for application delivery, or which is specifically designed for delivery of cloud services, and which are in either case essentially useless without it.
Services (examples) are "software system[s] designed to support interoperable machine-to-machine interaction over a network" which may be accessed by other cloud computing components, software (eg Software plus services) or end users directly.
Storage (examples) is the delivery of data storage as a service (including database-like services), often billed on a utility computing basis (eg per gigabyte per month)

Most of the current commercial Cloud services providers try to focus on one of the above and offer services to customers. Commercial cloud services either use proprietary technology or licensing method resulting in increased costs for customers.
Why not Commercial Cloud Services?
Some of the major difficulties with going ahead with commercial cloud services stacks are following:
1)      Technology Lockin - One of the concerns for Software Architects while building applications for cloud is the technology lock-in. For example a .NET application built for Microsoft Azure services would not be compatible with Amazon AWS and vice versa.  Also cloud applications designed for Microsoft Azure & Amazon AWS are not directly portable on premise environments. Basically applications designed for AWS & Azure are locked in with the provider and you need to spend good amount of re-engineering efforts to move them out.
2)      Development Costs – If you are planning to develop applications/services for commercial platforms then you need to have knowledge of their proprietary SDKs etc. Hence development time goes up and costs are further increased.
3)      Licensing Costs – Due to the nature of proprietary technology, the cost of licensing tend to be higher.
4)      Small Development Community – As the cost of development is higher, small vendors tend to shy away from the development resulting in small development community.
5)      Compatibility – Commercial vendors usually try to create compatibility within small group of hardware and software vendors. This may result in hardware and software compatibility issues for customers.
Some of the above mentioned concerns get addressed with Open Source environment.
1)      It’s based on open source and open standards. Hence code portability to the users. Developers can use existing python, perl or GEMs to port their applications to Cloud.
2)      Low development cost as no upfront cost of licenses/knowledge upgrade.
3)      Negligible licensing cost as it is based on Open Source standards.
4)      Global development community
5)      High level of compatibilities



A typical Cloud Infrastructure
A typical cloud is made of Cloud controller, nodes, network filtering, caching and load balancing mechanism. Each node is capable of running multiple VMs. Further nodes can be managed by virtual infrastructure manager.






OpenStack
Let’s take case of OpenStack, which is an open source solution. If we have to offer OpenStack as IaaS then following features are required in OpenStack solution:
1.      Allow application owners to register for our cloud services, view their usage and see their bill (basic customer relations management functionality)
2.      Allow Developers/DevOps to create and store custom images for their applications (basic build-time functionality)
3.      Allow DevOps/Developers to launch, monitor and terminate instances (basic run-time functionality)
4.      Allow the Cloud Operator to configure and operate the cloud infrastructure




These are the basic minimum features for any service provider to ensure that he is able to monetize the services and get revenue out of it.





 OpenStack architecture
It’s quite simple and provides all the basic features that IaaS needs.

·         Dashboard (Horizon) provides a web front end to the other OpenStack services
·         Compute (Nova) stores and retrieves virtual disks ("images") and associated metadata in Glance
·         Image (Glance) can store the actual virtual disk files in Object (Swift)
·         Services authenticate with Identity (Keystone)



Logical OpenStack Architecture


·         End users can interact through a common web interface (Horizon) or directly to each service through their API
·         All services authenticate through a common source (facilitated through Keystone)
·         Individual services interact with each other through their public APIs (except where privileged administrator commands are necessary)




OpenStack Implementation scenario
Hypervisor: Xen
Device Emulation: KVM
Networking: vSwitch
Virtual Image Management: ovftool, Clonezilla

Red Hat introduced the libvirt library as an API for managing platform virtualization(hypervisors and VMs). What makes libvirt interesting is that it supports a number of hypervisor solutions (KVM and Xen being two) and provides API bindings for number of languages (such as C, Python, and Ruby). It provides the "last mile" of management, interfacing directly with the platform hypervisor and extending APIsout to larger infrastructure-management solutions. With libvirt, it's simple to start and stop VMs, and it provides APIs for more advanced operations, such as migration of VMs between platforms. Using libvirt, it's also possible to use its shell (built on top of libvirt), called virsh.





Benefits of OpenStack solutions
1)      Its diverse and has active developer community, its being based on industry opens standards, flexibility, and ability to scale.
2)      Zero initial investment on solution
3)      Each of the commercial vendors has its own API, and these APIs doesn’t support various storage systems. OpenStack works on open standards.
4)      OpenStack uses software logic to ensure data replication and distribution across different devices, meaning that inexpensive commodity hard drives and servers can be used in lieu of more expensive equipment. Further Quota facility ensures that users can’t provision more than allocated disk space.

Points to further look for in OpenStack:
1)      Presently OpenStack doesn’t have billing solution and Zuora kind of solution need to be separately integrated
2)      Customer portal needs to be further created
3)      Some work is still required for making nova-network more available.

Conclusion
OpenStack provides all the features that are required to run IaaS cloud services. However to commercialize it, some level of integration and effort is required.

Sunday, 22 July 2012 by Saurabh Gupta · 0

Wednesday, 20 June 2012

"Microsoft Surface" Vs "Samsung Galaxy Tab" Vs "Apple iPAD"


"Microsoft Surface" Vs "Samsung Galaxy Tab" Vs "Apple iPAD"... Decide yourself..

Microsoft Surface Samsung Galaxy Tab Apple iPAD
Keyboard The Surface keyboard will be part of its Touch Cover, which is connected with magnets and flips open. There will be a version with pressure-sensitive flat keys and another with more traditional raised keys called a Type Cover. Thirdparty support Thirdparty support
Display Size 10.6 inches 1366×768 10.1-inch 1280 x 800 9.6 Inches 2048 x 1536
Processor Windows RT has an NVIDIA Tegra-based ARM chip and the Surface Windows Pro has an Intel Ivy Bridge Core i5 processor  respectable 1GHz dual-core NVIDIA Tegra 2 processor Apple A5x SoC, which breaks down to a 1GHz dual-core processor combined with a quad-core graphics processing unit.
OS Windows RT/Windows 8 Professional Android 4.0 ICS + TouchWiz UX iOS 5.1
RAM ?? 1GB 1GB
Disk Space Windows RT has 32 or 64GB while the Surface Windows Pro has 64 or 128GB it’s offered in 16GB, 32GB and 64 GB versions, but it can be expanded thanks to its available microSD card slot 16GB, 32GB, and 64GB capacities
Stand kickstand included thirdparty thirdparty
Productivity Suite

Read more »

Wednesday, 20 June 2012 by Saurabh Gupta · 0

Saturday, 16 June 2012

Reading Credit Card Numbers


Have you ever tried to figure out what a credit card number represent or if there is any way to figure out if number itself is correct. You surely cant check the validity of credit card just by number, but can  figure out if credit card number is valid or not.




Read more »

Saturday, 16 June 2012 by Saurabh Gupta · 0

How do you blog?


So you have decided to start your own blog/CMS site and want to join the crowd.. read on..

I will try to cover generic topics in this article that you need to start blogging or CMS site. Details will follow in future posts. 

Step One – What do you want to blog about?


You need to make sure that you select right area in which you are good. For example if I am asked to write a review of Indian classical music, then god save me and reader. Similarly you need to make sure that you are good at the topic you are writing about. Secondly use “Google Adwords” and “Google Trends” to figure out you don’t have too much competition on the similar lines. For example you may be having heavy “keyword” competition for “textile waste recycling” but low competition for “textile recyclers”. Start with the topics which face low competitions but have low to medium traffic generation. Once you have figured it out, you are all set to look for technology/platform.

Read more »

by Saurabh Gupta · 0

Sunday, 10 June 2012

What is Hacking?

Hacking means finding out weaknesses in a computer or computer network and exploiting them, though the term can also refer to someone with an advanced understanding of computers and computer networks. 

Disclaimer: I have never been involved with any hacking activity nor caused trouble to network administrators :). 

Firstly why do we need to know what is hacking? Surely not to impress girls, but to make sure others tech guys cant get into your network and PC. They can steal your data data, modify it or even destroy it. Bringing down a network is childs play these days. The technique which were used by SETI earlier are now used to push denial of services on various sites. The other reason for learning hacking is to ensure internally employees are not able to steal data, watch restricted contents or do something that security admins dont want them to do.

One famous hacker once wrote that ``Hackers understand something basic about computers, and that is that they can be enjoyed.  I know none who hack for money, or hack to frighten the company, or hack for anything but fun.'' Most of the IT wizards were once hackers; Bill Gates, Alan cox, Linus, Marcello, Willy, Tweedie, Kolivas etc are just to name few. For that matters, most of the kernel programmers are the best hackers. 

Read more »

Sunday, 10 June 2012 by Saurabh Gupta · 0

Help me buy a Computer


Buying a right computer as per your need is critical for your work and day to day communication. I have put some of the points that can be useful while buying a new computer. You can use these tips to buy a new laptop or desktop.

Whether you want a laptop or desktop?
Whether you want a laptop or desktop?
Though desktops are cheaper than laptops and repairs costs are also less in desktop, but are you sure you want a desktop? Desktop takes more space, requires external power backup and can’t be moved easily. You can’t carry a desktop around and it will take lot of space on your table. Price difference between regular desktop and laptop is not much. At the same time if you want to play latest games and run processor intensive games on big screen, desktops are the way to go.
So first make up your mind whether you want a desktop or laptop!!

Which operating system you need?
Which operating system you need?
Most likely it will be windows based system which is easy to operate for everyone at home. However you make also like to look for Mac based system which will be good for graphics or Linux based system which can be great for programming and open source lovers. Also see if you can get 64 bit Operating system. It will definitely be faster compared to 32 bit OS.

Read more »

by Saurabh Gupta · 0

Secure your network with Open Source applications and Tools


Wikipedia - “Network security consists of the provisions and policies adopted by a network administrator to prevent and monitor unauthorized access, misuse, modification, or denial of a computer network and network-accessible resources.”

In today’s world securing information is most critical and difficult part in any organization. Your development and research team will come up with some of the best ideas and products, but in the end somebody else may end up enjoying benefits out of it. You will never know while you are sleeping, your employee may steal data from your premise or your corporate enemies may launch a cyber attack on your network.

In order to secure your network you will find lot of applications, hardware and tools which are available in market. However I will try to explain very few of open source tools from load of tools which are freely available. The reason for going with open source is simple, it’s open. You know what is application/tool is doing and you have full control on it. Should your company follow the crowd moving towards open source network security? That depends on which is more important to you: an agile solution that doesn't cost much or a comprehensive solution that comes with plenty of support. If you are looking for the agile solution read on…

IP COP – IPCOP comes with bundle of tools and applications built in. It has transparent proxy server, web caching tools, advanced proxy for controlling your traffic, DHCP server, firewall, IP tables for those fine tuning, URL filtering for blocking chat etc, port forwarding for getting specific traffic into your network. Just put in on your internet pipe and you are up and running. It will secure network and keep inform you once something goes wrong. It can run on old PII or PIII machine with 512 MB RAM and is not resource intensive. You can access the website at http://www.ipcop.org/

OpenVPN – You must be using paid VPN software or hardware to connect to your office network. Try Open VPN, It’s an excellent tool which can be run on Linux box or can be run directly from IPCOP. With OpenVPN you can
·         tunnel any IP subnetwork or virtual Ethernet adapter over a single UDP or TCP port,
·         configure a scalable, load-balanced VPN server farm using one or more machines which can handle thousands of dynamic connections from incoming VPN clients,
·         use all of the encryption, authentication, and certification features of the OpenSSL library to protect your private network traffic as it transits the internet,
You can access further details on http://openvpn.net/

WireShark - Formerly known as "Ethereal," Wireshark is the world's foremost network protocol analyzer. It allows the user to see all traffic being passed over an Ethernet network. It runs on Windows, Linux, OS X, Solaris, FreeBSD, NetBSD, and others. It shows you any packet travelling on network and can also show you any non encrypted password J. Use it for good  http://www.wireshark.org/

NMAP - Nmap ("Network Mapper") is a free and open source utility for network discovery and security auditing. Many systems and network administrators also find it useful for tasks such as network inventory, managing service upgrade schedules, and monitoring host or service uptime. Output of nmap can tell you open ports, running services etc on a network in a minute. NMAP is fastest and most comprehensive way to discover network, running services and holes in security.

Open SSL - The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library. You can compile apache, postfix with SSL support and start your own secure mail delivery on TLS or run https services. SSL will provide secure connectivity between your server and client to exchange data. http://www.openssl.org/

Clam Antivirus – Ever heard of free antivirus which can secure your email gateway for free. Clam is just the right choice if you are looking to implement a low cost email server with full featured antivirus support. ClamAV is an open source (GPL) antivirus engine designed for detecting Trojans, viruses, malware and other malicious threats. It provides a high performance mutli-threaded scanning daemon, command line utilities for on demand file scanning, and an intelligent tool for automatic signature updates. I have personally used it along with postfix and found it as reliable as any commercial grade application. http://www.clamav.net/lang/en/

There are more open source applications and tools which you can utilize in your network and make it more secure and efficient. 

by Saurabh Gupta · 0