It took just over a decade, with a lot of trial and error, school fees and sleepless nights, but finally, I am confident to say, we are now winning.
We are able to deliver highly scalable, robust systems and apps quickly and efficiently, underpinned by rock solid cloud based hosting. A great example of this is the recently relaunched Sportsmans Warehouse website.
There is no doubt that the main success factors in projects revolve around people, but I would argue that the tools you use and tech decisions you make play an equally important role.
In no particular order, here are the tools that enable us to deliver.
Docker has changed our life. In fact, I cannot remember a technology that has been more enabling for us than Docker. “Sliced bread” and all these things come to mind.
Cloud based hosting & Kubernetes
From having fleets of bare metal servers, we are now hosting our systems on AWS EKS or GCP GKE. This has resulted in pretty much 0% down time and has removed all anxiety around hosting high traffic, enterprise systems.
Offloading responsibility for data
In a similar vein to the above, we no longer have to worry about hosting our client’s data. We offload this responsibility to Google Cloud SQL or AWS RDS. While we don’t have any war stories of previous data losses, this decision also reduced overall anxiety.
Choosing to go stateless
To use a loose definition of stateless from a hosting perspective, it essentially means that our servers can be thrown away and rebuilt within seconds. Any data that needs to persist is either sitting on Cloud SQL or RDS and/or on Google Storage, S3 or the excellent Cloudinary. Once again, this is as much about delivering a superior user experience (a special mention again to Cloudinary) as it is about reducing anxiety.
Adopting Bitbucket CI/CD pipelines
We can deploy with great confidence, using Bitbucket pipelines to build, package and deploy our containers to the cloud. Bye bye rsync or ftp over custom hacked together shell scripts.
Phasing out Jquery for Vue
We have built some real JQuery monsters in the past and have had the opportunity to rebuild some of those in Vue. Chalk and cheese. Without fail, the Vue implementation has a fraction of the code, is more performant and infinitely easier to maintain.
We used to have one or two SQL full-text monsters lurking around, but after almost exploding those servers, they are no more. We now make heavy use of ElasticSearch, primarily on our search and listing pages that require advanced filtering/aggregations. Elastic Search enables us to deliver an excellent search and filtering experience, with very little effort.
We love Redis and use it a lot. It is lightweight, lets us share sessions, lets us cache, is blazingly fast and has not let us down once.
Ditched off the shelf systems
Been there done that. We’ve tried many of them and deployed all of the below (and more) to production. CS Cart, WooCommerce, Joomla, Expression Engine, Craft, the list goes on...We have thrown all of these things into the bin, where they belong. For a number of years now, we have not started any new projects on these so called configurable products. We now rely on proper, enterprise MVC frameworks to aid our development. Special mention to CakePHP and Django.
At the end of the day though, these tools are used by people & are only as good as the people that wield them
I’m proud to work alongside the people at Lima Bean, delivering systems and apps that we can be proud of.