<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.9.2">Jekyll</generator><link href="http://www.vmikeb.com/hitechhifi.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="http://www.vmikeb.com/hitechhifi.github.io/" rel="alternate" type="text/html" /><updated>2023-01-12T16:19:43+00:00</updated><id>http://www.vmikeb.com/hitechhifi.github.io/feed.xml</id><title type="html">vMikeB</title><subtitle>Mike Burkhart's Blog - You're here!</subtitle><entry><title type="html">Pardon our dust…</title><link href="http://www.vmikeb.com/hitechhifi.github.io/Hello-World/" rel="alternate" type="text/html" title="Pardon our dust…" /><published>2022-11-01T00:00:00+00:00</published><updated>2022-11-01T00:00:00+00:00</updated><id>http://www.vmikeb.com/hitechhifi.github.io/Hello-World</id><content type="html" xml:base="http://www.vmikeb.com/hitechhifi.github.io/Hello-World/">&lt;p&gt;I’ve been updating vmikeb.com with a much needed “complete overhaul” and am transitioning all content from Wordpress to Jekyll. Please be patient while I bang my head against a wall wondering “why didn’t I do this while I was on vacation?”&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/hitechhifi.github.io/images/cat.jpg&quot; alt=&quot;cat.jpg&quot; /&gt;&lt;/p&gt;</content><author><name></name></author><summary type="html">I’ve been updating vmikeb.com with a much needed “complete overhaul” and am transitioning all content from Wordpress to Jekyll. Please be patient while I bang my head against a wall wondering “why didn’t I do this while I was on vacation?”</summary></entry><entry><title type="html">Fun With Iot Buttons</title><link href="http://www.vmikeb.com/hitechhifi.github.io/Fun-with-IoT-Buttons/" rel="alternate" type="text/html" title="Fun With Iot Buttons" /><published>2017-11-02T00:00:00+00:00</published><updated>2017-11-02T00:00:00+00:00</updated><id>http://www.vmikeb.com/hitechhifi.github.io/Fun-with-IoT-Buttons</id><content type="html" xml:base="http://www.vmikeb.com/hitechhifi.github.io/Fun-with-IoT-Buttons/">&lt;p&gt;or “How I made my life easier, with the push of a button”&lt;/p&gt;

&lt;p&gt;Quick post for a neat little project I whipped up in no time today: a “get me my stuff” button thanks to a Amazon IoT button and Lambda functions, or serverless compute for the cool kids out there.&lt;/p&gt;

&lt;p&gt;Let’s start with “The Internet of Things” -this is a very generic term to describe the modern day ability of wireless connectivity being applied to “things”. Refrigerators, toasters, cars, washer/dryers, alarm clocks, and even clicky-buttons that can order you Tide, amongst other things. Basically:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/hitechhifi.github.io/images/1x9y37.jpg&quot; alt=&quot;1x9y37.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Amazon made &lt;a href=&quot;https://aws.amazon.com/iotbutton/&quot;&gt;IoT buttons&lt;/a&gt; available in March of 2015, and one of my &lt;a href=&quot;https://twitter.com/StevePantol&quot;&gt;coworkers&lt;/a&gt; had waaaay too much fun with harassing another fellow &lt;a href=&quot;https://twitter.com/eric_shanks&quot;&gt;coworker&lt;/a&gt; via an IoT button and Slack integration. No really, the  &lt;a href=&quot;http://stevedotnet.com/fun-with-the-aws-iot-button/&quot;&gt;insult generator&lt;/a&gt; is probably one of my favorite hacked together pieces of “hilarity ensues” and made my first few weeks at Ahead even better.&lt;/p&gt;

&lt;p&gt;Fast forward to now, where two years later we have an 18 month old who sleeps and eats like it’s his job (because, well, it is) and a wife who is tethered to this tiny one by duty and sustenance. Before we had a  beautiful red-haired viking child – she was a yoga instructor, studying to become a certified doula, full time farmer, amazing chef, had a social calendar like a church bingo card, voracious reader and world traveler with Yours Truly. Needless to say, she’s a busybody, and this phase of life doesn’t enable her to do much “busy” aside from when the baby naps. …unless by doing a thing it wakes the baby.&lt;/p&gt;

&lt;p&gt;Why is this important? People forget things when they’ve been chasing a child all day long. Sometimes you forget where your phone is, and now your kid wants a nap and you’re stuck nursing him to sleep for an hour. Sometimes you forget where your book is, and same event happens. Maybe you don’t know where your glasses are… etc. Problematic when you’re running on few hours of sleep, yes?&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/hitechhifi.github.io/images/aws_iot_button.png&quot; alt=&quot;aws_iot_button.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;“Do the thing, Internet of Thing(s) button!”&lt;/p&gt;

