All posts by Joshua Howard

Why Availability Isn’t Serving Your Users

Is your service highly available?

Is it 99.999% available?

The real question is, does it matter?

Availability is defined as the total ‘uptime’ of a given service, over a window of time. This metric is typically counted in minutes, and those with experience in a Software-as-a-Service world, typically want to know, “What’s the Availability of the Service?”

Availability becomes important when users are vetting which vendors or businesses they would like to work with. A high level of availability, provides a level of confidence with the vendor or business, so that users know that when they need to use the service, it will be online and available.

But, as technology grows, and man does it grow fast, availability is beginning to become a buzz word, and here’s why.

Availability is Beginning to become a Buzz Word

A service or application can be highly available. It can be online and available for 99.999% of the year, but the real question is, is it working as end users expect it to work?

Let me explain.

Advertisements

Availability, calculated by the number of minutes a service is online over a period of time, is often calculated that simply. Often times a simple ‘ping’ or health check against the hardware and endpoints of the service, is all that is needed to get an accurate reading on availability, but this doesn’t account for bugs, degradations, partial outages, low performance, or missed customer expectations.

If a user attempts to use a service your team is offering, and it’s online, but it takes far to long to complete it’s work, does the user really care that the service is available 99.999% of the time?

Availability metrics like this tell you almost nothing about the reliability, or the quality of the service, beyond that it is online. With the growth of cloud computing and big players like AWS, standing up a handful of servers that are able to reach five nines of availability has never been easier. Being highly available is no longer something that separates the good from the great, it’s a flat out expectation.

Being Highly Available is no longer something that separates the Good, from the Great. It’s a flat out Expectation.

Not to worry though, where High Availability is now becoming the norm, business specific SLO’s and SLA’s, will be the next phase that separates the good from the great. Proper SLO’s that are built around specific business use cases, that meet customers expectations, will soon become the topic of conversation that replaces the low value data around availability.

Advertisements

Superior SLO’s that are instead based on the business, and not the technology, will reign supreme. SLO’s such as:

  • Users can execute the search functionality, and it completes successfully 99.9% of the time
  • Users can execute a job that completes successfully 99.99% of the time
  • Users can perform the key functionality of the service 99.9% of the time

These types of business specific SLO’s that ensure, not only is the system available, but that it’s working exactly as it’s expected to work, will be the next wave of, “How available is your service?”

I highly encourage all teams adopting SRE cultures and SLO’s, to take that next step into what meeting customer expectations is really all about. When your next business opportunity arises and the crowd wants to talk about “Availability” they’ll be blown away by the fact that you’re able to provide a level of detail around the health and quality of your services, that goes so much deeper and is so much more impactful, than simply, “Availability.”

Knowing When to Jog & When to Sprint On Your Goals

In my previous post, Find Your Why, Repeat Your Why I’ve talked about life and motivation working like a roller coaster. That there are going to be up’s and down’s for everyone, and that recognizing this, and knowing how to work with this natural flow, can help you not only overcome the lows, but also to keep things in perspective.

Something I’ve found to be incredibly helpful, is understanding and applying the differences between standing still, jogging, and sprinting in anything that you do.

Standing still is exactly what it sounds like. It’s when we’re not moving at all, when we feel stuck, when we’re not making any progress towards our end goals. Standing still is quite possibly the worst place we can be.

Just as iron rusts from disuse, stagnant water putrefies…

If you’re feeling stuck, and find that you’re standing still, one of the quickest way to get unstuck, is by taking the smallest step you can. A Little Victory can go a long way in getting you from standing still, to jogging, and once you start jogging you can turn your focus to keeping that pace.

Advertisements

Start by thinking of the smallest, littlest step you can take towards one of your goals. Have a goal to read more? Just open the book and read one sentence. Have a goal to exercise more? Just do one sit up. Any goal that you have, think of the smallest littlest bit of work you can do towards that goal, and do it. By taking this one small step, your suddenly, no longer standing still. Now if we can do this again the next day, and then again the next day… you’ll suddenly realize, you’re jogging.

