Proponents of serverless computing models tout the potential for more streamlined, cost-effective application development and deployment. Developers are freed from server management, allowing them to focus on writing code, speeding time to market and simplifying scaling.
Few technological trends come without complications, however, and along with its advantages, a serverless computing model brings unique challenges. Below, 20 members of Forbes Technology Council share important advice (and warnings) for organizations considering a serverless computing model. Take these essential tips on board to ensure your team makes an informed choice for your organization and is ready for both the benefits and trade-offs.
1. Be Prepared For Performance Issues
Diving into serverless applications can be alluring for organizations looking to scale efficiently. My advice—or rather, a caution—is to understand the trade-offs involved. Serverless architecture can reduce operational costs and streamline deployment processes, but it also introduces challenges related to debugging, monitoring and potential performance inconsistencies due to cold starts. – Ken Ringdahl, Kantata
2. Watch Out For Hidden Labor Costs
A lot of experts recommend serverless because it was popular a few years ago. However, it’s seldom the answer to most infrastructure problems. I have seen serverless implementations that resulted in more hidden labor costs than monoliths. Know who you are getting advice from, and have them explain why serverless should be preferred over monoliths. – Federico Imparatta, ataraxy
Forbes Technology Council is an invitation-only community for world-class CIOs, CTOs and technology executives. Do I qualify?
3. Understand The Need To Fully Commit
Serverless applications running in a decentralized setting are more resilient against such issues as single points of failure and censorship, but your overall system can truly harness these benefits only if it’s serverless in its entirety. In terms of the relevant attributes of serverless applications, your overall system is only as good as its weakest link. – Viktor Trón, Swarm
4. Estimate And Monitor Usage Costs
While serverless architectures require payment only for the resources consumed, it’s key to estimate costs based on usage patterns, especially as the app scales. You should monitor usage (and alert if needed) to avoid unexpected cost spikes. I’d also recommend applying cost-saving strategies available through your cloud provider, such as using reserve capacities or optimizing code for usage efficiency. – Ilya Lashch, Lightpoint Global
5. Consider Whether Your Application Aligns With The Strengths Of Serverless
My advice would be to carefully consider the specific needs and requirements of your organization before adopting serverless applications. It is important to assess whether the nature of your application aligns with the strengths of serverless, such as stateless and event-driven workloads. Additionally, consider the potential challenges of vendor lock-in and limited control. – Robert Mao, ArcBlock Inc.
6. Review Workload And Price Options
As the familiar lyric goes, “You can check out any time you like, but you can never leave.” It’s quickly becoming a multicloud and multi-edge world. You should be architecting your business IT and OT accordingly and leveraging the right serverless cloud for the right workload at the right price. If you bet on one cloud for your business, you are setting yourself up for getting locked into unfavorable pricing. – Pete Bernard, EDGECELSIOR
7. Know That Some APIs May Time Out
It’s commonly known that event-driven serverless applications are suited for microservices applications and not for monolithic applications. But many microservices applications that execute long-running APIs fail—they time out on certain public cloud serverless offerings due to a lack of performance optimization. Time your APIs before going serverless. – Preeti Shukla, JustFund
8. Plan For Future Migration
When adopting serverless applications, monitor and plan for potential migration challenges to avoid vendor lock-in. The start itself has to be about exploring hybrid solutions and varied backup options. – Aditya Malik, ValueMatrix.ai
9. Vet Serverless Providers In Terms Of Your Unique Needs
Thoroughly evaluate the serverless provider’s scalability, security and cost structure. Understand how these factors align with your specific needs, particularly around traffic patterns and data management. Serverless can offer benefits, but it requires careful planning to avoid unexpected costs and limitations. – Rohit Anabheri, Sakesh Solutions LLC
10. Containerize Your Code To Run On Any Infrastructure
Serverless is great to start with, as it handles so much for you. But as traffic grows, it’ll eventually become more expensive than managing the EC2 instances and related services yourself—at which point you’ll also need to add DevOps to the equation. Containerize your code to run on any infrastructure to make the transition easier, and then it’s just a cost trade-off. – Luke Wallace, Bottle Rocket
11. Take Control Of Who Can Access Your Code
When using serverless, pay extra attention to keeping things safe. Because your code is spread out, it’s easier for security risks to pop up. Make sure only the right people can access your code, and check regularly for any security issues. – Margarita Simonova, ILoveMyQA
12. Consider Your Product’s Limitations And Scalability
Understand the limitations of your product. Often, simplicity will result in less technical debt, which in turn can provide a flexible application. Then, focus on scalability. Ask, “Can this scale, being serverless?” As you dive into the world of microservices, it’s possible you’ll end up with a myriad of server applications supporting each other. – WaiJe Coler, InfoTracer
13. Work To Mitigate Cold Starts
Cold starts—where functions experience latency upon initial invocation—can impact the performance of serverless applications. Mitigate cold start issues by optimizing function initialization time, reducing dependencies and implementing warmup strategies, such as scheduled invocations or provisioned concurrency, to determine the most suitable approach for your workload. – Cristian Randieri, Intellisystem Technologies
14. Be Mindful Of Increased Monitoring And Debugging Complexity
Organizations considering adopting serverless applications should be mindful of the potential for increased complexity in monitoring and debugging. While serverless can significantly reduce infrastructure management, it may obscure visibility into performance issues. Embrace tools and practices that enhance observability to maintain control and ensure application reliability and efficiency. – Ken Pomella, RevStar
15. Design Serverless Apps To Be Decoupled And Stateless
When adopting serverless applications, focus on designing them to be decoupled and stateless, optimizing code efficiency. Carefully tune the polling of event sources by adjusting batch sizes and record handling to enhance throughput. Utilize the BatchSize parameter and consider configuring a batching window to manage function invocation effectively, maximizing efficiency while minimizing overhead. – Anand Santhanam, Amazon Web Services
16. Consider What Level Of Scale And Performance Is Needed
For organizations thinking of launching serverless applications, it’s worth questioning what level of scale and performance is necessary. Even if serverless is flexible and cheap, it could still be incompatible with legacy systems, and you may have to put up with vendor lock-in and latency issues. – Jared Thau, Gameverse Interactive Corp.
17. Look Out For The ‘Invisible Infrastructure Illusion’
You should definitely embrace serverless for its scalability and cost-effectiveness, but look out for the “invisible infrastructure illusion.” The less you see, the more important it becomes to understand the underlying processes for security, troubleshooting and optimization. It’s not magic, it’s managed—plan accordingly. – Marc Rutzen, HelloData.ai
18. Consider The Impact On CI/CD Pipelines
Consider the impact of serverless on your continuous integration and delivery pipelines. Ensure that your deployment practices adapt to the stateless nature of serverless computing. Additionally, serverless can reduce initial setup costs, but do assess long-term costs carefully, as extensive use can become expensive. – Jo Debecker, Wipro
19. Think About How Long You Can Go Without Access To Certain Data
Be mindful about migrating to a cloud environment. Be aware of issues including breach prevention, downtime in the ability to access data and managing access. Regarding downtime, think about how long you can go without needing access to certain data. A day? An hour? Ensure you’re considering the lag in access that happens during migration. – Jordan Yallen, MetaTope
20. Avoid ‘Function Sprawl’
Beware of the “function sprawl” that can come with serverless adoption. Strict governance and architectural guidelines are vital. Consolidate related functions and prune unnecessary ones for a leaner, more manageable architecture. – Andrew Blackman, EZ Cloud
Read the full article here