Cloud Computing Overview
Cloud computing is an emerging IT delivery model that uses the internet and central remote servers to maintain data and applications. Cloud computing allows consumers and businesses to use applications without installation and access their personal files at any computer with internet access. This allows for much more efficient computing by centralizing storage, memory, processing and bandwidth. In general, cloud computing customers do not own the physical infrastructure, instead avoiding capital expenditure by renting usage from a third-party provider. They consume resources as a service and pay only for resources that they use. It’s like Gmail Vs Microsoft Exchange. In Gmail, you don’t need server and storage, you don’t need a technical team to keep it up and running and you don’t need to do upgrades. When you use any application that runs in cloud, you just login customize it and start using.
Not just for consumer application software that uses business applications are called as Enterprise Cloud Computing. Businesses are running all kinds of applications on cloud like CRM, HR, Accounting, including custom build application because they can be up and running in a few days which cannot be not possible in traditional business software. They cost less as you don’t need to pay for the people, product and facilities to run it and it turns out they are more scalable, more secure and more reliable among the vast majority of applications are out there.
Applications on cloud are based on architecture called Multi–Tenancy. With the multi tenant application, there is no multiple copy of the application which each business is using, rather it is only one application which has been shared among them. But it is flexible enough for everyone to customize as per their specific need.
Cloud Computing Segments
Cloud computing is broken down into three segments: Applications, platforms and infrastructure. Each segment serves a different purpose and offers different products for businesses and individuals.
Let me walk through each segment one by one:
Different segments of cloud computing
Infrastructure (IaaS): Let’s say you have a company and a web site. And the web site has lots of short conversations that have exchange between members. You start with a few users talking to each other. With time, the number of users significantly increased. Your web site is successful, but with success there come problems. Your equipments just don’t keep up with demand, you service slows down and suddenly you are in trouble. Hence, to keep up with the demand you need to buy or rent more servers, storage and set them up or someone sets them up for you. Hundreds or even thousands of companies do it for now. It takes lots of time to set them up and it costs quite a bit of money to keep it running all the time. This is called hosting. You pay for the servers when you are using it and you pay for them when you are not using it. Now, you have a better option, infrastructure segment of cloud computing which is also known as Infrastructure-as-a-Service. With cloud computing, you can access computing power instantly whenever needed. When you website on a cloud server just like you put it on a dedicated server when people start visiting your site suddenly, you need more computing power dedicated to your website you can scale up as much as you need almost instantly. You can take up computing power as needed on a cloud on demand and the users of the website will stay happy without noticing any difference. And if your traffic gets back down, you can release servers back to the cloud just as easily.
There are a number of successful IaaS providers: Amazon Elastic Compute Cloud (EC2), Joyent, GoGrid and FlexiScale. While Amazon EC2 is the best known of the providers, Joyent is also huge. Joyent hosts many Facebook applications and they host the social network LinkedIn, among others.
Platform (PaaS): Let’s assume you want to build an application but building and running on-premise applications has always been complex, expensive, and risky. Your application required hardware, an operating system, a database, middleware, Web servers, and other software. Once you assembled this stack, you need a team of developers to navigate complex programming models like J2EE or .NET. You also need a team of network, database, and system management experts to keep everything up and running. Inevitably, a business requirement would require a change to your application, which would then kick off a lengthy development, test, and redeployment cycle. Cloud computing has evolved to include platforms for building and running custom applications, a concept known as Platform-as-a-Service. To develop software, you once had to buy databases, servers, networks, and a host of development tools. And then you needed the staff to install, optimize, and maintain it all. With PaaS, you can avoid those investments and focus on developing applications instead.
There are number of PaaS providers available today AppEngine from Google based on Python and Java. Force.com from SalesForce based on the SalesForce SaaS infrastructure and Apex language. Bungee Connect provides a Visual Development Studio based on Java. WaveMaker is also a Visual Development Studio based on Java and hosted on Amazon EC2. Amazon Web Services (AWS) delivers a set of services that together form a reliable, scalable, and inexpensive computing platform “in the cloud”.
Application (SaaS): Software-as-a-Service (SaaS) is a way of delivering applications over the Internet—as a service. Instead of installing and maintaining software, you simply access it via the Internet, freeing yourself from complex software and hardware management. You just need an Internet connection. SaaS applications are sometimes called Web-based software, on-demand software, or hosted software. Whatever the name, SaaS applications run on a SaaS provider’s servers. The provider manages access to the application, including security, availability, and performance. The three important features of SaaS model are as follows:
- Multitenant Architecture: A multitenant architecture, in which all your applications share a single, common infrastructure and code base that is centrally maintained with other users.
- Easy Customization: The ability for you to easily customize your applications to fit your business processes without affecting the common infrastructure. Because of the way SaaS is architected, these customizations are unique to each company or user and are always preserved through upgrades.
- Better Access: Improved access to data from any networked device while making it easier to manage privileges, monitor data use, and ensure everyone sees the same information at the same time.
Today the key SaaS provides are Google Apps, which are reliable, secure online applications wherever you work like Gmail for business, Google Calendar, Google Docs, Google Groups, Google Sites and Google Video. Salesforce.com provides on-demand CRM solution, now tightly integrated with Google Apps. Zoho also have a series of products to work online like Zoho Mail, Zoho Writer (online Word Processor), Zoho Sheet (Spreadsheets. Online) , Zoho CRM, Zoho Projects (Project Management Software), Zoho Reports (Online Reporting & BI Service) and many more.
Cloud Computing Concerns
Perhaps the biggest concerns about cloud computing are security and privacy. The idea of handing over important data to another company worries some people. Some argue that customer data is more secure when managed internally, while others argue that cloud providers have a strong incentive to maintain trust and as such employ a higher level of security.
Larry Ellison, CEO of Oracle Corporation criticized cloud computing in one of his interviews. He has stated that cloud computing has been defined as “everything that we already do”. You can watch this interview on YouTube.
According to analysts at Gartner, a leading IT research and advisory company, “By 2011, early technology adopters will forgo capital expenditures and instead purchase 40 percent of their IT infrastructure as a service. Increased high-speed bandwidth makes it practical to locate infrastructure at other sites and still receive the same response times. Enterprises believe that as service-oriented architecture (SOA) becomes common, ‘cloud computing’ will take off, thus untying applications from specific infrastructure.”
With the increase of SaaS solution, cloud computing is on the rise. As with the SaaS, cloud computing taps into computing resources off-site and is hosted by another company. The difference is scale. Cloud computing platform may combine thousands of computers and storage network for backup. Benefits of cloud computing includes lower operational costs, quicker development times and access to increased computing power.
Today big players in clouds include IBM, Google and Amazon Web Services, Microsoft, Salesforce.com and the hundreds of new players coming in with their solutions.
Software Developer (Senior)
1. Extensive working experience in web and windows application development, database programming using Java and .Net technologies.
2. Good knowledge in SDLC and Processes like project planning, requirement gathering, development, test planning, release management and production support.
3. Good knowledge and working experience in following methodologies:
a. Agile Development Approach
b. Test Driven Development
c. Behavior Driven Development
d. Continuous Integration & Delivery Model.
4. Excellent communication & analytical skills, good team player, great mentoring capability.
5. Interaction with customer and team spread over different geographical area.
Database: Oracle, SQL Server, MySQL, Sybase
Application Server: Tomcat, Sun Application Server, JBoss, GlassFish, Jetty, IIS
Development Environments: Eclipse, NetBeans, Visual Studio.
Designing Tools: Enterprise Architect, Microsoft Visio
Version Control: SVN, Perforce
Build Management: Hudson & JCruisemonitor, TeamCity
Bug Tracking Tools: HP Quality Center, Bugzilla, JIRA
1. Agile Test and Behavior Driven Development
2. Continuous Delivery Approach
2. Spring IOC and MVC
3. Web Services