Refactoring Is The First Step In A Cloud Migration

In this interview we speak with cloud computing expert Janakiram MSV. Janakiram talks of what the cloud has to offer and how the various software platforms are placed as regards cloud adoption. He shares his thoughts on the top cloud service providers & the steps involved in migrating to the cloud. Finally he delves on the risks & drawbacks of cloud computing that we need to watch out for.

Harshad Oak >> Hi Janakiram, welcome to IndicThreads. Would you like to introduce yourself?
Janakiram MSV >> Thanks Harshad! I started my career in 1997 as a trainer at Aptech. I joined Microsoft Corporation as an intern in 1999 and became a full time employee in 2000. Since then I have been a Consultant, Technology Specialist, Evangelist, Product Manager, Program Manager and Technology Strategist.

In terms of technology, my focus area has been Distributed Computing which includes Microsoft COM, DCOM, MTS, COM+, XML Web Services and SOA. Apart from Microsoft technologies, I also kept myself updated on Java EE and Linux. Last year I joined Bell Labs India to drive the strategy and operations for the research team. Given my background and passion, Cloud Computing became the natural choice for me. Within and outside of my job, I am involved in architecting and designing solutions for the Cloud.

Harshad Oak >> Larry Ellison recently said that the only thing new about cloud computing is the word “cloud”; leaving most people even more confused about the cloud. What is your interpretation of the cloud & what does cloud computing have to offer?
Janakiram MSV >>Though it may sound clichéd, Cloud Computing is more of an evolution than revolution. It is Distributed Computing on steroids. Few independent factors like abundant bandwidth, ubiquitous connectivity, Virtualization and maturity of protocols like SOAP, REST and POX led to this paradigm. If any of the trends that I mentioned didn’t transform to become what they are today, Cloud Computing wouldn’t have been a reality!

“Abundant bandwidth, ubiquitous connectivity, virtualization and maturity of protocols like SOAP, REST and POX led to Cloud Computing…”

A thick pipe connecting an inexpensive PC to the world’s most powerful datacenter, lets the user move the heavy lifting and compute intensive tasks to the remote Data Center. This opens up new possibilities to offer resources like Computing and Storage as services on subscription. It is just not the core infrastructure, but even platforms like Java or .NET and traditional software like word processing and spreadsheets are offered as services. I covered the definition of Cloud Computing in one my articles.

Harshad Oak >> Is there any programming language or platform like JavaEE or .NET that seems to have an edge when it comes to adopting cloud services?
Janakiram MSV >>Fortunately, Cloud Computing has an equal affinity and support for programming languages. Developers typically tend to interact with the Cloud in one of the two mechanisms – One, by consuming the APIs that the Cloud Computing platforms expose. These APIs are based on standard web protocols like HTTP, REST, SOAP and POX. So, any language that is capable of dealing with HTTP can be programmed to leverage the Cloud. The second mechanism is to deploy applications on the Cloud. Typically, this is called as Platform as a Service (PaaS) where LAMP, Java or .NET platforms are offered as services. Developers can design, develop and debug applications on their inexpensive PCs and then deploy them to run on most scalable and reliable data centers. Google App Engine or Microsoft Windows Azure platform are examples of this. Bottom line – All the platforms and languages are equally positioned to adopt and exploit the Cloud Computing capabilities.

“Cloud Computing has an equal affinity and support for programming languages”

Harshad Oak >> Amazon, Google & Microsoft are perhaps the most well known players in the cloud market. What are the key differences between the top cloud providers?
Janakiram MSV >>Amazon Web Services is the most mature of the offerings available today. AWS is Infrastructure as a Service (IaaS) offering. They offer Compute, Storage, CDN and Database as services. Because they offer Hardware as a service, any business or a developer can leverage the Amazon Cloud irrespective of their platform preferences. EC2, S3 and CloudFront are some of the popular services from Amazon. Google and Microsoft are Platform as a Service (PaaS) providers. Google App Engine (GAE) is a platform to deploy and run Python and Java based applications. GAE lets the developers schedule tasks and send email from the applications. It lets you get started without any upfront payment. Google will charge you only after you hit a specific threshold. Microsoft Windows Azure Platform is another popular Platform as a Service (PaaS) primarily focusing on the .NET platform. If you are a Microsoft developer and want to move to the Cloud, Azure is the platform for you. Azure offers Compute, Storage and SQL Server (SQL Azure) on subscription. All the key players including Amazon, Google and Microsoft have developer SDKs, IDE plugins and tools to help the developers target the Cloud. To summarize, if you need raw computing or storage, consider Amazon. If you are a Python or Java developer, Google App Engine is for you. For all the Microsoft .NET developers, Azure is the preferred platform.

“Amazon Web Services is the most mature of the cloud offerings available today…”

Harshad Oak >> For those wanting to go the cloud way, are there any broad steps that you would recommend for migrating existing systems to the cloud?
Janakiram MSV >>The first step towards the Cloud is to start refactoring your applications for the loosely coupled architecture. There should not be any affinity between the web tier, application tier and the database tier. One of the key tenets of the Cloud is Elasticity, which is the ability to scale out and scale down on demand. You never know which tier of your applications demands to be scaled out.

