The silly woes of working with Azure storage development

I am working on a backup solution for Azure SQL. There is a manual way to backup the databases, but who wants to be the guy pressing the button every day or worst case scenario every week. At least there is a manual way of performing the backup, though, I do not know if the recommended way does a copy first to ensure database integrity.

To be honest, this is not the first backup solution that I have had to come up with, but is the first one for azure. Azure complicates things. Backing up an on premise solution, or backing up the information on a machine to local storage is a breeze. Being able to check on the status, and knowing system state at all times is not an issue. Move the solution to a remote PaaS based architecture and the simplicity goes away.

Once again, I run into issues of moving from working with Amazon AWS to Microsoft Azure. In AWS, the API is well documented and samples abound. Move to Azure, and it is akin to finding a needle in a hay-stack. It is not that the information is not there, it is just that there is not as much of it.

So while I am working on this project, I stumble over issue after issue working with Azure. The storage stuff just seems to trump everything else. Which classes to use, which libraries to import, how to import it into your project. All these are small things that crop up.

I just spent an hour debugging a problem to find out that I did not use Nuget to install the libraries. This is just killing me on some levels. Guess I should do a writeup on how to use Azure with C#, but right now, I have to finish the base work on this app.

Posted in Cloud Computing, General | Tagged , , , | Leave a comment

Wireless Card Woes

So I have a machine at home that I use for games and some development work. As I play games on it, it runs Windows 7. Overall I have not had any issues with it. However, recently there was an issue where the OS became corrupted. To fix it, I rebooted from a restore point and everything was fine.

Or so it seemed at first.

The problem is that the network connection would be extremely slow, and at times just quit working. For extended periods it would be fine, and then just flake out.

While this is a desktop machine, the system connects to my network wirelessly. When this problem would crop up, I would check the network, and it would show connected. I would try to disconnect and reconnect, resetting the router, and other tests. The results were never consistent and I have to admit I was at a loss as to what the problem with the machine was.

In all of my wisdom, I did what any self-respecting Linux person would do. I decided that slapping Linux on the machine would help me root out what the problem was with the machine. So I grabbed Fedora19 (Why not, it is only beta software), and got busy doing the install.

The new Fedora19 install is interesting, and went without a hitch. I was able to resize my partition on my main drive and install Fedora with nary an issue. (Gnome3 is a disaster)

So, now I had linux running on my workstation, and everything seems right as rain. At this point, I am thinking that something is wrong with my windows install. Maybe there is a virus that the antivirus did not find, or some other such issue.

The goal then was to move around all my files, validate my backups, and move on. At this point the wireless quit working. Doh. After a couple of minutes of research, I see that I am getting no packets sent between my machine and the router. My laptop was still working fine, and pulling down stuff from online.

Long story short: don’t forget that hardware fails. NICs in particular can fail in some mighty strange ways. Thinking back, I have had more NIC failures over the years than in any other piece of equipment, though losing hard drives would be a close second.

Posted in General | Leave a comment

Window Azure Management Console and API

Cloud environments have become standard fare. Being able to manage them without having to log into a gui from the provider is also something that has become quite standard. This is especially true if you follow the concept of DevOps, or are big into automation.

This brings me to the Microsoft Azure cloud. While I have spent most of my time working with Amazon Web Services (AWS), I have been tasked with some work on the Azure cloud environment. Compared to the AWS management interface, the Azure management console seems clunky and slow. Actually, there is no getting around the fact that the current iteration of the Azure management console is terribly slow. This is not a show stopper, but when we consider a reasonable response on a sight to be 3 seconds or less, then a page that take 10 – 20 seconds to completely render is not ok.

There is also the issue that unless your monitor spans 2 screens, certain values get clipped or are just impossible to see. It would seem that while it might be aesthetically pleasing to the eye, the usefulness of the console is severely lacking. Often you must go 4 to 5 levels deep to find a bit of information, and then go to 2 or 3 other screens to gather all the information that is needed. They also try to keep the same look and feel for all the services, whether or not it provides a good means of view or searching the data.

As a result of how long the console takes, how difficult it is to find information, and to automate some tasks, I attempted to find the documentation on the REST API that is supposed to be able to provide this functionality. Finding the documentation to access Amazon Web Services took all of 2 minutes. I figured that it would take a correspondingly short amount of time to find the Azure API documents.

I could not have been more wrong. Microsoft has provided a series of dead ends, documents that point to nowhere, and information that is just useless.

The fact of the matter is that Azure for IaaS is an afterthought. If they want to be a serious player in the IaaS market, they will need to improve/release a REST API that can be used by any language. I found more information in 5 minutes on how connect to Amazon AWS and Rackspace (Openstack) than I found in 4 hours of searching for Azure.

 

Posted in Cloud Computing, General | Tagged , , | 2 Comments

What is DevOps?

DevOps has become a new buzzword lately. And while I think it is a good thing that a portion of the tech crowd has a name for what they do, I do not think everyone has a good understanding of what DevOps truly is. Ask 5 people what exactly DevOps is, and I believe you would get 5 different answers. Of those, I do not know how many would even overlap.

The problem is that DevOps grew out of a need. The need was that of the system admins that were more than just system admins. These are the guys that had to take a piece of code that was thrown over the fence by development and make it work. The people who needed to be able to cobble together a new environment at a moments notice, and continue with their day-to-day work as well.

The answer is automation. While there may be many definitions of what DevOps is, at its core, I believe that DevOps is about automation. To me this is the key differentiator between Operations and DevOps. Operations is the group that clicks a button or follows a script when they have an issue. They are the ones that build servers by hand. They are the ones that do not know how to code.

Yes, that is a defining element when you get to DevOps. The personnel know how to code. They might code in python, perl, ruby, or even powershell, but that person will know some code. It might not be the cleanest or the most eloquent, but it is that code that will automate tasks for them. If someone says that they are part of DevOps, and you ask them what languages they know, and they come up with none. Stop. Do not continue, because that person does not understand DevOps.

The largest problem with DevOps is that people believe that it has to be tied with development. And by that I mean software development. I think this is a mistake. DevOps is a cultural shift to a dynamic, automated, environment. This means that it could be applied to an internal IT group, to a development group that is actively build and rolling out new products.

So back to the original question. What is DevOps? The answer is that is a group whose focus is on automation and repeatability. By this definition, it can take many forms, and that is OK.

Posted in Cloud Computing, General | Tagged , , | Leave a comment

Weekly accomplishments thread

Quick recap of the accomplishments I have had this week.

For the first time in a long while I reached 10 miles running this week. While it might not be much for some, it is a good start for me. The goal was to get to 12 miles this week, but that failed to materialize.

I did not swim once this week, or get on my bike. With a tri scheduled two weeks from today that is not a good thing. However, I am starting off the week with a mountain bike ride.

Goal for next week is to get to 12 miles running. Swim 3 days and to cycle at least 2.

Posted in General, Triathlon | Tagged , , | Leave a comment