Dipping my toes in the IoT pool: Microsoft DevKit IoT Board

In my personal life, I’ve jumped in the SmartHome head first, but I’ve been really reluctant to blur the lines into my professional life. Recently, I saw something that changed all that. The Microsoft IoT DevKit board.

NewImage

What is it?

This is Microsoft hardware product that allows developers to jump into the IoT pool. Specifically, the Microsoft Azure IoT hub pool. This is a very capable board with multiple sensors.

What sensors you ask?

  • Humidity: 
  • Air Pressure
  • Temperature
  • Magnetometer
  • Motion
  • Microphone

Basically, it’s a really good sensor that can grab the majority of the physical measurements that we want to look at in the IoT world. 

What do I do with it?

Right now, this is really just a tech toy for me. I have no specific projects that I’m trying to achieve. Rather this is a device that I’m using to try and really understand HOW the IoT ecosystem works and ensure my employability in years to come. So I don’t have any specific goals, but that’s really ok because Microsoft has been wonderful enough to supply us with the Microsoft IoT DevKit page over at Github which has a few different projects that allow me to grow my skills in several IoT use cases until my own specific use-case pops into my head. 

What Projects are available?

The great thing about the DevKit project page is that there are a bunch of projects that are intended to take us from zero to hero in the IoT developer world. Or at least from noob to semi-competent. 

From basic projects like Connect to Azure IoT hub and Remote Monitoring to more advanced projects like DevKit translator which leverages Microsoft’s Bing to create a speech translator or Shake,Shake for a tweet which integrates motion sensors with twitter.

There are ten projects in all and I wouldn’t be surprised if more projects are released in the future.

What Next?

This is an interesting project for me. It’s not python, it’s not really networking. And I’ve never used any Microsoft Azure services before. So this is going to be an interesting ride.

My plan is to start with the first tutorial, and see if I can bang my head against it until it works. 🙂  Look for that blog soon!

Interested in joining me on the journey? I picked up a board for $39 from DFRobot and it arrived in just a couple of days. If anyone wants to jump in and compare notes, please feel free to reach out. I’m more than happy to share what I’ve learned.

 

@netmanchris

 

Advertisements

Amazon S3 Outage: Another Opinion Piece

So Amazon S3 had some “issues” last week and it’s taken me a few days to put my thoughts together around this. Hopefully I’ve made the tail-end of the still interested-enough-to-find-this-blog-valuable period.

Trying to make the best of a bad situation, the good news, in my opinion, is that this shows that infrastructure people still have a place in the automated cloudy world of the future. At least that’s something right?

What happened:

You can read the detailed explanation on Amazon’s summary here.

In a nutshell

  • there was a small problem
  • they tried to fix it
  • things went bad for a relatively short time
  • They fixed it

What happened during:

The internet lost it’s minds. Or more accurately, some parts of the internet went down. Some of them extremely ironic

UNADJUSTEDNONRAW thumb bbfd

Initial thoughts

The reaction to this event is amusing and it drives home the point that infrastructure engineers are as critical as ever, if not even more important considering the complete lack of architecture that seems to have gone into the majority of these “applications”.

First let’s talk about availability: Looking at the Amazon AWS S3 SLA, available here, it looks like they did fall below there 99.9% SLA for availability. If we do a quick look at https://uptime.is/ we can see that for the monthly period, they were aiming for no more than 43m 49.7s of outage. Seems like they did about 6-8 hours of an outage so clearly they failed. Looking at the S3 SLA page, looks like customers might be eligible for 25% service credits. I’ll let you guys work that out with AWS.

Don’t “JUST CLICK NEXT”

One of the first things that struck me as funny here was the fact that this was the US-EAST-1 Region which was affected. US-EAST is the default region for most of the AWS services. You have to intentionally select another region if you want your service to be hosted somewhere else. But because it’s easier to just cllck next, it seems that the majority of people just clicked past that part and didn’t think about where they were actually hosting there services or the implications of hosting everything in the same region and probably the same availability zone. For more on this topic, take a look here.

There’s been a lot of criticism of the infrastructure people when anyone with a credit card can go to amazon sign up for a AWS account and start consuming their infrastructure. This has been thrown around like this is actually a good thing, right?

