Author Archives: Sakari | @sakarinahi

About Sakari | @sakarinahi

CEO (read: developer) @ Kompozure Ltd. Interested in cloud computing (Azure) and emerging technologies, Windows Phone, SOA and synergies between things. Twitter: @sakarinahi

What’s the difference between Azure and AWS Marketplaces?

Yesterday when Amazon introduced AWS Marketplace we had a lively discussion during lunch about it and its counterpart Windows Azure Marketplace. AWS Marketplace is a new thing, so I thought I’d blog about some differences between AWS Marketplace and Azure Marketplace.

The purpose of both marketplaces is the same: to provide an online market where customers can find and buy services. Both marketplaces handle customer subscriptions, provisioning and billing.

Differences between marketplaces stem from the differing nature of cloud environments. As you well know, Windows Azure is a Platform-as-a-Service while AWS is an Infrastructure-as-a-Service.

Amazon AWS Marketplace

Following the nature of Infrastructure-as-a-Service, AWS Marketplace offers a wide variety of server images. These server images have been created by different sellers, and they can contain custom software.

Customer always pays the normal fees of AWS usage, and also for the seller’s proprietary software and/or support. Products in AWS Marketplace are thus composite products, and they can be crudely categorized:

  1. AWS service + proprietary custom software + possible support from seller
  2. AWS service + open source software + support from seller
  3. AWS service + open source software

Total costs per category:

  1. Customer pays for the usage of proprietary software – this can be with pre-existing licensing, SaaS-like monthly payments, EC2 instance-dependent hourly rates, or however the seller it defines. Customer also pays for the support and AWS usage.
  2. Customer pays for the support and AWS costs.
  3. Customer pays for the AWS costs only.
Regarding support: Interesting question in some cases is what is the scope of the seller’s support? Are some sellers only supporting their own proprietary software? What about the operating system itself? This could be dependent on seller, and I suspect something that is good to check.

All costs (except for required pre-existing licenses for some proprietary software) are part of the AWS bill.

Example of a product: LAMP Stack – Web Stack (MySQL) provided by TurnKey Linux

  • This product contains a popular open source platform of Linux, Apache, MySQL and PHP/Python/Perl
  • Seller TurnKey Linux offers a forum support and their brand of LAMP Stack
  • Cost options for this in EU West:
         EC2 Instance Type   Software   EC2  Total
         Standard Micro  $0.00 /hr  $0.025 /hr  $0.025 /hr
         Standard Small  $0.015 /hr  $0.09 /hr  $0.105 /hr
         High-CPU Medium  $0.02 /hr  $0.186 /hr  $0.206 /hr

Example of another product: Alert Logic Threat Manager for EC2

  • This product contains Alert Logic’s Threat Manager for EC2 (Network Intrusion Detection service)
  • Cost for this in EU West:
         EC2 Instance Type   Software   EC2  Total
         Standard Small  $0.48 /hr  $0.09 /hr  $0.57 /hr
         Standard Medium  $0.89 /hr  $0.18 /hr  $1.07 /hr
         High-CPU Medium  $1.64 /hr  $0.186 /hr  $1.826 /hr

Windows Azure Marketplace

As a Platform-as-a-Service type cloud environment, Windows Azure Marketplace offers customers finished SaaS-applications and datasets. Something to note is that applications can also be building block components for other applications (e.g. logging service).

Both applications and datasets often have a possibility for trial subscription.

Applications

Applications often have basic SaaS-type billing where customer pays a fixed amount per month according to number of users or application edition. To help potential customers find all suitable SaaS-services, Marketplace also contains a catalog of Windows Azure applications that cannot be subscribed to through Marketplace itself. At the time of my typing this, there are almost 600 applications of this type.

Example of an application: Maximizer CRM Live
- This product is a CRM with per user per month payments
- 1 user license costs $49/mo, and 10 users is simply $490/mo

Datasets

Marketplace DataMarket offers premium datasets. Datasets can contain any data, and Marketplace offers data via multiple interfaces (REST, SOAP, OData, straight SQL). The border between applications and datasets can get a bit hazy: for example there exists a dataset for validating, parsing and geo-locating phone numbers, even though that sounds like a full service/application.

