Tuesday, February 25, 2014

New Azure regions now available in Japan

Today, Microsoft announced availability of two Azure regions, in East Japan and West Japan, with geo-replication occurring between the two regions. These are now Generally Available (GA), so you can start using the data centers today. You'll see the two new DCs in both the portal and via API / PowerShell / CLI. For example, creating a Virtual Machine:




And here's output from the Azure PowerShell cmdlet Get-AzureLocation:


This brings the total number of data center regions to 10, with more coming (Microsoft previously announced upcoming regions in China, Brazil, and Australia).

Thursday, August 22, 2013

NoSQL Now! talk summary and links: Polyglot Persistence in Windows Azure

Thanks to those who attended my session on Polyglot Persistence in Windows Azure today at the NoSQL Now! conference in San Jose. Here are slides and a few notes from today's session and follow-on questions.

 (download here)

How will Windows Azure provide NoSQL database support?
Today, Azure offers Table Storage as a NoSQL key/value store. Additionally, several partners have begun offering database "as a service" running in Windows Azure. For example, MongoLab and MongoHQ provide Azure-hosted MongoDB, while Cloudant provides Azure-hosted CouchDB.

Some of these databases are available directly through our partners' web portals, while others have also integrated into the Azure Store as part of the Windows Azure portal. Here's an example of MongoLab's MongoDB integrated in the store:
For self-hosting, several partners have built virtual machine images, installable via Azure's VM Depot. Here's Neo Technology's Neo4j 1.8:

What, exactly, is VM Depot?
VM Depot is a repository of community-created Linux-based virtual machine images. In terms of NoSQL, there are a few NoSQL database images available today. For example, you'll find Neo4j, MongoDB, Redis, and Riak.


What does VM Depot cost?
VM Depot is free: Free to publish images and free to download images to your Azure account.

What are the architectural considerations for integrating multiple NoSQL databases in my app? Are there standard practices?
As the Cloud Ninja Polyglot Persistence project demonstrates, you can choose to either make direct database calls or implement an abstraction layer, implementing such patterns as repository. When going with a repository pattern, this allows you to swap out database engines with reduced impact to your existing code base, although it's possible you'll need to make adjustments to your app's data access API.

How do I choose a specific NoSQL database implementation? Can you please recommend one?
For key/value storage, Azure Table Storage offers massive scale (200TB per namespace) and provides very fast storage and lookup. As for 3rd-party vendor offerings, I really cannot give specific recommendations, but I can offer some food for thought when making your decision:

  • Look at the company's longevity, financials, funding, etc.
  • Does the vendor provide Professional Services support?
  • How big / popular is the community? Consider forums, web presence, conferences, etc.
  • How robust is language support? does the product offer direct API's when using a non-supported language?
  • How active is the project? Are there frequent updates? Can you view the code (e.g. OSS)?
  • Will the database engine run on your target OS? Some databases may be Windows-only or Linux-only.
What was that super-cool zooming app you used during your demo???
I was using Zoomit, written by Mark Russinovich.

Where can I find more information about the stuff you talked about today?
Here are some informational links from today's talk:
There are a few more resources we didn't talk about, but should still be valuable:
  • Windows Azure Open Platform Video Series. This is a 6-part introductory video series I co-created with a coworker, looking at Windows Azure's openness around Compute, Data, and Dev. The data sessions cover a few NoSQL types (with demos).
  • Book: NoSQL Distilled
  • Book: Seven Databases in Seven Weeks
  • Neo4j data set: Cineast movie data. This is the basis for my Neo4j demo. Even though I only showed people and friendship relationships, the data also contains great movie info to navigate.
If you'd like to get in touch:

Thursday, August 15, 2013

Azure Open Platform video series - Episode 1: Open Compute Platform

Last year, my coworker Ricardo Villalobos and I visited several cities worldwide, delivering an all-day Windows Azure Open Platform Summit. This one-day event covered compute+networking, data, and the developer story from an open source perspective. This included several languages (.net, python, php, and node.js) as well as several NoSQL databases (Azure Table Storage, MongoDB, Cassandra, and Neo4j).

A few months later, we decided to record a 6-part video series covering the highlights of these topics. Each episode runs about 15 minutes. The first two segments were just published, and I'll update this post as the rest of the series comes online.


Episode 1, Part 1 - Open Compute Platform: PaaS, IaaS, and Virtual Networks

Episode 1, Part 2 - Open Compute Platform: Connectivity; Web Sites


