Thought Garage

We Are, What We Think. Think About It.

Archive for the ‘Google App Engine’ tag

On The Cloud : Stay On Top of News With NewsCred Custom News Paper

with one comment

We have created a custom News Paper called “On The Cloud” to stay on top of News around Cloud Computing and platforms of interest to us. As of now, we have included news on the following topics :

Here is a screenshot of the news paper on NewsCred.com

image

NewsCred allows anybody to create their own news paper based on topics of interest. Unlike others, NewsCred also allows to write your own editorials that will go with the news paper.

Written by murali

January 31st, 2010 at 11:20 pm

Google App Engine : Starting Over

without comments

I have been working on Google App Engine ever since it was released. Unfortunately my hard disk crashed last week. Now I had to start over with setting up the development environment, though I have all my apps source code saved (thanks to free SVN repository provided by unfuddle).

Last time, I did all this was almost an year and half ago, so I thought I will keep notes and share on the blog. I will be using Python for my development, so will be installing App Engine environment for Python.

Python

  • Install Python 2.6.4 version from http://www.python.org/download/ I was little tempted to have the latest version 3.1.1 but read in the release notes that 3.1.1 by design is NOT backward compatible. So it may not work with Google App Engine. So just stick to 2.6.4
  • Install PIL Module required for Image manipulation on Google App Engine.

Google App Engine SDK for Python

Install Google App Engine SDK from Google App Engine Downloads page. Latest version at this time is 1.3.0 released on 12/14/2009.

This is all I need to start over working on Google App Engine. I can use Google App Engine Launcher to create a new app, run the app or even deploy the app to Google App Engine.  I can use the IDLE editor that comes with Python installation to view and edit Python files.

It took less than 10 minutes for both of these installations.

If you are really serious about developing apps on Google App Engine, then keep going : 

It took about 10 more minutes to install Tortoise, Aptana, check out source code and configure with my existing app engine apps.

Ready to go. Wow, wonderful. It is lot easier than I first thought.

Written by murali

January 16th, 2010 at 10:15 am

Posted in Software, Web Apps

Tagged with

Its Funny, How Experts Are Made In America

without comments

Its funny how Experts are made in America. Rule No.1 : You can become an Expert on anything just by claiming you are already one. So much for dreaming big and believing in yourself.

And once you are an Expert (or rather once you claim) you will be treated like an Expert !!

BTW, an expert’s observation on Cloud Computing. It is really funny. Please read.

Microsoft’s Azure cloud is a place you go to in order to build your applications. In the process, you are very likely to use Visual Studio, the .Net Framework, SQL Server in the form of Azure SQL Services, and Microsoft SharePoint, then run the resulting cloud application in Azure itself.

So is Azure just a super sales site for Microsoft products? No, no more so than Google’s AppEngine is a sales site for PHP tools, even though you will write your application in PHP if you want to take advantage of the AppEngine.

- Charles Babcock at Information Week’s Cloud Computing Section

If you are wondering is cloud –> marketing jargon to promote tools that build them or when did Google App Engine started supporting PHP, you hit the nail right on the head.

I am not saying they are not experts on the cloud.

Remember Rule 1.

Written by murali

October 24th, 2009 at 7:04 am

Buzz In The Cloud : Cloud Computing Is The New Web2.0

without comments

These days, not a single day goes by without talking, hearing or reading something about Cloud Computing. It appears, the whole cloud (I mean the world; don’t blame me for overusing the word ‘cloud’, I just want to make a point) is totally excited about ‘Cloud’ suddenly.

In a way, Cloud Computing is the new web2.0, in terms of hype, buzz and activity all around. Every business has something to offer ‘on cloud’. Every consultant is busy selling strategies to cash in on the cloud. And every analyst is preparing a report on the cloud. Every developer is trying to equip to engineer applications on the cloud.

Simply put ..

What is really Cloud computing is all about? Why not look up the definition of Cloud Computing by going to the Encyclopedia on the cloud (??), Wikipedia.

The term cloud is used as a metaphor for the Internet, based on how the Internet is depicted in computer network diagrams and is an abstraction of the underlying infrastructure it conceals. – Wikipedia

Cloud computing is an example of computing in which dynamically scalable and often virtualized resources are provided as a service over the Internet. – Wikipedia

Though Cloud Computing could be everything for everybody (just like Web2.0), most stakeholders would agree to confine Cloud Computing in three forms.

Three Forms of Cloud Computing

Cloud Computing Stack.svg

1. Software-As-A-Service (SaaS)