“Key tenet of the Cloud is Elasticity, which is the ability to scale out and scale down on demand…”

In one scenario, you may have to scale out the web tier to meet the ongoing traffic demand. If you see that the middle tier is becoming the bottleneck, you may have to add more no. of application servers and same is the case with the data tier. Given this dynamic, on-demand nature of the Cloud, your applications should be designed to seamlessly work in a single server scenario to a clustered environment.

Respecting the SOA principles is a great step in your journey to the Cloud. The other key thing is the way data is persisted on the Cloud. There are new models like BLOBs, Queues and flexible entities that can be leveraged to achieve a greater scale and reliability. Last but not least, always prepare for the worst. Make sure that your application can gracefully survive the outages and the non-availability of resources on the Cloud.

“First step towards the Cloud is to start refactoring your applications for the loosely coupled architecture…”

Harshad Oak >> Do you feel that moving to the cloud is something that all businesses need to look at now or can they wait for if & when the need arises?
Janakiram MSV >>Cloud is not a one stop solution for all the IT demands. I personally wouldn’t recommend the businesses and IT departments move to the Cloud immediately. Not all applications and scenarios are meant for the Cloud.

Having said that, Cloud can drastically reduce the overall cost of IT. If you are envisioning a new system that demands virtually unlimited no. of servers and storage and you do not want to invest upfront on the infrastructure, Cloud is the right choice for you. It will save the CAPEX and turns your investment into OPEX that can be spread over a period of time.

The other scenario is extending your existing, on-premise application that needs occasional computing power. Let’s say you need additional servers during the closure of the fiscal year to compute the tax of your employees, it may not be viable to invest in the servers for this ‘seasonal’ demand. You may want to move the year-end computing tasks to the Cloud and save on your CAPEX. Budding entrepreneurs and start-ups immensely benefit from the promise of the Cloud.

“Budding entrepreneurs and start-ups immensely benefit from the promise of the Cloud…”

Harshad Oak >> In the cloud deployments that you have been part of, which were the hurdles you had to cross for a successful deployment?
Janakiram MSV >>The biggest hurdle of moving to the Cloud is convincing the stakeholders about moving the data away. There are many concerns around data privacy and confidentiality. But with the right technical architecture and design approach, it can be addressed effectively. On the technical front, architecting for the Cloud requires some concepts to be unlearned. The application should be loosely coupled and should be redesigned to take advantage of the distributed nature of the Cloud.

“Biggest hurdle in moving to the Cloud is convincing the stakeholders about moving the data away…”

Harshad Oak >> There doesn’t seem to be much standardization & collaboration happening amongst cloud vendors. Also Stallman & the Free Software Foundation opine that cloud computing will force people to buy into locked, proprietary systems that will cost more and more over time. These look like major long term risks.
Janakiram MSV >>It is true that there is no standardization and collaboration among the current Cloud Computing offerings. There are some efforts in standardizing the API. The Simple Cloud API is a collaborative effort by Zend, GoGrid, IBM, Microsoft and others. This at least attempts at enabling the developers to easily switch between Cloud services without much change to the code.

“Portability and migration from one Cloud to another is an exciting opportunity for the System Integrators…”

But portability and migration from one Cloud to another is an exciting opportunity for the System Integrators. They can offer services to address this requirement. Independent Software Vendors (ISVs) can offer tools that enable one time migration of data from one vendor offering to the other. There are discussions around implementing a meta-cloud which abstracts the proprietary Cloud implementations by exposing a standard set of API to consume the service offerings. It is a matter of time before Cloud Interoperability becomes a reality.

“There is no standardization and collaboration among the current Cloud Computing offerings…”

Harshad Oak >> What is the kind of action you see in the cloud space in India? Are there are exciting cloud innovations / products you are aware of?
Janakiram MSV >>The Cloud adoption is in its nascent stage in India. System Integrators like Wipro, Infosys and TCS are busy in assessing the opportunity and creating the relevant service offerings. Government and Public Sector can immensely benefit from Cloud. By setting up a Private Cloud, state governments can gain access to virtually unlimited, centralized computing. Through this state governments can save cost by limiting the servers and maintenance in the local data centers. I analyzed the Indian market opportunity for Cloud vendors in my article ‘Who Will Win the Cloud Computing Battle in India’. There are a few ISVs that are doing some interesting work in the space of Cloud Computing. These products will mature in the near future.

“Cloud adoption is in its nascent stage in India..”

Harshad Oak >> Thanks Janakiram. It was a pleasure talking to you. Readers wanting to hear more about the cloud from Janakiram, head over to his blog & Cloud9 show.

Related:
Multiple Dell cloud computing solutions for small businesses

Content Team

The IndicThreads Content Team posts news about the latest and greatest in software development as well as content from IndicThreads' conferences and events. Track us social media @IndicThreads. Stay tuned!

Leave a Reply