Jogging through life is a solid baseline to making great progress towards your goals. Too often people try to work back-and-forth between standing still and sprinting. They’ll procrastinate working on their goals until they have a sudden burst of motivation. Then they’ll shift to sprinting until they gas themselves out and wind up standing still again. This goes back to the up-and-down, motivational roller coaster, that people ride.

One is always greater than zero. This mindset will help you keep ‘jogging’ towards your goals. 1 > 0

What we want to try and avoid is riding a roller coaster that has such steep inclines and declines. What we ultimately end up with is a lot of hard work on a sprint, only to lose most of that work while we’re standing still. Anytime we end up in the standing still scenario, our goals become farther and farther away. This is what makes jogging and little victories so important.

By getting into a good pace of jogging, and working towards our goals every day, we raise the bottom line of our effectiveness. Instead of taking a zero for a long period of time while we stand still, we’re getting a one, and one’s start to add up quick. Think about it, if you only even did the smallest amount of work towards a fitness goal, say one pushup a day. By the end of the year, you’ll have completed 365 pushups. If you’re not a person who normally works out, that’s most likely 365 more pushups than you did last year, and that’s pretty solid progress.

Advertisements

Knowing how to go from standing still to jogging is a must. Where I find I tend to struggle is recognizing when to go from jogging to sprinting and back down to jogging. What I’ve found to work the best over the course of my life is that if we can get ourselves to jog at a regular daily pace, we then just have to identify the right times to sprint.

Sprint ahead on your goal when the daily routine starts to become boring.

I’ve found two moments that have really stood out to me as great times to sprint. The first, when the jog has started to become mundane. When you usually start jogging, it’s new. Your body and mind are adapting to the new pace and the new way your day is unfolding, but after a while, your body adapts and what was once difficult, and interesting, has now become boring and repetitive. These are some of the best times to start sprinting.

In these cases, I use sprinting to provide some variety form the mundane and to push my regular routine a little bit farther. If I’m reading one page a day from my book, I might sprint and read for 30 minutes, and then adjust my “jog” to start reading two pages a day. This short sprint tends to recharge my mindset on what I’m working towards, reinvigorating me, and then I slow back down from the sprint, but at a higher level jog. This has been great for pushing forward when things get dull.

Sprint ahead on your goal when things start to “feel” right.

The other time I love to sprint on something I’m working towards is when the opportunity feels right. I say, “feels” because it’s not always something that you can really quantify. It’s more of that feeling of knowing everything is starting to line up, you’re feeling great, and deep down you just know, it’s time to sprint. As I’m writing this article, this is exactly the sprint I’m taking. I’ve been working on this article a little bit at a time, but today, for whatever reason, this piece really just felt right to sprint on, so here I am, typing away.

Advertisements

These types of sprints tend to be more about opportunity. They aren’t an attempt to push yourself farther or to try and overcome routine. These types of sprints fall more into the creative category. When you’re just, “feeling it” sort of sprint. These are important sprints to recognize and take advantage of, because they tend to come and go as they please and are not always aligned with our plans, however they can help us make great strides towards our goals. When ever you’re starting to feel, that little bit of extra motivation and you can see the pieces falling into place, it’s time to sprint!

Remember that sprinting towards something can not only help us take great strides towards the things we’re working for, but can also be used to shake things up and help get us to that next level of jogging.


The Error Budget

In two of my previous posts I’ve covered the SLO and SLI concepts, if you’re not familiar, I would start there:

What is an SLO?

What is an SLI?

But this post here, is really the cream of the crop when it comes to Site Reliability Engineering. The Error Budget, as it’s so called, is what takes the SLO and the SLI concepts from above, and gives us something actionable to work with. Let’s dive into the specifics.



The Error Budget concept, originally created by Google, bridges the gap between Product teams and Engineering teams. Where Product teams want new, bigger, and more features, Engineers are historically burdened with balancing deliverables, technical debt, and well… keeping production from crashing on a Friday afternoon.

…keeping production from crashing on a Friday afternoon.

