With the arrival of DevOps along with the mindset of “you create it, then it’s yours”, the tech stack has advanced greatly for modern startups. There have been tons of dev tools launched within the past decade which have completely altered the way developers deal with workloads. Recently, I reviewed the tech landscape thoroughly and intend to present to you a guide on the modern technology stack.
You cannot go wrong by using one of the big three cloud computing platforms (Azure, AWS, GCP). Each has the complete set of features required for a business of any scale. However, there are some factors which could influence your choice:
- Regions: Not every cloud platform is available for use in every regions. As an example, GCP is not accessible for Africa. If you would like to deploy your app in a specific part of the world, check whether the platform you choose is available in that region.
- ML/AI: GCP developed a wonderful set of offerings for machine learning. I’ve encountered a lot of chief technology officers who began with other cloud platforms and then have migrated some or all of their technology to GCP as a result of some of its capabilities with machine learning.
GCP wins by a slight margin for me, due to a better UI and native observability tools.
Serverless or PaaS or k8s: PaaS
- Serverless (GCP Cloud Functions, AWS lambda) possess some limitations. It’s very possible that you would quickly encounter these limits which would require you to work with something else for part of your organization’s infrastructure.
- Kubernetes (k8s), although super powerful, is difficult to set up properly and maintain. Hence, only rely on this if you possess expertise on k8s.
- Managed PaaS (AWS Beanstalk, AWS GAE) could be an alternative of choice to begin using if you want to avoid the complications of Kubernetes. They have a proper balance of flexibility and ease of use for a lot of startups.
Monolith or Microservices: Microservices
You must switch to microservices once you reach a certain scale. There’s tons of tools offered now (Docker, Kubernetes, APMs, request tracing) which greatly helps facilitate the process of migration, thus more startups are making the switch to microservices. However microservices still need a lot of investment in DevOps initially to set the proper visibility and tooling. If you possess the expertise and capacity, it would be best for you if you make the investment in microservices sooner as opposed to later.
There’s over 25 CI/CD tools currently at your fingertips in the marketplace. I haven’t researched or worked with each one. I’ve only used the most popular tools. These are the two tools that stood out:
- BuildKite: If/when the cost of CircleCI (see point 2) becomes a deciding factor to you, it would be best to switch to BuildKite would be the best one to switch to. It provides infinite configurability while still relatively easy to use.
- CircleCI: CircleCI is among the most widely utilized platforms. Getting started with it would be very easy, and it scales very well to meet the needs of organizations. However, a larger implementation might be too costly.
Datadog provides everything all in one place: infrastructure monitoring, custom metrics, APMs, request tracing, logging. The integration is very easy to use, and their UI beats the competition.