Refers to Software Applications offered over the internet as a service. SalesForce.com is an excellent example and one of the most successful SaaS offerings. BaseCamp for Project Management, Google Apps are few other successful and well known SaaS offerings.

2. Infrastructure As A Service (IaaS)

Refers to Servers, Storage and Networks offered as a service over the internet.  Most Internet hosting providers fall in to this space. Amazon ECS, Rackspace, AT&T, Akamai are very good examples. They offer servers, databases, storage area networks, networking gear, content delivery networks as a service.

3. Platform As A Service (PaaS)

These providers offer Infrastructure as a Service with a limitation or leverage (depends on what you are looking for) that all applications must be built and run on top of their often proprietary platforms or technology stacks. PaaS inherently include IaaS. Google App Engine, Microsoft Azure, SalesForce Force.com are fine examples for this service.

SaaS and IaaS have been offered in the market for a while. Though there are lots of advances in the technicalities of managing them and lot more new players in the market, these services are not entirely NEW.

What is new in Cloud Computing is the third service, Platform-As-A-Service (PaaS). Not only Infrastructure to run your Business applications but a full platform to develop those applications. It is quite unlikely that these PaaS offerings (at least initially) will not provide a smoother migration for Enterprises to adopt Cloud Computing as this means re-developing most of their business applications.

Easier Adoption Path for Enterprises

For most enterprises, the only option that make sense at this point is IaaS. Instead of running their own data centers, applications can be moved to a public Cloud or a private cloud or managed cloud with little to no impacts. Cost of migrating to a Cloud will be quite insignificant and offer the best level of cost savings, while not forcing a vendor lock-in as applications run on generic platforms. This is the best option.

Or Enterprises can migrate to SaaS offerings, if there are comparable applications are available. For instance, instead of running your own CRM solution on premises, can migrate to SalesForce.com.  But it is a big question for how much generic application like SalesForce.com can offer unique capabilities for each organization, a primary reason why Enterprises developed their own software in the first place. Vendor + Application lock-in is implicit. All Employees and Customers need to be retrained in new sets of applications. Extensive customization is required.

The latest entry in to Cloud Computing, the PaaS is the most Unlikely path of migration of any Enterprise application to the cloud, as this needs re-architecture of their applications and Migration of application software as well  along with data migration. And this would be quite expensive and time consuming for any non-trivial, uncommon business application. Vendor + Platform lock-in is implicit.  Need to retrain Software Development groups and it could be quite extensive as the Platform could be significantly different from generic platform most software developers are comfortable with.

That’s my 2 cents on the Cloud. You can read a little more on the Wikipedia. Or anywhere on the Cloud (:-)).

Written by murali

October 15th, 2009 at 8:11 am

Relational Database Models Vs. Entity Models

without comments

I wrote some time back in February Shifting Away From Tables To Entity Models discussing about fast adoption of Entity models for highly scalable systems moving away from RDBMS modeling and RDBMS databases.

DataStore (based on Google’s Big Table) in Google App Engine is an excellent contrast between  these two models.

RDBMS relational data management systems, simply put, most Database systems allow us to create data models of businesses in terms of rows and columns in a table. Tables can be ‘related’ to indicate dependencies of data between tables. RDBMS was on the best things that ever happened to software abstractions. Every business domain has been modeled to be a set of tables and relations between them.

However, recently another paradigm is taking shape (at least, I only noticed it in the last year), called as Domain Driven Development, DDD for short, that emphasizes the importance of modeling a business in the domain of the business itself rather than dictated by abstractions tied to tables. DDD clout calls them “Entities” (not Tables).  In certain ways, I read this shift from RDBMS to Entity model as “shift from horizontal (table) abstractions to hierarchical (entity) abstractions”.

I found some similar discussion on ReadWrite Enterprise Is the Relational Database Doomed? discussing much more comprehensively about the fallout of RDBMS towards Cloud based (Entity Model) databases.

As Google explained the reason of ‘scalability’ that led them to design Big Table, the author of this article also believe scalability is prime reason that may sway us to move away from RDBMS.

Relational databases scale well, but usually only when that scaling happens on a single server node. When the capacity of that single node is reached, you need to scale out and distribute that load across multiple server nodes. This is when the complexity of relational databases starts to rub against their potential to scale. Try scaling to hundreds or thousands of nodes, rather than a few, and the complexities become overwhelming, and the characteristics that make RDBMS so appealing drastically reduce their viability as platforms for large distributed systems.

Cloud databases like Google App Engine force a different modeling of your databases, for scalability. So I guess, best way to learn is to develop an app on Google App Engine.

Written by murali

October 8th, 2009 at 9:23 am