This content originally appeared on DEV Community and was authored by Anton Logvinenko
The correct choice of infrastructure for a tech-based startup may help to cope with unpredictable user base growth, volatile demand, and server load. In other words, it’s crucial for scaling. And you should take a hard look at such infrastructure options as Firebase, Lambda on PHP, Kubernetes, and Docker Swarm to understand how to scale a software product correctly and timely, in alignment with business flow. Therefore, our journey starts from dwelling into types of startup businesses.
C2C startups – BlaBlaCar, eBay, Amazon, and others – are characterized by linear load change, but there are certain nuances. The number of users, who interact while trading or agreeing on the trips, is changing not smoothly according to the geographical area, day, and time. We can observe peak loads for C2C startups in the evening and during the weekend. And this is the main point: in such times, C2C services should be scaling dynamically, with high speed that corresponds to the unforeseeable workload. AWS Lambda and Kubernetes are suitable for such C2C products.
B2C businesses work in a wide range of areas, from consumer products to beauty products, where workload is heavily influenced by marketing activity. And that’s why B2C companies can plan this activity and load. The daytime use of most B2C services isn’t as intense, except for food delivery. In general, we can see enhanced predictability compared to C2C startups. However, in terms of predictability, the most winning are B2B products, which we’ll discover in a moment.
B2B startups involve the projected growth and reduction of the load. It’s the simplest option for optimizing scaling costs. Here you have a clear vision of what and how the business will sell, so it’s possible to opt for Docker Swarm, as an example.
Foreseeing the Scaling Before MVP Development
Regardless of the type of business that is mentioned above, tech-based startups are premised on the idea of scaling realized as soon as a launched product reaches the necessary capacity. Scaling foresees process automation without adding extra costs to the business, and it may be tough. That’s why startup founders should take into account important factors even before embarking on the MVP development.
If you neglect these factors while choosing technologies for startups and working on the interface, design, and architecture, then scaling of the MVP will be highly implausible. Hence, it seems reasonable to consider important details for creating a product that will take its place in the market under the sun.
The first nuance is premature scaling. RewardMe can serve as an example here. It was an intelligent CRM solution for local commerce that provided merchants with customer insights. RewardMe raised $1.1M in the first round but couldn’t provide customers with features that were available in competitors’ products. Founders decided to scale, though their product wasn’t ready for it and the product failed.
The second nuance that leads to failure is misreading market demand. According to CBInsights, 35% of startups face a situation where there is no need for their product.
Are premature scaling and misreading market demand the only reasons for a startup’s failure? Obviously no, and this is the third nuance. A lot of startups have no clear vision of how to earn money and foresee revenue. They may use a dynamic scaling that implies high costs.
And as an example, we can consider a C2C startup that revolves around the idea of building a social network and earning money from paid features. A few users are interested in this product because they have Instagram and Facebook for free and don’t want to pay for such platforms. The intention to scale and combine this C2C product or a similar startup with income generation becomes fatal.
In a business model, it is always important to consider that free functionality is also scalable, as well as the cost of it, so it is important to forecast revenue and expense during the growth of the load. Startups with properly structured business processes can scale and thrive, overcoming tech limitations and challenges we are going to touch further.
When considering optimal conditions for startup scaling, you should take into account the potential load level. Since additional pressure may be an obstacle for onboarding millions of users, opt for a scalable interface and infrastructure.
Building a Scalable Interface
The UI/UX design phase is essential for a startup. To be scalable, the core of your product can be developed through the design thinking approach. It consists of five stages during implementation during which the team emphasizes and defines users’ needs, brainstorms and validates ideas, creates design solutions, and tests them.
When going through these five stages, experienced designers should foresee possible future changes and apply different approaches to tackle the product’s growth. For instance, a scalable interface can be based on reusable components. If such components weren’t foreseen, it would be difficult to maintain the speed of development and create a consistent and intuitive UI. Just imagine an ordinary situation. A startup requires adding a few menu items. Reusable components are of value in this case, yet without a scalable infrastructure their significance for scaling is doubtful.
Building a Scalable Infrastructure
The wrong infrastructure accelerates the downward trajectory of a startup. To create a scalable solution, address all infrastructure options.
1. DOCKER SWARM
One of the most easy-to-use container orchestration tools. It is open-source and supported by American technology company Docker, Inc. As a mode, it’s suitable for the deployment of applications to production and may serve as an alternative to Kubernetes and Mesos. Docker Swarm is an optimal solution for a beta version of a startup with a limited number of users. However, unlike Kubernetes, it cannot scale automatically according to the load. So, Docker Swarm is usually used only for the project kick-off or an MVP, where servers are added manually. In case of unpredictable growth, you can switch from Docker Swarm to Kubernetes, thus avoiding failure risks related to the manual scaling and a great rise in load.
2. KUBERNETES
A system that may be suitable for startups that need to deploy, manage, and scale a containerized app. With Kubernetes, containers are grouped into services. This approach simplifies discovery and management. It may be perceived as a convenient tool for scaling, which doesn’t require a massive expansion of the ops team. Kubernetes is worth considering if the product has an understandable or predictable growth and workload from users and can require autoscaling and a competent use of billing in the future. It’s easy to add or remove servers, while auto-scaling allows for changing the quantity of running containers.
3. AWS LAMBDA
A serverless computing service that enables running code for virtually any app or backend service without the need to bother with servers. You may trigger Lambda from AWS services and SaaS apps, paying only for what is used. As was previously mentioned, AWS Lambda is okay in the beginning, when the number of users varies dramatically, from zero to any required value. Although, switching from AWS Lambda to another solution can be difficult and depends on the programming language. For instance, it would be easy for Serverless PHP, where PHP frameworks like Laravel or Symfony can be used.
Please take a look at Lambda Symphony and Lambda Laravel REST API demos made by George Mirgorod, PhP Team Leader.
Here you can get acquainted with serverless PHP applications on AWS Lambda and paths to be taken to prepare serverless.yml, deploy, run migrations and fixtures, and test REST API.
4. FIREBASE
A platform or a serverless solution for creating mobile and web apps. Should you want to test an idea and reduce time to market, begin with Firebase. It’s a suitable platform with lots of extensions, integrations, and ready-to-use functionality.
Should you want to test an idea and reduce time to market, begin with Firebase. Firebase allows you to quickly investigate the market and get funding, but it has limitations in terms of functionality. Moreover, switching from Firebase to something else can be problematic, and sometimes you may need to code from scratch, but it really depends on the business goals.
Our team has successfully used Firebase to develop a platform for the mutual support that people give to each other https://dopomoga.co.ua.
And since Firebase is a Google product, I can mention that it has a lot of advantages, namely proficient analytics dashboards, free hosting on Google cloud, multiple authentication methods, etc. That’s why Firebase is listed among the top software development trends for startups.
CI & CD to Speed Up Delivery Process
Before we even think about scaling, we should introduce process automation, simplifying repetitive procedures. Among such procedures are code deployment, testing, and release automation.
The main idea is to set up a system in a way that enables you to modify existing features or launch a new version of the product by speeding up the release cycle. Ideally, it should be possible to introduce changes in hours and enable an engineering team to spend less time on the preparation, release, manual testing, code deployment, and so on. Through this approach, large projects can save significant time and costs. And since we have already begun to speak about cost efficiencies, it may be instructive to examine the case study.
Firebase is easily combined with Flutter, serving the well-balanced tech stack of MVP Lite. This Agile-like approach enables the implementation of the needed features in the short term since there is no need for the final design and full-fledged testing. MVP Lite foresees the development of 80% of the key functionality, which reduces the overall development costs (savings are estimated at 30–80%).
Note: you can build an MVP or POC for a startup using no-code platforms. For example, Webflow, Bubble, Adalo, or Zapier. It’s faster and cheaper, but scaling of such startups is too complicated and unreasonably expensive.
Scaling Startups Down
Should you ever get to visit the heart of San Francisco, it’s a good chance to paint the city red. And when you investigate bars downtown, you’d definitely find yourself in a crowded one, somewhere at Polk st. Every second bar there runs the venue management & POS system developed by MobiDev.
Before 2020, operating of the product was based on the scheme where each bar or nightclub had a dedicated server and paid its subscription. The architecture design made it possible to quickly deploy the system at venues. It was even able to automatically deliver unique features to certain locations. But when the COVID-19 pandemic began, downscaling was required. To avoid overpayment and reduce costs on infrastructure while scaling down, we went ahead and considered adopting Kubernetes or a similar solution.
From this case, we can see that final business requirements for startups must be foreseen in terms of different operating scenarios. This complete transparency is crucial and simplifies scaling up and down without excessive costs.
This content originally appeared on DEV Community and was authored by Anton Logvinenko
Anton Logvinenko | Sciencx (2022-07-17T19:59:57+00:00) How to Scale Software Product Development at Fast Growing Tech Startups. Retrieved from https://www.scien.cx/2022/07/17/how-to-scale-software-product-development-at-fast-growing-tech-startups/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.