At the moment there are 57 free datasets and 77 paid datasets in Marketplace. Free datasets include data like election voting information, weather data, stock exchange data, twitter user importance data etc.

Paid datasets have a fixed cost with a limit on transactions/other metric per month.

Example of a paid dataset: Microsoft Translator
- Microsoft Translator delivers automatic translation of a text
- Cost is determined by the amount of characters translated per month
- Less than 2 million characters is free, while 4 million is $40/mo, and 635 million is $5000/mo

Summary

AWS and Azure are in competition in a sense that they are both cloud environments, but because of their differing philosophies their competition is rarely direct. It is the same with their Marketplaces.

In general when talking about cloud environments, customers need to think about their requirements. If they want to comprehensively administer their virtual environments outside their on-premises infrastructure, then AWS might be the way to go. If they feel like taking care of the application should be enough, maybe Azure is the answer.

Azure Marketplace offers finished services in the form of applications and datasets. AWS Marketplace offers servers containing environments or even finished applications. Logically there is a place for competition there, but I suspect that both markets will attract different kind of sellers, due to the difference in philosophies. Ultimately these two markets sell different products.

Very crudely put, it is a bit like comparing two hotels: other rents hotel rooms for whatever purpose, while the other sells experiences, e.g. golfing experience, including hotel room and services.

I like how in some cases these two Marketplaces can have great synergy together. Imagine a boss somewhere saying: “I want to see stock exchange changes cross-referenced with weather data, tomorrow! With my Ipad!” What to do?

Well, the (stressed out) developer can get the development environment from Amazon AWS with 1 click, she can get all the data in standard format from datasets in Windows Azure Marketplace trial subscriptions, and then she can deploy her application to either AWS or Azure. All she needs is a laptop and a network connection.

Future is great.


How to copy SQL Azure database to local SQL Server

A friend asked me couple of weeks back how to migrate data from SQL Azure to on-premises SQL Server. I told him, and didn’t think more of it.

However, last week I upgraded my notebook with a new SSD hard drive, and while I briefly thought about cloning, I decided to re-install everything. Which isn’t a big thing at Kompozure because of good images and all the data in the cloud.

Anyhow, at some point I had to copy some existing production SQL Azure databases to my local development SQL Server. My friend’s question came back to me then, and I decided to blog about this.

Basically I can think of four different methods for cloning SQL Azure database to local SQL Server:

1) SQL Server’s SSIS (SQL Server Integration Services)

2) Command line utility bcp

3) Azure Data Sync

4) 3rd party tools like SQL Azure Backup by Red Gate or SQL Azure Migration Wizard from CodePlex

For the purpose of making a single copy/migration, my personal favorites are SSIS and SQL Azure Migration Wizard.

Before doing anything else:

  • Go to your Azure Management Portal, and check that you have access to your SQL Azure from your IP (click on images to view them in full size)

SQL Azure's Firewall configuration

NOTE: If you enter a number in Rule Name-field, portal throws a cryptic error (e.g. “Home2″ fails)

SQL Server’s SSIS

This option is good and easy, if you have SQL Management Studio in use.

1) Create your local database in SQL Management Studio

2) Right click on your database and choose Tasks > Import Data…

3) Set “.Net Framework Data Provider for SqlServer” as Data source

4) Configure data source: Password, User ID, Data Source (simply your SQL Azure FQDN) and Initial Catalog

SSIS Data Source Configuration

5) Click “Next” until you get to choosing tables, where you shouldn’t choose any sys.-tables

Choosing tables in SSIS

6) Done

Command line utility BCP

BCP (Bulk Copy Program) is good for creating your own scripts. You can also use queryout-option with SQL Azure starting with SQL Server 2008 R2.

1) Command: bcp database.schema.datatable out filename -c -U username@SQLAzureServerName -S tcp:servername.database.windows.net -t “|”

BCP for SQL Azure

Azure Data Sync

This option is good for recurring synchronization of data, and also in situations where there are multiple databases either in Azure or on-premises.