Well this is exactly what happens when “anyone” does that. You end up with all your eggs in one basket.  (m/n in round numbers)

“Design your infrastructure for the four S’s. Stability Scalability, Security, and Stupidity” — Jeff Kabel

Again, this is not an issue with AWS, or any Cloud Providers offerings. This is an issue with people who think that infrastructure and architecture don’t matter and it can just be “automated” away. Automation is important, but it’s there so that your infrastructure people can free up some time from mind numbing tasks to help you properly architect the infra components your applications rely upon.

Why o Why o Why

Why anyone would architect their revenue generating system on an infrastructure that was only guaranteed to 99.9% is beyond me.  The right answer, at least from an infrastructure engineers point of view is obvious, right?

You would use redundant architecture to raise the overall resilience of the application. Relying on the fact that it’s highly unlikely that you’re going to lose the different redundant pieces at the same time.  Put simply, what are the chances that two different systems, both guaranteed to 99.9% SLA are going to go down at the exact same time?

Well doing some really basic probability calculations, and assuming the outages are independent events, we multiple the non-SLA’d time happening ( 0.001% ) in system 1 times the same metric in system 2 and we get.

0.001 * 0.001 = 0.000001 probability of both systems going down at the same time.

Or another way of saying that is 0.999999% of uptime.   Pretty great right?

Note: I’m not an availability calculation expert, so if I’ve messed up a basic assumption here, someone please feel free to correct me. Always looking to learn!

So application people made the mistake of just signing over responsibility to “the cloud” for their application uptime, most of whom probably didn’t even read the SLA for the S3 service or sit down to think.

Really? We had people armed with an IDE and a credit card move our apps to “the cloud” and wonder why things failed.

What could they have done?

There’s a million ways to answer this I’m sure, but let’s just look at what was available within the AWS list of service offerings.

Cloudfront is AWS’s content delivery system. Extremely easy to use. Easy to setup and takes care of automatically moving your content to multiple AWS Regions and Availability Zones.

Route 53 is AWS’s DNS service that will allow you to perform health checks and only direct DNS queries to resources which are “healthy” or actively available.

There are probably a lot of other options as well, both within AWS and without, but my point is that the applications that went down most likely didn’t bother. Or they were denied the budget to properly architect resiliency into their system.

On the bright side, the latter just had a budget opening event.

Look who did it right

Unsurprisingly, there were companies who weathered the S3 storm like nothing happened. In fact, I was able to sit and binge watch Netflix well the rest of the internet was melting down. Yes, it looks like it cost 25% more, but then again, I had no problems with season 4 of Big Bang Theory at all last week, so I’m a happy customer.

Companies still like happy customers, don’t they?

The Cloud is still a good thing

I’m hoping that no one reads this as a anti-cloud post. There’s enough anti-cloud rhetoric happening right now, which I suppose is inevitable considering last weeks highly visible outage, and I don’t want to add to that.

What I do want is for people who read this to spend a little bit of time thinking about their applications and the infrastructure that supports them. This type of thing happens in enterprise environments every day. Systems die. Hardware fails. Get over the it and design your architecture to take into consideration these failures as a foregone conclusion. It IS going to happen, it’s just a matter of when. So shouldn’t we design up front around that?

Alternately, we could also chose to take the risk for those services that don’t generate revenue for the business. If it’s not making you money, maybe you don’t want to pay for it to be resilient. That’s ok too. Just make an informed decision.

For the record, I’m a network engineer well versed in the arcane discipline of plumbing packets. Cloud and Application architectures are pretty far away from the land of BGP peering and routing tables where I spend my days. But for the low low price of $15 and a bit of time on Udemy, I was able to dig into AWS and build some skills that let me look at last weeks outage with a much more informed perspective. To all my infrastructure engineer peeps I highly encourage you to take the time, learn a bit, and get involved in these conversations at your companies. Hoping we can all raise the bar collectively together.

Comments, questions?

@netmanchris

AirPlay and a Rowing Machine

Like so many other people in the IT field, it’s not the easiest things for me to find time during the day for all the things I want to do.  Life gets busy and priorities happen. As a single father with three kids, this means that it’s tough to find time to get to the gym.