But no more!

The Error Budget aims to strike a balance between what’s wanted, like new features, against what’s needed, like performance. It works by taking the concepts of SLO’s and SLI’s, ties them together and draws a tight line in the sand on when it’s time to shift gears and focus on technical debt.

Advertisements

This is accomplished by defining SLO’s around an applications performance. Should the application have 99.9% uptime? Should the application be able to handle a request in under .5 seconds? Should the application degrade gracefully in the event of a hardware failure? These are all various areas an SLO can aim for, and once we have the SLO, it’s a matter of implementing the right SLI, or measuring stick, to ensure we’re meeting our targets.

So what actually happens when we don’t meet our objectives of an SLO? What happens when our application isn’t available 99.9% of the time? What happens when that last feature push started a slow degradation of our applications ability to handle a request in under .5 seconds? The Error Budget happens.

The Error Budget is a formal agreement, written and signed off on, by all of the involved parties, and simply states what must happen in the event of a missed SLO. The Error Budget is not a punishment or tool to place blame. The Error Budget is a gauge to let us know, “Hey we’ve done too much and neglected some key areas of service we feel are important, let’s take some time to set that straight.”

The Error Budget is not a punishment or tool to place blame.

When an SLO is missed, the Error Budget covers what happens next. In most cases, a feature freeze is put into place for a certain number of days. This allows the engineering team to shift their focus and prioritize work that will directly improve the SLO target. If the application were to suffer an outage and miss it’s 99.9% uptime target, the engineering team can now focus on, not only how to fix the issue, but how to prevent it from occurring again in the future.

Advertisements

So why is it called an “Error Budget” anyways? It’s named this way because you do in fact have a “Budget” that allows teams to identify when it’s acceptable to take risk and when it’s time to pivot. One thing you do not want to do, is approach a team that has experienced and well-trained members, and try to implement concepts and red-tape that slow them down. If you have a team that can develop features and deliver on performance at the same time, why would you want to disrupt that?

With an Error Budget, you don’t have to worry about that because the budget aspect gives teams the room they need to work quickly and efficiently, and only when an SLO is missed, does the team need to shift gears and change direction. Therefore the actual budget is calculated as a small percentage of hitting a target at 100%. Let’s look at an example:

A product organization decides that they want to ensure their application accepts incoming requests, without errors, 99.9% of the time, over a 30 day period for all of their 1,000 customers. On average, let’s say customers submit roughly 100,000 requests over that same 30 day period. Our budget then becomes 99.9% of 100,000, which allows our teams 100 failed requests before our SLO is violated and our Error Budget is enacted.

Advertisements

If you have a team that can develop features and deliver on performance at the same time, why would you want to disrupt that?

By operating in this fashion, our system can handle a small hiccup without us having to freeze all features and enact the Error Budget. We can also allow our teams to take small, acceptable risks, knowing that if that mid-day release for that key customer goes wrong, and we miss our SLO, it’s time to rethink business hour deployments, BUT on the flip side, if that release only interrupts the system for a moment, and only 10 failed requests are counted, the team is still within their SLO and should carry on as they were.

The Error Budget is more than just a way to tell teams when to pay down technical debt. It provides us the foundation for measuring and accepting risk, helps us to bridge the gap between features and reliability, and finally gets product teams and engineering teams speaking the same language.

I encourage you to take a look at Google’s example Error Budget and hit me with any questions you may have!


How Do You Know What To Do For Your Workout?

I’ve been asked this question quite a few times so it’s time to get some answers:

“What exercises should I do?”

I put this post together to help people find a little bit of direction when they’re trying to figure out, what they actually need to be doing to get where the want to go.



The tricky part in all of this, is that, depending on what you want to accomplish, the path to take is different, and while I can’t cover every possible exercise or routine that would work for everyone, I can give you some ideas on how you can build your own fitness plan that meets your unique situation and needs.

Advertisements

The best place to start, is in getting a solid understanding of what you want to accomplish. Some people just want to ‘lose weight‘ or ‘gain muscle mass‘ but the problem with that is that it’s not a very clear goal, and vague goals lead to vague results.

