Dear all,
I hope this email finds you well. I am reaching out to gather insights and suggestions regarding a potential redesign of our VoIP system to improve scalability, ease of management, and upgradeability. *Current Setup:*
- Our system is *not multi-tenant* and is based on *Kamailio and FreeSWITCH* in a distributed architecture (as example of distributed architecture, see: https://ufdcimages.uflib.ufl.edu/UF/E0/04/92/89/00001/THOMPSON_C.pdf). - Everything runs inside *LXC containers* across multiple nodes. - One of the challenges we face is *OS upgrades*, which are cumbersome and require significant manual intervention. - At the moment the code for voip is done with ansible
Given these challenges, I am considering whether a *microservices-based architecture* could be a viable option. However, I have some concerns regarding:
- *SIP and RTP handling with NATed containers* (e.g., Kubernetes, Docker Swarm) and potential issues with media traversal. - *Performance impact* when shifting real-time traffic handling to containerized environments. - *Upgrade and deployment strategies*—how to achieve smoother, rolling upgrades without service interruptions. - *Alternative approaches* that might be more effective, such as a hybrid model combining LXC with containerized microservices for specific functions.
If anyone has experience transitioning a VoIP system to microservices or has insights on best practices for *scalable, maintainable VoIP architectures*, I would greatly appreciate your thoughts. What worked for you? What pitfalls should we be aware of?Do you have any documentation that I can check?
Looking forward to learning from your experiences. Thank you.
.: Francesco Colista
.: Francesco Colista