RailsConf 2015
Leveraging Microsoft Azure from Ruby

Leveraging Microsoft Azure from Ruby

by Eduard Koller

In the video titled "Leveraging Microsoft Azure from Ruby," presented by Eduard Koller at RailsConf 2015, viewers are introduced to using Microsoft Azure within Ruby applications. The session emphasizes the integration of Microsoft Azure's services with Ruby through practical examples and demonstrations.

Key Points Discussed:
- Introduction to Microsoft Azure and Ruby Integration: Eduard Koller, a program manager at Microsoft, shares his aim to bridge Microsoft technologies with open-source platforms, particularly Ruby.
- Overview of Azure SDK for Ruby: The Azure SDK allows developers to access various Azure services programmatically from Ruby applications. Users can generate Ruby SDKs for their API applications on Azure, utilizing provided metadata to create client SDKs easily.
- Creating Virtual Machines with Azure: Koller highlights how users can quickly set up virtual machines (VMs) on Azure through pre-configured images, particularly mentioning the Bitnami stack containing Ruby on Rails, MySQL, and additional gems.
- Azure for Beginners: He discusses the option to create a trial Azure account for free and the availability of Azure passes for those not wanting to enter credit card information.
- Managing Various Services: The SDK supports managing Azure services like storage, SQL databases, and virtual networks. Koller encourages community feedback as the SDK is still a work in progress and hosted on GitHub.
- Making Applications Cloud-Portability: The goal is to ensure that Ruby applications can be deployed on any cloud service with minimal changes required.
- Utilizing Autorest for SDK Generation: He explains how Autorest can generate client libraries for APIs in languages including Ruby, facilitating seamless integration.
- Introduction to Spartan Browser: Koller discusses the upcoming Spartan browser and how developers can test their applications remotely via Azure Remote App, enabling compatibility checks across different devices without needing direct installation.
- Containerization Support: Azure also supports containerized deployment, like Docker, allowing for enhanced flexibility in application deployment.

Conclusion: Koller closes the session by sharing excitement about the potential of combining Azure and Ruby, reinforcing that the tools and services discussed can greatly enhance developers' capabilities for building and deploying Ruby applications in the cloud. The video encourages community contribution and experimentation with Azure's offerings.

Overall, Eduard Koller’s presentation provides valuable insights for Ruby developers looking to leverage Microsoft Azure services effectively, highlighting significant resources and tools available for integration.