Vague goals, lead to vague results.

Wanting to just ‘gain muscle‘ is really a fairly general goal and I think it leads to this hang up on what you actually need to do to reach your goal. Instead, we should aim for goals that are a little more specific.

If you want to ‘lose weight‘ where do you want to lose it from? Some people want to focus on the mid-section, or their arms, maybe the lower body, or maybe all three places. It’s okay to want to improve in multiple areas but you need to be specific on what you want to accomplish.

If you want to ‘gain muscle mass‘ where do you want that muscle mass at? Are you looking for broader shoulders, a bigger chest, maybe bigger arms, or possibly all three? It’s better to have 3 specific goals you want to accomplish than 1 general goal.

Advertisements

Knowing what you want, in a very specific manner, is exactly where you want to start. And it’s important to understand that if you want to target multiple areas, you should do it in phases. What I mean is, don’t try to ‘gain muscle‘ in every single area of your body all at once. That’s going to lead you to burnout, which means eventually you’ll quit, and what good does that do?

Instead we need to focus on playing the long game. Start small, add as we go, and give our bodies a chance to adjust. Once you’ve got a good idea of what our goal is, and we’ve narrowed it down to something specific, the next thing you’ll want to do is identify a single exercise that works towards that goal.

For example, if you want to work on your mid-section. Start by adding crunches to your routine. Do 1 more crunch, than you did the day before, for 7 days straight. Don’t miss a single day.

If you want to build a bigger chest. Start by adding pushups to your routine. Do 1 more pushup, than you did the day before, for 7 days straight. Don’t miss a single day.

Advertisements

When you get to day 7, take 5 minutes and Google, “core exercises” or “body weight chest exercises” and click on the first article. Look for an exercise that looks interesting and add it to your routine. This is exactly how I’ve built every single one of my routines, ever. You start small, you research what you need, and you build into your routine.

This is exactly how I’ve built every single one of my routines, ever.

Now on day 8 you should have 2 exercises in your routine. Maybe you have crunches and heel touches, or maybe you have pushups and decline pushups. Your count for the first exercise should be up to 8 repetitions and for your new exercise it should start at 1. Do this for another week, and then add 1 more additional exercise that you’ve researched and are interested in.

Do this for about 5 weeks. This will give you 5 different exercises, all focusing on the goal you want to accomplish, but allowing your body to build up to it, and adapt to the increased challenge of the routine. When you get to week 6, look and see if you can change your routine by swapping out an exercise or adding additional sets.

Advertisements

This is enough information to get you started on any workout routine. What you’ll find is that building the routine isn’t all that hard, it’s starting it and sticking to it day-after-day that most people fail at. If you struggle in these areas I have plenty of tips on how to overcome those challenges.

Be sure to reach out to me on what is most challenging for you and follow below for more tips!

If you want more tips read: 3 Tips to Stick Your Workout


How To Wake Up Early In Two Steps

4 AM

That’s how early I was waking up and hitting the pavement to run. Every morning…

It was crazy, to be honest.

But I was extremely motivated for an upcoming 5k that I was competing in and it was giving me huge drive to be up, and running, before work.



Eventually, I was able to run my 5k and still maintain my early routine, but around Christmas I got sick… Which basically reset my sleep schedule and made it extremely difficult to start waking up early.

Now I’m back on the path to waking up early and I want to share the tips that are working for me and how you can implement them into your own routine, if you also want to become an early riser.

1. Make It Automatic

Have you ever heard of Pavlov? Maybe you’ve heard of Pavlov’s dogs? If you haven’t, Pavlov was a Russian scientist who, in the 1890’s, conducted a small test, and learned that he could train his dogs to do things, just by playing a particular sound.

His test showed that he could ring a bell, show a dog a treat, and the dog would salivate in anticipation of getting that treat. After a few rounds of this, Pavlov could then remove the treat from the equation, simply ring the bell, and the dog would still salivate, despite there being no treat.

