I believe that the best way to learn is to learn from each other, so I’m always on the search for stories of Canadian developers who have either built new applications using Windows Azure services or have migrated existing applications to Windows Azure. This is the story of Epilogger.
- [01:42] (Rationale behind using Windows Azure for storage)
”We needed some place that was not hosted by us because we have a limited amount of disk space, where we can store tons of photos, and that we can access them quickly. So the great thing about Windows Azure is that we put them all up there, we get a URL back that we can use our own domain name on, and when we serve images back on the website, they come straight from Windows Azure. They don’t even come off our own web server, so we don’t have to worry about traffic that way.“
- [04:14] (Moving large databases to SQL Azure, sharding, and a limitation of Table Storage)
”SQL Azure is limited to 10GB [NOTE: With the latest updates to the SQL Azure platform, the maximum database size is currently 150GB], so we would have to shard that … table across a whole bunch of databases. That’s one thing we’ve thought about. We’ve also looked at simple Table Storage, which gave us the functionality of the mass amount of data, but didn’t necessarily give us the ability to do aggregate functions – at least right now – to be able to report on that data.”
- [04:50] (Examples of workloads possible to move to Windows Azure)
”… we do eventually want to scale beyond that server, so if we have all of these processes, we could throw those processes on Windows Azure – like the worker processes and have them run all the time.”
- [05:40] (Continued rationale behind using Windows Azure Storage)
”We just didn’t want to manage that many photos and having to manage the storage of that many photos. Having hundreds and hundreds of gigs [to manage] and who knows how many and when it will ever stop. We also wanted that archive to be permanent, so we didn’t want to have to setup a whole backup strategy on our main server just for the images so they could be permanent, as well as serve them if that server is down. With Windows Azure we’ve thrown them all up there, they’re replicated all over, they are accessible quickly – it’s a win-win.”
- [06:29] (Learning curve for a .NET developer to work with Windows Azure)
”As a .NET developer, I didn’t find it difficult at all. The blob storage is dead simple. You drop in the SDK (you download it, you install it), you reference the libraries, a few lines of code, you’re storing blobs, you’re getting back URLs, everything is good. Really really easy, really straight forward. Simple table storage was a little bit different. It took a little bit of time to wrap your head around the NoSQL thing and how to access entities and how to put entities up. It took a long time to figure out how to do aggregate stuff [functions and queries] because it wasn’t a function that was provided like you’re used to in SQL, like count of records or average of these rows.”
- [07:40] (Learning resources)
”The code samples were all right there in the SDK. That’s it. Just http://microsoft.com/azure, download the SDK, videos, code samples.”
- [08:21] (Managing hybrid – traditionally hosted components access/consuming Windows Azure services – solutions)
"[Do you find it difficult?] No, not at all.”
Relevant Architecture Points
- Hybrid solution – traditionally hosted components accessing/consuming Windows Azure services.
- Use of Windows Azure Storage for mass amounts of data, scalability, and performance.
- Use of Windows Azure platform to remove need for infrastructure management
- No need for backup or high availability strategies as a result of using Windows Azure (out of the box capabilities with Windows Azure)
People share their entire lives. But memories on the web are fragmented. Epilogger unite all your social memories to discover and relive events.
President and co-founder of Epilogger. He masterminds the code and idea along with his partner in crime!