00:00:12.160 Okay, good morning!
00:00:27.519 How many of you here have used hybrid services before? Wow, that's nice!
00:00:40.079 Before we get started, I will tell you a bit about what happened today. First of all, a little bit about myself: I'm a program manager with Microsoft.
00:01:07.119 You can find me on Twitter if you have any questions. For the past several years, my focus has been on trying to close the gap and build bridges between Microsoft technologies and various open-source software platforms.
00:01:22.880 Ruby is a part of that. Today, I will give you an overview of what you can do with Ruby on the Microsoft cloud, because, like any cloud, there are numerous services available including storage services, authentication, databases, and more.
00:01:39.759 I will also talk about the Azure SDK for Ruby, which allows you to programmatically access these services from your Ruby applications. I'll explain how to generate Ruby SDKs for your API applications. Basically, if you create a web API application on Azure, you automatically receive the metadata to create your SDK, including Ruby integration.
00:02:15.840 You just run a script, and you get your client SDK for free, which you can use in your Ruby application. Finally, I will share information about the upcoming web browser from Microsoft, a project called Spartan, and how you can test your web applications with this browser without having to install it on your system or run Windows.
00:03:13.360 Feel free to ask questions at any time. I might not be able to answer some of your questions right away, but I’ll make sure to follow up later. Just to clarify, I’m not a Ruby developer; I will probably need to take some questions offline.
00:03:42.959 So, if you want to get up and running quickly with Ruby on the Microsoft cloud, the good news is that there are several pre-configured virtual machine images available. You can create a virtual machine without installation needed; everything is already set up. Once you have an Azure subscription, you can create a VM and connect to it easily.
00:04:45.241 One of the best images we have is created by a company called Bitnami, which offers a full stack including Ruby on Rails, MySQL, Nginx, and various gems. You just go to the Azure portal, select the image you want, specify where you want to deploy it and the size of the virtual machine, and you're pretty much good to go.
00:05:20.000 Additionally, if you want to try Microsoft Azure, you can create an account and receive a certain amount of compute hours for free. Normally, when you register for a trial account, you need to enter your credit card information; however, I also have a few Azure passes available if you prefer not to provide your credit card.
00:06:03.440 Now, about the Azure SDK for Ruby. It is a work in progress, and it aims to help you manage various Azure services including storage, service bus, compute services, virtual machines, SQL databases, and virtual networks. The code is available on GitHub, and since it’s open source, we welcome any feedback you might have.
00:06:32.800 Here's a quick example of how to use it: when creating a storage service, you create a storage account and then create a container. The Azure storage service uses containers which are similar to directories. You can manage files, or 'blocks', within those containers.
00:07:36.319 The goal of this library is to make your applications cloud-portable. You should be able to write your app once and deploy it on any cloud without needing to change the code. Although this doesn't happen perfectly, it minimizes the required changes when switching from one cloud to another.
00:08:15.680 To enhance functionality, based on the Ruby SDK, we created an Azure Monitor for Farm. If you are using the Farm library in your app, now you can also target the Azure cloud. This is an open source project and currently a work in progress, so we’d love your feedback as you try it out and potentially contribute.
00:09:29.200 Once you have a REST API, if you have enough metadata about the API, you should be able to create a client design that handles the serialization of objects easily. Azure features a tool called Autorest, which can generate client libraries in various languages, including Ruby.
00:09:55.280 You can generate client libraries for your APIs, and when creating an Azure API application, you receive sufficient metadata to download the description in JSON format. This allows you to easily create a Ruby client SDK that you can use immediately.
00:10:57.440 Moreover, for well-established services, Azure provides API connectors. For services like Facebook and Salesforce, Azure allows you to download Swagger files to quickly generate client SDKs for those services. I can show you how to use it with video in this context by generating a Ruby SDK on-the-fly to send messages.
00:11:49.920 We're also working to utilize Autorest to generate an actual Azure Ruby SDK, ensuring that our SDK is always up-to-date. If there is a change in the cloud-based APIs and services, we will simply regenerate everything to keep you current.
00:12:55.680 As many of you may have heard, Microsoft is working on a new web browser codenamed Spartan, which will replace Internet Explorer as the default browser for Windows 10. To help developers test their web applications, Microsoft allows you to run this browser in the cloud using Azure Remote App.
00:14:15.279 You can connect to Azure and get an instance of the browser running in the cloud, allowing you to test your web application using your own URL. Although performance may vary, it’s a great way to see how your app behaves in different browsers.
00:14:26.399 Let’s take some questions, and depending on the time we have left, I’ll also provide some demos.
00:15:08.079 Yes, does this offer support for containerized deployment, like Docker? Azure does support that. It has been announced that several projects exist to deploy containerized applications on Azure.
00:16:35.680 In the Azure Marketplace, there are lots of pre-configured virtual machine images. You can choose your configurations like cores and CPUs, specify the DNS, and then deploy your cloud service.
00:19:00.559 Let me show you how to test your Spartan browser using Azure Remote App. You can access the browser directly in the cloud and test your websites or applications.
00:20:16.559 As you can see, you can type in your URL to test how your application behaves in Spartan. This service works from any device, including Mac, Linux, and Android tablets.
00:22:58.799 Are there any questions about what we’ve covered so far?
00:23:10.720 Let me show you the API apps and how they generate their SDKs.
00:25:05.039 Here are some sample API apps I've created. Each app provides specific functionality and can help you understand how to generate client SDKs using Autorest.
00:26:30.480 By the end, I hope you see how easy it is to generate Ruby SDKs by simply clicking a button on your Azure Portal.
00:29:38.159 This is just the beginning, and I’m excited to see the potential of Azure and Ruby combined.
00:35:14.480 Thank you for joining me today to learn about leveraging Microsoft Azure from Ruby. I hope you found it helpful and informative!