In our last webinar, we welcomed Killian from Golem.ai, and Sylvia and Jonathan from Microbiome Studio. We discussed how they built scalable infrastructure to support their startups' goals. They shared their experience, what they learned along their journeys, and how they optimized their infrastructure. Here is a cheat sheet of their best practices:
Simplicity is often crucial when launching a new product or service. To get a scalable infrastructure, you need to start somewhere. However, as exciting as setting up a whole cluster of microservices with five layers of abstraction might sound, the best advice we could give you is to start simple. Build based on your needs at this stage, time and practice will tell you which needs will persist, then you can add to them.
Over-engineering can be your doom. It will have the opposite effect to what you intended: it will cause your flexibility and evolution to stall. So keep it simple from the start.
Start simple, but start in a way that allows you to build on. This is what managed products are specifically designed for: the cloud provider deals with all the installation and configuration, so all you need to do is leverage a comprehensive, user-friendly setting you can install and scale in two clicks. This significant time-saver allows your teams to focus on more important topics.
You can drastically optimize your bill in the long run just by developing elastic data models at the beginning of the building process. There are different types of data storage, each coming with its own characteristics, latency, and pricing. For instance, you can use Block Storage to store necessary information for the duration of the project, and then once completed, you can archive it with Object Storage, as Microbiome Studio does.
To help you make the right choice, Scaleway’s own DbaaS PM wrote a guide on how to choose the right type of storage.
If a service exists only once, then it does not exist. This is indeed the mantra of Golem.ai. Infrastructure as a Service is instrumental when you are building efficient infrastructure. Replicating the services is a fundamental element that allows you to stay at the top of your game in the face of challenges.
Ensure that each deployment is not a three-day job when it can be done in just one click..
For instance, autoscaling is a powerful tool for optimizing your resources or managing workload peaks. You can scale to zero whenever you need, even at night! Even if a client decides to process a million documents overnight, autoscaling can handle it without needing your team to wake up at 2 AM!
Observability & debugging
Monitoring and debugging are very important. Knowing what is happening on your infrastructure is crucial for both DevOps and user comprehension. You can use open-source tools like Grafana (open-source analytics & monitoring solution for databases) or Sentry (application monitoring and error tracking software) to give you the data you need.
A comprehensive vision
Visualize the different infrastructure components to improve the coupling of these elements. The infrastructure WILL evolve: you need to be able to modify it when necessary. So having a comprehensive vision of all your services is a must if you want them to work together. After all, your infrastructure is a big machine made of tons of smaller machines, don’t make the mistake of focusing on one element at the cost of the whole infrastructure.
Identify energy-intensive resources
Identify the resources consumed in terms of CPU, RAM, and data storage to optimize those that are less energy-efficient. For instance, with Serverless, you can switch on and off your machine depending on the resources you need. To schedule all this, automation techniques for resource supply and the configuration of these machines allow for more scalability. Open-source tools such as Grafana to monitor and analyze databases are a must-known here.
Empower your team
The strength of your company and products comes directly from your team: the people who made it all happen. For instance, learning to use managed products can seem complicated, or even pointless when you already have a team that could replicate this work. You might also think that manual installation is a saving. On the contrary, practice often shows that the amount of time you will need, not to mention getting up at 2 AM to relaunch the faulty server, makes it everything but a saving!
Think multi cloud
92% of companies use more than one cloud provider, yet don’t realize the power of a well-thought multi-cloud strategy. For instance, a startup with international ambition could run its infrastructure on a Kubernetes cluster, think about using a multi-cloud orchestrator such as Kosmos. It will allow you to plug your cluster in data centers of different cloud providers from all over the world to guarantee that your client's data is hosted locally - which is starting to be a must for a lot of companies.