Is AWS too much?

Liyaqat Mugjenkar
3 min readNov 12, 2020

A Series of Tips / Advices for Software Engineers

Photo by CHUTTERSNAP on Unsplash

This article may be a bit controversial and is only a thought piece not directed at any individual or organisation. The reason for this article that is a bit different from my previous themes is due to trends I am picking up around the way the Software Engineering world is changing.

Change is good do not get me wrong, it is the natural way of improving ourselves and the way things are around us. We should embrace it if we want to keep moving forward.

Many teams have either completely adopted the “cloud” or are in the process of moving onto it. This is great as it is definitely beneficial from operations, reliability and scalability approach. Costs and achieving business value can be improved if done correctly.

Designing a System

Let us assume your organisation needs to provide a system that can manage a list of guest houses.

The system would do the following:

  • Store a list of guest houses and their details
  • Reviews
  • Photos
  • Customers who booked
  • Booking Status of the guest house over time

There are several ways to go about solving this but what do you choose? The first being the language/framework the application will be developed in, this would probably be broken up into the UI and back-office system. In the past, this and the database was probably the main decision we needed to make.

Step in the Cloud

We have several great cloud providers that can give us great reliability, flexibility and decent costs. The ability to spin up resources manually or via scripts is really amazing and beneficial for consistency and uniformity.

Based on what we need to achieve how do we go about solving this problem? Well, you are spoilt for choice. The number of ways that this can be done has increased tremendously. You could run it on a hosted server, manage the load balancer, connect it to a database and off you go.

You could also choose to use a fully automated approach, use Kubernetes or one of the cloud hosts built-in scalability tools (some do not work that great).

Once you decide on your combination of products your head will probably be spinning and costs could get out of hand quite quickly.

The Crazy Shopper Effect

Have you ever seen a great marketing campaign in effect? The essence of it is to make you believe you need something and that something will make you happy and satisfy your needs. The same applies in our industry and sometimes we do not see it.

We start believing we need all these features or tools that on its own seem affordable but as load increases and combining them with what we have it soon becomes a bit out of hand.

Some Common Sense

This is going to sound obvious and probably harsh, but let us use our common sense on what we really need. Certain “features” are not always needed right now and sometimes will never be needed.

Some Advice

  • Invest in Engineers and Cloud Engineers, nothing beats a good Engineer. You need both.
  • Stay calm.
  • Design with the future in mind but build for the current business need in an agile manner.
  • Design with the ability to implement future designs easily.
  • Investigate common cloud design patterns but always relate that to your organisation and refer to the next point.
  • Determine what you need right now and what could be left out in terms of infrastructure.
  • Not every new tool or hosted service is great.
  • Use the cloud hosting calculator as often as possible to keep an eye on things.
  • Managed services such as your database, messaging system, deployments or even load balancer are great but they can be a black box at times.

It could be very easy to get a monthly bill of $100 000 when it should be more than half of that if your infrastructure is poorly designed and your team becomes crazy shoppers.

With these few words, I hope it has been of benefit and could save you and your organisation in terms of time, money and peace of mind.

Be safe and keep learning.

--

--