As everyone’s aware, we’re also going through an intense period of change in the networking world where network engineers need ( in my opinion ) to start broadening their skills sets to include coding, DevOps tools, etc.. There are a LOT of resources out there, many of which are available in video format. 

Whether that’s things like the great all-access pass video library from INE, the video content from Coursera classes, or just Youtube, there is a huge amount of content available to us. 

I’ve got two goals major life goals this year; get back in shape, and gain NetOps skills. Makes sense to combine the two. 🙂  

My Problem

One of the biggest problems that I have is that a lot of this material is BORING. It’s dry. There’s not a LOT of content out there yet that directly applies the skills I want to learn to networking. So I end up having to learn how to use python to convert between Celsius and Fahrenheit. (How’s that going to help me in my career? )

It’s tough to stay awake through a lot of this content. Some presenters make the material better than others, but i often find my mind wandering after the first 5 minutes. If I’m not focused, I’m not learning. If I’m not learning, I need to watch the same boring video until I get what I need from it. 

Sounds a bit torturous, doesn’t it? 

My Solution

When I was studying for my CCIE, I actually had the same problem. Cisco Docs are not exactly the most riveting prose the english language has produced, but I had to learn the material. My solution was to combine physical activity with the study process. Hard to fall asleep when you’re working out, right?

I ended up buying a treadmill for my apartment. Looking back, I can’t even begin to imagine the amount of miles that I walked that year. I can also tell you that I was probably in some of the best shape of my life. I would walk and read as long as I could. Then I would stop, do some other physical activity pushups, sit-ups, whatever..  and then go back at it again. For months on end, that’s what I did every night. ( Single with no kids in those days ). 

Interestingly enough, what I found is that I was able to retain more information when I was studying while working out then when I was just hitting the books at the table. I’m sure there’s lots of studies about how the increased blood flow to the brain during physical activity makes learning more effective, but I will leave that to as an exercise in google-fu for the reader to find them. 

Fast forward 10 years, and I don’t have to flip pages anymore. The video revolution means that I can hit at least two of the learning paths, visual and auditory, as well as get a work out in at the same time. Efficient, and productive. 

My solution is built around Apple products, but feel free to substitute in what ever technology gets you to the final goal.  

In a nutshell, the setup looks like this

  • Flat screen TV
  • Apple TV connected to TV
  • Rowing Machine in Front of TV

So basically, I airplay the video content from whatever device I have handy, jump on the rowing machines, and I stay awake through some REALLY boring material while burning some calories.

Other Tricks

For those interested, here are some other tools that make this flow a bit more smoothly

Screenflow  – This application allows me to capture video content with the system audio. Great stuff for making sure you have content offline. 

iFlicks2  – This application allows me to edit the metadata on the videos I create with Screenflow. Most of the time, I end up taking an entire play list worth of content, organizing it as a TV Season and then add the episode numbers to the videos so that they play in order. Very slick and means I don’t have to manually intervene when watching a play list. Not to mention, I can also then sync the material to my devices and review the content when I’m trapped in a plane with no wi-fi. 

 

And You?

Have any productivity/study/health tips that you want to share? Feel free to post in the comments below.

 

@netmanchris

How to be a Network Jedi

So it’s almost 2012 and as I get a little older each year, I’m trying to become more comfortable with my role as a mentor and influencer of the next generation. When I look at my kids at Christmas and watch all the little behaviors and endearing little qualities that come from me, it’s really amazing how much influence that we can have simply by the example we set in the world.

In light of that, I’m going to start the New Years resolution a little bit early this year, and just throw out the goals that I’m going to try to live professionally this year, and hopefully rolemodel out to the next generation.  To be honest, it’s not really a New Years resolution since these are pretty much the goals I tried to live by last year too. But here they are. Hope you enjoy!

 

Funny enough: This was 99% written before @cloudtoad posted this great post on www.packetpushers.net

Note: So, I blatantly stole these images from a Youtube talk by Artur Bergmen of http://www.fastly.com. You should check it out because it’s funny, and it’s wisdom.

20111226-225745.jpg

  • 1) Learn the basics

