The San Diego Web Development Blog Latest

THOUGHTS FROM INSIDE TRAGIC MINDS

Organizations of all sizes, from fast-growing startups to monolithic enterprises, get locked into their infrastructure decisions.

All too often, we see that organizations do not have a process to re-evaluate their infrastructure until something breaks. As technology advances at a rapid pace, companies are throwing away thousands of dollars by sitting on outdated or non-optimized infrastructure.

Trust us. We see what is running behind the scenes and have helped clients of all types optimize and migrate their infrastructure.

In this post, we will explore easy ways to ensure that your infrastructure – and your process for evaluating infrastructure updates – stays up-to-date.

The Cost of Non-Optimized Infrastructure

There are 3 main drawbacks when you have a non-optimized technology infrastructure: service cost, performance cost, and time cost. All three impact your business's bottom line.

Service Cost

First and foremost, there is a dollar cost associated with using the wrong host or overprovisioning your hardware. We have seen first hand dramatic cost savings when going from old, oversized servers to a modern infrastructure on Google, Microsoft, or Amazon.

For My Italian Family, we reduced their cloud hosting bill from $250/month down to $30/month!

In addition to saving money, updating your infrastructure improves performance and availability too. The aim for infrastructure is efficiency. So ask yourself, is your tech infrastructure efficient?

Performance Cost

There is also a direct cost for poor performance. Something as simple as an increased website bounce rate, or taking too long for your app to load, will harm your business.

According to Akamai, a 2 second delay "in web page load time increases bounce rates by 103%" and that half of mobile visitors "will leave a page that takes longer than 3 seconds to load".

Whether you sell to consumers, SMBs, or the enterprise, customers today do not tolerate slow websites or service outages. Your application's poor performance will lose you customers and dollars.

We just saw Microsoft Teams have an outage because Microsoft did not create a process for renewing their SSL certificate, a basic process that every dev team should have. Having a non-optimized infrastructure costs you dollars, and it harms your reputation as well.

Time Cost

Countless developer hours are wasted running code on non-optimized infrastructure. There are two main issues: (1) manually deploying code and (2) taking time to keep your patchwork of systems up and running.

Deploying code manually to production is time-consuming, expensive, and error-prone. And yes, we see it far more often than we should. The same goes for manually devoting developer time to keep your infrastructure stable.

You can't anticipate when things will break, or when you will run into issues with an old system. Just know that it will happen – and you have to plan accordingly.

Instead of playing defense, you should invest time to automate key parts of your infrastructure and creating mitigation plans.

Tips to Improve Your Technology Infrastructure

Now that we have discussed the costs of non-optimized infrastructure, we want to provide a checklist of best practices for your tech infrastructure.

Use a content delivery network

A content delivery network (CDN) is a network of geographically-dispersed servers that cache your content. When a user requests data from your service, the nearest server to them will serve up the content. CDNs increase performance, reduce the risk of bottlenecks, and dramatically lower your cloud hosting bill.

A CDN drops into your existing tech infrastructure with minimal effort. This is one of the most obvious upgrades that an organization can do, which is why we mention it first.

CloudFlare has an enterprise-grade solution, and we're fans of their generous free tier for getting started. We have a number of clients utilizing their plans without a hitch.

Deploy on a modern cloud provider

Another clear win is deploying your website, application, or service on a modern cloud provider. There are dozens of cloud hosts, but we only recommend deploying on three: Amazon Web Services (AWS), Google Cloud Platform (GCP), and Microsoft Azure.

Of these choices, Google is our favorite. As developers, we appreciate Google's intuitive interface as well as their command line tools. Google also comes out on top with cost savings. We love the platform and our clients love the savings!

You can sleep easily knowing that Google has the ability to support any scale. Seriously.

To learn more about Google Cloud Platform, check out our blog post on them. Our customers often start with their $30/month plan, which has plenty of headroom.

A modern hosting platform also enables you to use Docker or make parts of your infrastructure completely serverless. We will explore both topics in more detail next.

Utilize Docker and Kubernetes to dynamically scale

The best way to leverage your modern cloud host is with containers. Docker, the most popular container service, makes your infrastructure more secure, efficient, and scalable.

We particularly like Docker paired with Kubernetes, an open-sourced container orchestration platform. For more information on Docker and Kubernetes, read our article here.

Most services, particularly in the business, have clear demand spikes and troughs. For instance, we see usage peak Monday morning and things become nearly silent in the middle of the night and on weekends.

Utilizing containers will enable your tech infrastructure to always be the right size, reducing your costs while also allowing your systems to rapidly scale to meet any level of demand.

Make infrequently used services serverless

Next, we suggest moving any infrequently used services to be serverless. Serverless is a powerful tool that we have written about before.

In particular, we like taking jobs that are done in specific intervals (e.g., a cron job that runs a report once every 30 days) or when a threshold is met (e.g., when database capacity is at 90%) are well-suited to becoming serverless functions.

Again, we are seeing dramatic cost savings by moving from a barely-utilized server to a serverless function that only fires up when needed and is charged by the millisecond.

Leverage optimized cold storage for backups and archives

Another neglected area is creating a plan to effectively manage your storage needs. We suggest understanding how frequently you need to access your data – as not all data is equal and should not be stored the same way.

For this reason, Google Cloud Platform offers three archival storage solutions:

  • Nearline: Data that needs to be accessed less than once a month
  • Coldline: Data that needs to be accessed less than once a quarter
  • Archive: Data that needs to be accessed less than once a year

In addition to having the proper backups in place, you must also ensure those systems are optimized and that you are not paying for unnecessary backups.

A website backup from 2009, for example, is obsolete and costing you every month with no benefit. Setting up smart backup rules is an important part of your storage strategy.

Having the right storage strategy is also invaluable in the event of a failure. More than once we have seen effective storage practices stop a disaster in its tracks.

Implement a CI/CD pipeline

Lastly, we highly recommend that each development team spends the time to implement a solid continuous integration (CI) and continuous deployment (CD) pipeline.

Remember how we said that manually deploying code causes problems and burns expensive developer hours? Well, CI/CD is the perfect way to solve that problem. To learn more about CI/CD, Atlassian has a good guide available here.

At a high level, CI/CD codifies the process of building, testing, merging, and deploying your code to customers in production. You do not need to build the entire pipeline at once, but we have seen significant improvements in code quality and time to release by implementing CI/CD.

Because the process is documented and rigid, code that does not meet the standards set cannot move forward. And second, because the environments are built and destroyed automatically, there is no room for human error.

Making shipping code easier also enables more frequent, smaller releases to come out. This shifts away from a culture of dreading pushing to production.

Conclusion

A non-optimized infrastructure is expensive. It costs you extra money every month, can damage your reputation, and slowly eats away at the productivity of your developers.

To keep your technology infrastructure modern, we recommend reviewing your stack regularly. The cadence depends on your scale, but we recommend a quarterly or semi-annually review for our mid-size clients.

If you feel like your current infrastructure is keeping you behind, we have provided a checklist specifically for you.

You can improve your tech infrastructure by:

  1. Using a content delivery network (CDN)
  2. Deploying on a modern cloud provider
  3. Utilizing Docker and Kubernetes to dynamically scale
  4. Making infrequently used services serverless
  5. Leveraging cold storage for backups and archives
  6. Implementing a CI/CD pipeline

While we covered a lot, we just brushed the surface of why an optimized infrastructure is important and how you increase the health of your system.

Want to schedule a free consultation? Contact our team today. We can help evaluate your current situation and create a plan to improve your tech infrastructure.

 

Don't let your project turn into a tragedy.