&lt;p&gt;Essentially I took action to place an IoT button in our bedroom that’s accessible to her at all times. That way the most common of needs are tended to at the push of a button, and everyone is happy. Here’s how I did so:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Not wanting to re-create the wheel, I followed &lt;a href=&quot;https://www.hackster.io/33996/the-i-miss-you-iot-button-b0112a&quot;&gt;this blog&lt;/a&gt; on how to register and setup an IoT button&lt;/li&gt;
  &lt;li&gt;I modified their code to do what I wanted in a simple  fashion.&lt;/li&gt;
  &lt;li&gt;I tested this code.&lt;/li&gt;
  &lt;li&gt;It worked, so I pushed to prod on a Friday!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So what does the code look like?&lt;/p&gt;
&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;//declare those variables!
'use strict';

//we'll use AWS' available SDK - use a current one if possible
const AWS = require('aws-sdk');
const SNS = new AWS.SNS({ apiVersion: '2010-03-31' });
const PHONE\_NUMBER = '1-555-876-5309'; // Your number goes here

//define an event handler
exports.handler = (event, context, callback) =&amp;gt; {
 
//it's good to log things
console.log('Received event:', event);
console.log(\`Sending SMS to ${PHONE\_NUMBER}\`);
 
 // select one of the predefined messages
 var singleClick = 'Water Please!';
 var doubleClick = 'I lost my phone, help!';
 var longClick = 'ERROR-404: WIFE NOT FOUND';
 
 //we can safely assume single click as default
 var resultMessage = singleClick;
 
 if(event.clickType == &quot;DOUBLE&quot;){
 resultMessage = doubleClick;
 };
 if(event.clickType == &quot;LONG&quot;){
 resultMessage = longClick;
 };
 
 //populate our array with appropriate variables
 const params = {
 PhoneNumber: PHONE\_NUMBER,
 Message: resultMessage,
 };
 
 // result will go to function callback
 SNS.publish(params, callback);
};
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Coding projects like this don’t have to be owned only by grey-beard, old-hat JS hackers - I greatly believe in standing on the shoulders of giants. Understand the concepts, have a basic knowlege of coding, and the rest falls into place here.&lt;/p&gt;

&lt;p&gt;There’s nothing complicated behind making this project your own; even if you don’t know JavaScript, all you have to do is replace &lt;a href=&quot;https://youtu.be/6WTdTwcmxyo&quot;&gt;Jenny’s phone number&lt;/a&gt; above with your own, and then change the value of the strings after the vars “singleClick” “doubleClick” and “longClick” to whatever message you want.&lt;/p&gt;

&lt;p&gt;Anything I can do to learn more and make my house a happy home – made this an easy vacation project!&lt;/p&gt;

&lt;p&gt;Thanks for reading! vMikeB out&lt;/p&gt;</content><author><name></name></author><summary type="html">or “How I made my life easier, with the push of a button”</summary></entry><entry><title type="html">The Why Of Hci</title><link href="http://www.vmikeb.com/hitechhifi.github.io/The-Why-of-HCI/" rel="alternate" type="text/html" title="The Why Of Hci" /><published>2017-07-02T00:00:00+00:00</published><updated>2017-07-02T00:00:00+00:00</updated><id>http://www.vmikeb.com/hitechhifi.github.io/The-Why-of-HCI</id><content type="html" xml:base="http://www.vmikeb.com/hitechhifi.github.io/The-Why-of-HCI/">&lt;p&gt;Helping businesses solve problems and make well informed decisions has been my job for the better part of the last decade. While I find this ultimately enjoyable, there still remains quite a bit of misinformation in the field: just a few months ago a customer informed me that “virtualization just isn’t ready for production environments.” – this, after almost 20 years of x86 virtualization!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/hitechhifi.github.io/images/omg-1934214-300x200.jpg&quot; alt=&quot;omg-1934214-300x200.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;OMG Becky…&lt;/p&gt;

&lt;p&gt;Hearing comments like this made me want to help dispel some of the FUD out there, clear the fog of war and get things straight. So let’s start with a technology du jour: Hyperconverged Infrastructure.&lt;/p&gt;

&lt;p&gt;Hyperconverged Infrastructure, or HCI as it is commonly known today, is the collapse and consolidation of traditional storage architecture into x86 compute architecture. Plainly put: traditional storage architecture is a boxcar attached by couplings to a locomotive engine. SAN/NAS architecture has historically been coupled by transport mechanism (Fibre Channel, FCoE, IP networks, etc). HCI is a cargo plane, engines attached to the same fuselage that provides the storage.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/hitechhifi.github.io/images/barcode-616035-300x215.png&quot; alt=&quot;barcode-616035-300x215.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Planes, Trains and Automobiles! …and boats I guess. But boats are jerks.&lt;/p&gt;

&lt;p&gt;Why give this example? Well with a train, I can add more engines (compute) without adding more boxcars (storage) or vice versa. I can scale these two domains independently of one another, within reasonable consideration of workload. With a cargo plane, if I need more space for shipping, or I need to get things moved faster, I simply buy a new plane. Now I can buy a plane with similar storage and larger engines, or the opposite is true as well. This can be good, bad, or otherwise, depending on your business application and needs.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/hitechhifi.github.io/images/david-13710-225x300.jpg&quot; alt=&quot;david-13710-225x300.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Nice beard, Goliath! How about a little off the top?&lt;/p&gt;

&lt;p&gt;Much like the “virtualization isn’t ready” comment above, I have heard all throughout my career that HCI isn’t ready for lift-off, even though HCI sprouted its first wings more than a decade ago. Common misconceptions abounded, from “linear scale/growth isn’t how data centers grow” to “the technology is too immature” or “why trust a startup vendor?” Now in the past year, major vendors made some radical marketing pushes, and the gloves have come off – igniting more than a few David and Goliath battles in the HCI space between strong incumbents and newcomers alike.&lt;/p&gt;

&lt;p&gt;Automation and Orchestration, DevOps, Continuous Development and Continuous Integration (CI/CD), and private/hybrid cloud efforts have all created opportunity to help IT move as quickly as the business demands. This is commonly referred to as “at the speed of business,” but I’ve consulted for enough businesses to know that this speed is quite variable indeed!&lt;/p&gt;

&lt;p&gt;As “software defined” becomes more and more the focus of IT, and not the hardware underlay itself, the HCI model becomes increasingly more compelling. The ability to deliver infrastructure capacity as a commodity (Compute hardware, Storage capacity, and in some cases a pre-installed/pre-configured hypervisor of choice) and “plug and play” is beating out traditional three tiered architectures simply by merit of design. HCI is &lt;em&gt;designed by nature&lt;/em&gt; to be node-based architecture that grows compute and storage by some degree with every node.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/hitechhifi.github.io/images/panda-303949-288x300.png&quot; alt=&quot;panda-303949-288x300.png&quot; /&gt;&lt;/p&gt;

&lt;p&gt;But WHY?&lt;/p&gt;

&lt;p&gt;Just like the panda said – why? Why HCI? Think about these choices from a business perspective for a second: traditional three-tiered architecture I need to size, architect and design each separate domain (compute, storage or network) which takes internal expertise or consulting know-how, then I need to cut a Purchase Order (which can take weeks to months, depending on your procurement cycles, management, legal, etc.) Afterwards my delivery lead time can take between weeks to months(!) to receive the new hardware. Next I need to physically rack and configure the hardware, cable (power, network, Out-of-Band management, Fibre, etc.) Now let’s go, right? Wrong! We need to configure OS’s for compute, configure storage arrays / LUNs / Disk Aggregates / Pools, etc. This is all before we even do burn-in testing (for piece of mind) and integration testing to ensure our new infrastructure is healthy before we release it into production.&lt;/p&gt;

&lt;p&gt;HCI by design takes a lot of the guesswork out of the equation. Since storage and compute (don’t forget potentially virtualization) are combined into a SKU-able package, and scale-out by the node, you purchase what amounts to an appliance – a “block” of infrastructure. These nodes are all coupled within software, only physically tethered to each other by way of the upstream switches (usually Top of Rack switches).&lt;/p&gt;

&lt;p&gt;So why do you care? Lifecycle management is made much easier by allowing nodes to be introduced and retired from these environments non-disruptively. I can consume infrastructure capacity on a per-project basis, capitalize the expense, and depreciate the asset easily vs. multiples or  portions of arrays, servers, switches etc. Alternately I can monitor my infrastructures expected growth, operationalize the expense back to different business units via a chargeback/showback mechanism, and move the visibility of IT value up the ladder.&lt;/p&gt;

&lt;p&gt;Lead time to delivery on commodity hardware (servers and hard disks) is also much shorter than lead time on enterprise SAN arrays, full racks of disks (DAE’s), etc.  So from a project perspective, you are already saving yourself weeks of time just by adopting a rapidly deployable, scale-out model.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/hitechhifi.github.io/images/arrows-1915360-300x200.jpg&quot; alt=&quot;business people standing in the dark, with colored arrows going  upward behind them&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Can we get some light in here?&lt;/p&gt;

&lt;p&gt;Lastly the integration of HCI products are normally highly tested before shipping out the door, meaning the amount of risk the business needs to be capable to absorb is minimal. Compare this to the traditional architecture knowledge set needed to architect, design, configure, deploy, manage and maintain/retire monolithic hardware sets. You might just be enabling an FTE to move from putting out fires daily to learning how to connect to a RESTful API with POSTman, or building their first cloud solution using Terraform and creating something of value for both them and your business.&lt;/p&gt;

&lt;p&gt;A piece of advice I was given a long time ago is this: “If you are always reacting to events, then you have no time to create, and true value comes from creation.” The more we can move IT forward, create new innovations and enable positive growth, granular control, and the ability to dynamically shift with demand, the more we can win against our competitors in business.&lt;/p&gt;</content><author><name></name></author><summary type="html">Helping businesses solve problems and make well informed decisions has been my job for the better part of the last decade. While I find this ultimately enjoyable, there still remains quite a bit of misinformation in the field: just a few months ago a customer informed me that “virtualization just isn’t ready for production environments.” – this, after almost 20 years of x86 virtualization!</summary></entry></feed>