1) First “Provision Data Sync Server” in Management Portal’s Data Sync-section (simply select region)

2) Select “Sync between On-Premise and SQL Azure Databases”

Azure Sync: Begin

3) Set up sync

3.1) Name (any name goes)

3.2) Click to add an On-Premise SQL Server

3.2.1) Add a new SQL Server, and set it up for Bi-Directional

Azure Sync: Adding local SQL server

3.2.2) Download and Install a new Agent to your local SQL Server computer: when typing user credentials in installer, remember to insert them in form domain\user, even if the user is in local computer – otherwise installer gives a quite cryptic error

3.2.3) In Management Portal Specify Agent Name and Generate and Copy Agent Key to clip board

Azure Sync: New Agent

3.2.4) Launch Agent in your local computer

3.2.5) Click Submit Agent Key at top and paste copied Agent key

3.2.6) Register your local database (test connection before saving)

Azure Sync: local Agent

3.2.7) Select database in Management Portal and Finish

Azure Sync: Select local database

3.3) Click to add an SQL Azure database

3.3.1) Insert server name, database name and credentials and click Test before clicking Add

Azure Sync: Hub

3.4) Set sync schedule and conflict resolution (in my case Hub wins)

3.5) Define Dataset (Select All if you want to sync all tables, but with this it is easy to only sync a subset of tables too)

3.6) Click deploy from top and sync begins

Azure Sync: Synchronizing

Note: Sync uses additional tables in your database for syncing purposes

SQL Azure Backup by Red Gate

This free tool is great for backing up SQL Azure or storage. It seems a bit slower than other choices though.

1) Download from http://www.red-gate.com/products/dba/sql-azure-backup/

2) Insert required information to tool, select direction (backup or restore), and press Next and Start Backup

SQL Azure Backup by Red Gate

3) Wait for it.. And done!

SQL Azure Backup: Done

SQL Azure Migration Wizard

This tool rocks. And is free.

1) Download from http://sqlazuremw.codeplex.com/

2) Select Analyze / Migrate: SQL Database in first screen

3) Select Source: Server Type = SQL Azure, and fill in your SQL Azure database information (remember username@server-syntax)

SQL Azure Migration Wizard: Select Source

4) After source is configured, you get to choose tables and then wizard collects the data (with bcp :) ). This takes a while.

5) Target Server is our local SQL Server (instead of what wizard proposes)

SQL Azure Migration Wizard: Select Target

6) Execute the final script and all done

SQL Azure Migration Wizard: Summary

And that’s it! I hope this post gave you some options and tools for moving your SQL Azure data around.


Tips for Windows Azure in production usage

Kompozure has published a guide about Azure and its benefits. Guide is meant for IT management and others who are interested in the future direction of the company infrastructure. Thus the guide is not too detailed technically, since the purpose is to present some features of Azure as well as some ways of leveraging them.

One chapter is about usage tips. In this post I’ve written some of them down:

  • Always use two instances when the application is in production. This ensures availability and load balancing.
  • Rather buy the smallest possible instances – in this way you can fine-tune your usage (and bills)
  • Don’t create too many worker roles, but rather merge multiple background tasks in one role to minimize usage
  • Have your data in the same center as your application – data transfer from data center to other costs
  • You can import data to Azure for free, but outbound data is billable
  • If your service is using CDN, set your cache time to as long an interval as possible – in this way you ensure that CDN is not too often copying your data to its cache

Unfortunately our guide is not yet translated in English. If you feel like you would like to read this guide, please send us an email to info@kompozure.com in order to hasten us in translation work.


Startup and success

It is an exciting time to be an IT-startup like Kompozure. Disruptions are coming from right and left, caused by both emerging technologies and new social and agile working methods. Here I’ve written of five topics that are, in my mind, the most important principles for a successful (IT) startup. I believe these principles are applicable in other industries as well.

Lean Startup

Lean Startup is a term coined by Eric Ries to denote a no-nonsense startup.