Enjoy!

Tuesday, July 9, 2013

MongoLab extends Windows Azure MongoDB offering with 8GB Replica Sets

If you're using MongoDB in Windows Azure, you may already be aware that, aside from self-hosting, you can take advantage of Hosted MongoDB. One such provider, MongoLab, has been offering a free-tier offering, with up to 500MB, for a while now. However, that might be a bit limiting if your app is past the "just getting started" point.

Good news: MongoLab now has a Replica Set offering for Windows Azure, supporting databases  up to 8GB! You can set this up through the Azure Store as well as through the MongoLab portal. If you go the Store route, you'll see both the Free and Paid options:


Now just confirm payment and voila - you have a replica set database, with up to 8GB storage! These replica sets run in Windows Azure Virtual Machines in either US East or US West data centers, so it's best to colocate your application in one of these data centers as well, to take advantage of MongoLab's hosted MongoDB service.

If you need a larger database, you'll still need to go the self-host route, but if 8GB works for you, this is a very easy way to get up and running (since there's no database for you to install).

For more information, check out MongoLab's official blog post.

Monday, May 6, 2013

StackOverflow Azure Contributions: April 28-May 4

Happy Monday! Here are my StackOverflow answers for Windows Azure questions, covering April 28 through May 4. If you see some that you agree with (or disagree with, though I hope that's not the case!), please vote on the answer. This helps others when visiting these questions and answers in the future.






Friday, May 3, 2013

Speaking at MongoDB NYC June 21st!

I'm excited to announce my upcoming talk at MongoDB NYC: Building Hybrid MongoDB Apps on Windows Azure! I'll be co-presenting with Brian Benz from MS Open Tech.


Full session abstract:
Between IaaS, PaaS, and SaaS, Windows Azure has a veritable cornucopia of services and features to help architect hybrid apps. In this session, we'll show a multi-tier twitter-tracking node.js app pushing MongoDB data to Azure Web Sites using WebSockets, with PHP and ASP.NET clients for the Web and the desktop. You'll see how this can be easily done with Virtual Machines, Virtual Networks, stateless Cloud Services, and Web Sites.

This is a fun talk with a cool demo app!

The registration link is on the main event page - just scroll down a bit and register through Eventbrite. See you there!



Tuesday, April 30, 2013

StackOverflow Azure Contributions: April 14 - April 27

This week's post combines two weeks of StackOverflow answers. Last week was a bit hectic, as I flew DC-->Seattle (team meetings) -->San Francisco (customer visits) -->Louisville (CodePaLOUsa conference) -->DC in 5 days, then scrambled to Northern Virginia to help out with the Global Windows Azure Bootcamp. That, along with painful airport delays due to the Air Traffic Control furloughs, kept my blogging to a minimum (read: zero).

Whining and rambling aside: here are my StackOverflow contributions from April 14-27. Strangely, three of these have been closed by the Community at Large (2 of which I disagree with their closures).

  • Determining how many messages are on a Service Bus queue (link). This talks about the Queue Description API. Note: This is different from Storage Queues, which have a simple ApproximateMessageCount property on a queue.
  • Windows Azure Security? (link). This talks about connecting to an Azure-hosted VM with a database server, but limiting access. This question was closed due to being better suited for a discussion rather than a programming question (since there really is no direct programming question). However, I do believe you can upvote the question or my answer, since I feel the content is relevant and useful.
  • Azure endpoint monitoring: memory usage (link). This answer goes over options to monitor an Azure application, with both Microsoft solutions (e.g. MetricsHub) and 3rd-party solutions (e.g. NewRelic).
  • Optimize Windows Azure Table Storage? (link). This provides some insight into table storage scalability.
  • Windows Azure: What is the use of Internal IP addresses? (link). This discusses external IP (assigned to an entire deployment) vs. internal communication between virtual machines in the same deployment or talking over a virtual network.
  • DTC is disabled on SQL Azure; how to enable it? (link). This is about Windows Azure SQL-as-a-Service, vs. full SQL Server. Puzzling that this question is closed, as it relates to a programming feature of SQL...
  • How hard is it to upgrade an Azure Virtual Machine? (link). This answer shows how to change VM size via PowerShell. I don't quite understand why the question was closed (aside from it not being a programming question), as it does involve API calls (via PowerShell), and I do consider that peripherally programming-related (and I call this out in the comments under the original question). I do believe you're still able to upvote the question or one of the answers.