Most of your applications need not run in cloud today. But, you might find yourself moving to cloud very soon. So how do you prepare for this scenario?
It is not very difficult to accomplish this. Best thing you can do is to keep track of all the features available in cloud (ex: file system etc.). While designing your application avoid using those features which are not available in cloud.
I will give a practical example that happened in recent past. I was designing the system to store all the patient documents and images. Did lot of reading (BTW: We use SQL Server 2008) and almost decided to go with FILESTREAM (for obvious benefits). Then I bounced this off to one of our Sr. Engineers, his first question was what happens when we move our solution to cloud (such as azure)? His question had clear answer in it!!!
So, even though storing images in the database was not an optimal design choice, we had to compromise and take that path.