There are many benefits to the rarefied atmosphere of engineering here in Finland, but one of the negative side effects is our desire to always build something perfect. Of course in the end that is a good thing, but during the startup phase this poses 2 problems:

  1. Building anything perfectly takes time and money
  2. Who decides what is perfect?

Ries’ concept Minimum Viable Product argues that the product needs to be presented to the potential customers as fast as possible. And this does not mean that the product should bring you the morning paper in addition to slicing the toast – the product should be presented the moment it solves even one problem.

This tight focus makes certain that we do not waste any time on developing useless features. It also makes predictions more accurate.

Agile

Time shouldn’t be spent on planning, but doing.

Your business plan may be valid for making your vision clearer, but does it have to be fine tuned to death? When you proudly present the first version of your product to potential customers, who then insult you by calling it crap – what do you do?

Startups can be forced to change direction many times when searching for the business model – and because of this no time can be spent fine-tuning things not related to customers. Different situations have to be approached as possibilities for new product and business visions.

Like Steve Blank says – No plan survives first contact with a customer.

Networking

You may well be enlightened and very aware of trends in your industry, but as a startup your influence and market share are inconsequential. Truth is that your competitors are familiar with the market in ways that you are not. Besides, none of your information will stay secret anyway.

You will get the best results by creating a strong network of partners by openly taking part in relevant forums.

Kompozure takes part in different IT-related events and is also searching for the best spot in the Microsoft partner network. Startups that specialize in Microsoft’s technologies should at least investigate the opportunities offered by BizSpark. We are also located in the Aalto University’s Start-up Center, where it is easy to go to talk to similarly spirited entrepreneurs.

At the moment the coolest vibes for entrepreneurs in Finland can be found in events organized by Aaltoes and Arctic Startup.

Social Media

Social Media offers startups a unique way of presenting itself in the light it wishes. Your company doesn’t have to be a cold, faceless entity anymore – it also can have an identity. The people following your company are potential customers, competitors, employees or investors. It is hard to over estimate the value of SoMe.

A modern startup thinks about ways to utilize FacebookTwitterLinkedin and other relevant social hubs straight from the beginning.

Cloud Computing

Investing in monstrous amounts of hardware is no longer the thing to do. Kompozure has 13 different services to handle web sites, SoMe, CRM, billing, document management, source code management, etc. What we don’t have are racks, servers or admins for these systems. The feeling of freedom is exhilirating.

Kompozure pays an easily estimated bill monthly for its usage, and thus our costs are, in nature, operational expenditures. We strongly subscribe to Microsoft’s technologies like Windows Azure and Office 365. In addition there are several viable services on the market for specific requirements, like the Finnish Wiila-service.

For a bootstrapping startup these kind of modern options are especially juicy.


Kompozure’s mojo

We founded this company because we couldn’t find anything comparable from Finland.

We wanted to

  • Offer quality in a totally transparent manner
  • Work with new, disruptive technologies
  • Focus on competency and expertise

We ended up specializing in Microsoft’s Windows Azure- and Windows Phone-platforms. Neither of these technologies are widely adopted in Finland yet, but international forecasts are positive, and even here the pace is picking up..

However, we are not selling these technologies for their sake, and we will tell you straight if something is not a fit for your organization. We at Kompozure have used Microsoft’s cloud services since the beginning (Office 365 + Azure), and we have been using Windows Phones actively for a year. Our belief in these technologies is founded on the fact that we like to use them.

A different kind of expert company

Now is a good time for an agile, fair and transparent startup to be founded. We differentiate ourselves through our personality and our ‘can do’-attitude. We want to uphold a working environment where it is easy to be passionate about new technologies. We believe, that personal improvement leads to the company’s success. All this also makes sure that we do not offer you impersonable service – from us you get a passionate expert.

Transparency isn’t just talk to us. We offer you our cloud service with which you can track your project’s development in real-time. In addition you get to take part in our in-house project meetings. In effect this means that you hear about our blunders at the same time as us.

We believe that a totally transparent work place leads to a good team spirit internally and externally. In this kind of environment it is also easy to make agile decisions together for the common good of the project.

Contact us, and we will show you the future of software development.


Follow

Get every new post delivered to your Inbox.