Now, we’re not dogs, but understanding that we can train our bodies using similar methods, can help us to become early risers. What we are aiming to do is train our bodies, so that when it hears the sound of the alarm clock, we immediately get out of bed.

Advertisements

We start this process by setting our alarm clock for the normal time that we already wake up. So if you typically wake up at 7 AM, and rush to get to work. That’s okay. We want to start training our bodies with the normal time we already wake up, even if we are always in a rush.

It’s very important that we start where we already are. Don’t try to be wishful and think, “Oh I’ll start at 6:45 today” when you haven’t even been getting up at 6:45 since pre-covid….

Set your alarm for when you already, normally, get out of bed.

Now when that alarm goes off, before you turn the alarm off. Jump out of bed. Literally, get out of bed the second that alarm goes off. This shouldn’t be too terribly difficult if you’ve set your alarm for the correct time you already, naturally get out of bed, so… again…be sure you’re setting the correct time.

The key element here is that when your body hears that alarm sound, it’s response is to get out of bed quickly. What we’re essentially doing is training our bodies response to the sound of the alarm, similar to Pavlov training his dogs to salivate, at the ring of a bell.

Advertisements

2. Make It Small, but Always More Challenging

Along with training our bodies we also need to progressively move our wake up time towards our target time. So if we want to train our bodies to wake up at 5:45 AM, we need to start working in that direction. The trick to doing this is actually understanding how our minds tend to work as we aim for a goal.

When we set goals, we naturally tend to think, “What’s the truest way to reach my goal?” but this also tends to include, “What’s the fastest way?

Our minds naturally want to find the most efficient path to reaching our goal, so that we can obtain that goal, and benefit from it, but this is also where we make our mistake.

What I’ve seen happen in myself, and other people, is that we tend to get caught up in getting to our goal. It overwhelms the actual process to getting to that goal, and the moment anything happens that looks like it might not be as easy to reach your goal as you thought, things start to fall apart.

BUT, there’s a way around this and it’s as simple as not worrying about how quickly you are getting to your goal. When we’re talking about waking up early, and our target time is 5:45 AM, we should not be taking 15 minute jumps on when our alarm goes off, compared to when we typically wake up. We should instead slowly, over-time, move our alarm clock backwards.

Advertisements

This small process, of making these tiny incremental changes, along with training your body to react to the sound of your alarm clock, will train you to wake up early.

I’m currently dialing my alarm clock back 5 minutes everyday as I work towards my goal time. I’m sure I will have a day where I miss or I will reach a time where it seems like I can’t wake up.

When that happens, I’ll adjust my alarm clock back 1 minute to my last successful wake up time instead. Then I’ll slowly adjust back by 1 minute, until I feel like I’ve overcome that more challenging spot in the process. Then I’ll go back to adjusting by 5 minutes.

The idea is that we want to make these tiny steps every day. We don’t want to try and rush to reach our wake up time. People rush to reach their goals all the time. It’s why fad diets are a thing and why they don’t work. Don’t rush. Let the process roll out overtime and put more focus on just always make a small improvement and you’ll get there.


Fitness Invention Ab Rollers & Row Handles

I’ve recently obtained some new workout equipment (yay Christmas) from Fitness Invention and wanted to provide a follow up on the equipment, it’s quality, and my experience using it. You can catch the unboxing video on my Instagram account:

Let’s start with the Row Handles:

Fitness Invention Double D Handle Cable Attachment + 2 Gym Handles + 3 Snap Hooks – V Bar Cable Attachment – Close Grip Row Handle – V Handle Cable Attachment – Cable Machine Attachments for Gym

The Row Handles set comes with a great quality D Handle. It’s extremely solid and has some good weight to it. The grips are durable and help to maintain my hold on the bar when I’m mid workout, and starting to pick up a sweat. I really love the D Handle bar itself because it forces you to keep your form and hands tight to your chest on your pulls.

Advertisements