I’ve had the honor to learn from many great masters in my years in the martial arts, and one of the lessons that really stuck with me is that the difference between a student and a master is the quality of the basic movements.

As I go into 2012 again, I’m going to really re-focus on learning the basics as I go for another round of Cisco Trivial pursuit. ( CCIE renewal ). Understanding the basics of technology will help you in so many ways and solve so many of the other mysteries for you.

2) Come ready to learn

We have been blessed with a career where we are rewarded for our insatiable curiosity.Respect how amazing a gift that is and embrace the learning opportunities which are placed before us everyday.

How does this work? Why did that break? What happens when I touch this button?Hmmm. I wonder why it did that?

I’m going to continue on in 2012 asking these questions, preferably in the safety of my own lab. 🙂

Yes honey… I promise I’ll get that fixed!

WARNING: PLEASE DON’T TEST OUT THESE THEORIES ON PRODUCTION NETWORKS. CUSTOMERS GET TESTY.

  • 3) RTFM – Don’t ask stupid questions.

There’s nothing more annoying to me when someone asks me a question that can be found in the first 5 hits of a simple google search ( http://www.lmgtfy.com ). A stupid question is one that you obviously have spent no time trying to figure out. One that it takes me one google search to find, or one which you should have known in the first place.

I’m not saying don’t ask questions, because those often lead to design breakthroughs or really great learning experiences because of the nuance brought on by that particular angle of a question. But also, don’t be afraid to sit down and go through the manuals to see if it’s actually documented somewhere. Don’t be afraid to read through some blog posts, and also, embrace social media. Twitter has an enormous amount of shared wisdom and experience.

If you are going to ask a stupid question; come prepared. Don’t waste someone’s time.

Warning: Ask stupid questions on twitter with caution. Someone might call you stupid.

  • 4) Figure it out

If Rule #3 fails you and you can’t find the answer that you’re looking for, then you need to go back to rule #1. If you know your basics, there should be almost no problem that you can’t break into its composite parts and figure out what’s happening.

20111226-225449.jpg

Networks aren’t magic. Packets don’t teleport from point A to point B, and there are certainly no gnomes, trolls, magics elfs, or unicorn tears. ( sorry guys! ). If you don’t understand how they work from the basics, you stand no chance of understanding how they work when things get complicated.

VxLAN/NVGRE, LISP, and other overlay technologies are just that; Overlays. They don’t fix the underlying issues, and they can actually abstract the problem. As Artur says in the video, if you don’t understand the stack, you can spend a lot of resources trying to fix the problem at the wrong layer. This is the biggest issue I have with the overlays is that it will abstract the system and potentially allow the various data center factions to continue not-talking to each other. This is not a good thing.

  • 5) Learn about the other parts of the system

I believe that the network folk are actually the most well rounded out of the IT disciplines. (personal bias notwithstanding )

You will often find that network professionals were once programmers, or server/os guys, or even applications guys. ( Or in the case of Voice Network guys, they still are! ).

I actually believe that this is a result of the fact that we are always the ones who get blamed and we need to understand the system to prove our innocence. ( MTTI: Mean Time to Innocence )

As blah-blah cloud becomes more and more of a reality, and technologies like Openflow start to abstract the reality of the underlying system, it is becoming more and more important for SOMEONE to have an omniscient understanding of the datacenter.

That someone could be you. 🙂

20111226-230528.jpg

If anyone has any additional goals for the year, please feel free to post below. I’d love to hear.

@netmanchris

Through the eyes of a child

Wrote this last summer and apparently didn’t publish. Still amazes me.

Listening to the packet pushers podcast there was a listeners question on studying and learning. Coincedently, I had just had one of the most amazing experiences of my life. I had just watched my 6 year old son ride his bike alone for the first time.

We’ve been working on it all summer, and he was more scared than anything else. It was late September and he was discouraged and didn’t want to practice anymore, and I literally had to force him back on that bike. But I knew that this day was the day.

And it was.

The look of absolute wonder on his face at his new, seemingly superhuman, ability to ride his bike by himself was awe inspiring. And it got me thinking just how lucky we are in this industry.

We have the privilege every day to learn. what a great job we have.