Tag: stability

  • Select Multiple Vendors For A Reliable Foundation

    Select Multiple Vendors For A Reliable Foundation

    Recent political events in the United States have seen organizations and people “canceled” or de-platformed. While one can look at these as situations a business should avoid at all costs (getting swept into politics), it is an excellent cautionary tale. The Achilles heel of many of these organizations is a reliance on a single vendor for a key facet of their business. No one provider will ever give you the flexibility of multiple vendors.

    Vendor Lock-in

    The concept of vendor lock-in is not new. However, it has gotten fuzzy in areas like Cloud computing and businesses that are “too big to fail.” The Parler example falls exactly in this zone. They relied on Amazon AWS for their data infrastructure and went dark when Amazon decided that there was a breach of the user agreement. Your thoughts on Amazon’s actions do not save the folks at Parler from making a critical mistake. They put all of their eggs in the Amazon basket. They had vendor lock-in even though I bet they never considered it as such.

    Yes, you can point to this as a case of letting politics guide a business. However, this could happen if Amazon sold off the AWS products, or even if someone at Amazon (or within your organization) hit the wrong switch. There are countless tales of sites that went down for a period of time because of spam-blocking or other automated processes triggered by a simple mistake. You do not have to be in the news to have something shut down your access to a product.

    Multiple Vendors And Disaster Recovery

    The whole purpose of creating a DR plan is to consider what happens if you lose a key vendor or resource for any reason. It could be a natural disaster, one of Public Relations, or any other reason. The point is to address the problem of losing that resource. A good disaster recovery plan considers these events and looks to multiple vendors and their locations. Some DR plans rely on the stability a cloud provider gives you. Amazon, Google, Microsoft, and other providers have multiple data centers spread across the globe with redundancies built to avoid downtime. In some cases, that is sufficient. We pay these vendors money to handle our DR headaches. However, that does lock us into those vendors when we choose only one.

    Cloud To The Rescue

    One of the benefits of cloud providers is that they allow us to scale up our usage. We can have a tiny server at minimal cost and powerful ones that are costly but drive our business. Thus, smaller businesses can get some of the Cloud’s enterprise features without a high cost up-front. This same benefit should lead us to look at multiple vendors, even with the smallest of businesses. This concept also extends out beyond our server needs. We can embrace the cloud to handle many of our needs. For most businesses, this includes things like payment providers, customer communications, billing, and payroll. Many vendors want you to rely on them and will even provide attractive packages. However, make sure you understand the risks involved.

    It Is Your Data

    First and foremost, make sure any vendor agreement includes a way for you to get your data. The Parler case included Amazon, stating they would allow access to the application data and even help Parler migrate off their platform. That may save the business from immediate death. Think of what would happen if you lost all of your financial or customer data. You should ensure that any licensing includes your ability to own your data and content. There should also be language that restricts a vendor from being able to leverage or use the same. Content platforms are famous for this, including many social networks. They have language that allows them to share or use your content to promote their platform. If you get paid for that usage, then that is good. However, you could find yourself effectively funding a vendor’s marketing campaign or at least providing essential content.

    Finally, make sure you test your access to data early and often. Exports and APIs are excellent tools. On the other hand, they can change and cause data loss or impact recovery times. You might also find that you need a tool or solution to do something with that data. If you can not afford to have the migration tools in place or it is not practical to migrate data regularly, at least ensure you have a reasonable estimate of the time and cost in a DR situation.

  • Upgrades vs Stability for Production Solutions

    Upgrades vs Stability for Production Solutions

    One of the pervasive properties of software is change.  Whether this change comes from regular enhancements or environmental updates, it is one that should be considered strategically for production software.  Thus, the balance of upgrades vs. stability needs to be considered as your solution ages.

    Easy Upgrades

    Modern software environments provide features that make upgrades easier than in the past.  A great example of this is WordPress and other “plugins supported” solutions.  The goal is to make administration of these sites easy and quick.  Thus, you often can upgrade a plugin or even the core software to the latest version with the click of a button.

    This ease extends to core environments as well.  There are a lot of automated update tools available to keep all of your software up to date.  The most well known of these is the windows update tool provided in many recent Windows OS versions.

    Impacts to Stability

    This ease of administration is excellent.  However, it is also hazardous.  An upgrade may break your entire site and lose sales.  As scary as that sounds, even worse side effects can happen.  Data may get corrupted, backups can become invalid, and fulfillment can be sent to the wrong address.  These worst-case scenarios are not exactly typical, but they can happen.  Upgrading your system can turn a steady running and reliable system into a nightmare.

    These concrete impacts are just one facet of the considerations.  Updates may change the user experience.  Something as trivial as moving a menu item can cause user headaches and negative backlash.  For some great examples of this, look at some of the Facebook changes over the years that caused a massive outcry from their user base.

    Managing Upgrades vs. Stability

    It may seem that these risks point to leaving your software in its original state as long as possible.  Fewer changes should lead to higher stability.  This is only partially true.  A stable system is more accessible to hack and may be steadily approaching a point of no return.  In the latter case, this can be a point where the system lacks the resources to support the user base or amounts of data within the system.

    There are also license considerations and support.  Older software may not be supported by vendors entirely or at all.  Thus, we need to find that balance.  Here are some high-level steps that can be taken to keep your solution up to date while minimizing risk.

    Scheduled or Periodic Updates

    Vendors do not release updates on the same schedule.  However, you can set a timetable for when you will apply updates so you can keep those updates on a plan suitable to your business.  I recommend updates on a frequency of two to four times a year.

    Test, Test, Test

    It is recommended that you have multiple environments during implementation.  This is even more important once you “go live.”  The value of these other environments is that they allow you to create an identical version of your production system for testing.  Thus, nearly all of the risk can be assumed by a “test” environment instead of production.  This is not a silver bullet, but it is pretty darn close.

    Backup, Backup, Backup

    Before any update is made, make sure the whole system is backed up.  This will allow for roll-back in case an update is not viable.

    Avoid Bleeding Edge

    When you follow the suggestions above, it should help you buy some time before implementing an update.  This should be embraced and used to allow you to pass the risk on to other customers.  They can perform the update, and their feedback will help you avoid problems and reduce risk.  In effect, waiting on an update allows others to be your guinea pig.

    The Bottom Line

    These are general suggestions, but embracing them can be very useful.  There is always going to be a challenge in finding the balance of upgrades vs. stability, but when you reduce risk, it makes success more likely.  Following the steps noted here can provide a win-win situation where you have current software and a stable experience for your customers.