The Gym Handles are also really great quality. I’ve been using them for over a month, multiple times a week, and the material has held strong. The grips are softer and easier to squeeze, but mostly I’m impressed the material does so well when I get into my higher weight rows.

As a little extra, the set comes with some Carabiner clips that are some of the toughest I’ve used. My previous set would start the bend as I went up in weight. This set is solid. I think I could max out my pull machine with these clips and they’d still hold strong. The set comes with three clips, two medium and one large.

Now on to the Ab Roller:

Fitness Invention Ab Roller Wheel – 3-IN-1 Ab Wheel Roller with Knee Mat and Jump Rope – Ab Roller Wheel for Abdominal Exercise – Ab Workout – Home Workout Equipment – Abs Wheel Roller – Abs Roller

For starters, the great part about this Ab Roller is that it comes with some extra toys. You get the Jump Rope and Knee Pad as a bonus. When you consider what you’re paying and what you’re getting, this is already a steal.

When it comes to the Ab Roller itself. I love it and am using it every week. Assembly was incredible easy (see the Instagram video above). You just slide the two handles through the center and you’re done!

Advertisements

The quality of the roller is top notch as well. I’m weighing in at 190 lbs and the roller has no problem rolling with my weight. The foam handles are comfortable to grip and the way the roller is designed, it’s easy to roll to the left and right sides and target the obliques.

I highly recommend not just this Ab Roller but anything Fitness Invention. I’ve been scooping up more and more of their gear and every item has been top quality (plus the extra jump rope and knee pad you get)! Looking forward to trying out more and adding to my collection.

Write, The Right Tasks Down

There’s a bit of research available that claims writing down your goals, actually improves your chances of reaching them. I personally think that writing down my own goals has historically helped me find direction, when I had too much going on. Where I struggled wasn’t so much with writing down goals, but writing down the right tasks, to reach those goals.



Most often my To Do list would look something like this:

  • Make Grocery List
  • Check Kids Homework
  • Wash the Laundry
  • Let the Dog Out
  • Fix the Bathroom Light
  • Cook Dinner
  • Give the Baby a Bath…
Advertisements

I really didn’t have any problem getting through this To Do List on most days, but what would happen is that after I had worked through my list, I would lay down in bed and think…

“I didn’t workout today…”

“I didn’t do any better on trying to quit smoking…”

“I didn’t drink enough water…”

“I didn’t work on writing my book…”

“I didn’t move my goal forward…”

Basically, I had done all of the things I needed to do that day, which felt productive, but I didn’t actually get any closer to reaching any of my goals.

Now, don’t get me wrong. My kids homework needs checked, the laundry needs done, and I’ve got to make dinner. I’m not about to say those things don’t matter or don’t need done. That’s not where this is going.

Advertisements

What I am about to say, is that when I was writing my to do list, I was writing the wrong things down. By writing my day-to-day chores and responsibilities down, I was filling my mind, or rather, distracting my mind, from the bigger picture. I was busy thinking, “What do I need to do today” instead of thinking,

What do I need to do today that will get me somewhere in a year?

This is where the shift in mindset needs to be to really get on track for any goals you have. Don’t write down the things you already know you need to do. If you miss doing dishes one day, I promise you. I PROMISE YOU, you won’t care in 10 years.

But, if you keep doing your dishes everyday, instead of going to the gym, I PROMISE YOU, you will care about that in a year.

What I’ve found works best is to create a To Do list that focuses just on your goals and what you need to get done today to move your goals forward.

Completely eliminate anything that doesn’t directly relate to your goals.

  • Drink water
  • Plan some healthy grocery items
  • Workout
  • Write
  • Read
  • Practice a skill
Advertisements

These are the things that you want to be writing on your To Do list and by doing so, what I’ve found, is that I was able to focus on these things, get them done, and then still have time to do the dishes and make dinner.

I actually was more productive than I had been before, simply because I shifted the focus of what I needed to get done. I inadvertently put the priority on my goals and made them the number one thing to get done each day, instead of laundry.

If you’re looking for a deeper read on this topic check out my post – The “I HAVE To List” and let me know if this works for you!