Change is coming to VyOS project

People often ask us the same questions, such as if we know about Debian 6 EOL, or when 1.2.0 will be released, or when this or that feature will be implemented. The short answer, for all of those: it depends on you. Yes, you, the VyOS users.

Here’s what it takes to run an open source project of this type. There are multiple tasks, and they all have to be done:

  • Emergency fixes and security patches

  • Routine bug fixes, cleanups, and refactoring

  • Development of new features

  • Documentation writing

  • Testing (including writing automated tests)

All those tasks need hands (ideally, connected to a brain). Emergency bug fixes and security patches needs a team of committed people who can do this job on a short notice, which is attainable in two ways, either there are people for whom it’s their primary job, or the team of committed people is large enough to have people with spare time at any given moment.

Cleanups and refactoring are also things that need a team of committed people because those are things that no one benefits from in a short run, it’s about making life easier for contributors and improving the sustainability of the project, keeping it from becoming an unmanageable mess. Development of new features needs people who are personally interested in those features and have the expertise to integrate them in a right way. It’s perfect if they also maintain their code, but if they simply hand documented and maintainable code to the maintainers team, that’s good enough.

Now, the sad truth is that VyOS Project has none of those. The commitment to using it among its users greatly exceeds the commitment to contributing to it. While we don’t know for certain how many people are using VyOS, we have at least some data. At the moment, there are 600 users of the official AMI on AWS. There were 11k+ users last month on user guide page and it’s constantly growing since the time when I took up the role of the community manager of the VyOS project. We are also aware about companies that have around 1k VyOS instances and companies that rely on VyOS in their business operations in one way or another. But still, if we talk about consumers vs. contributors, we see 99% consumers vs 1% contributors relation.

My original idea was to raise awareness of the VyOS project by introducing a new website, refreshing the forum look, activating social media channels and introducing modern collaboration tools to make participation in the project easier, open new ways how users and companies can participate and contribute. Finally bigger user base means there’s a larger pool of people and companies who can contribute to the project. We also launched commercial support with idea that if companies that using VyOS for their businesses can’t or just don’t want to participate in the project directly, the may be willing to support the project by purchasing support subscriptions.

10 months later I can admit that I was partially wrong in my thoughts. While consumer user base growing rapidly, i just can’t tell the same about contributors and this is a pity. Sure, we got a few new contributors, some of them contribute occasionally, other are more active, and some old contributors are back (Thank you guys for joining/re-joining VyOS!). We are also working with several companies that are showing interest in VyOS as a platform and contribute to the project in commercial means and via human resources, and that is great, however, it’s not enough at this scale.

At this point, I started thinking that current situation is not something that can be considered as fair and not really make sense.

This are just some of questions that came to my mind frequently:

  • Why those who not contributing literally nothing to the project, getting the same as others who spend their time and resources?

  • Why companies like ALP group using VyOS in their business and claiming publicly that they will return improvements to upstream when they are not actually returning anything? Why do some people think that they can come to IRC/Chat and demand something without contributing anything?

  • Why are those cloud providers that using VyOS for their businesses not bothering to support the project in any way?

I would like to remind you of the basic principles of the VyOS philosophy established from its start:

VyOS is a community driven project!

VyOS always will be an open source project!

VyOS will not have any commercial or any other special versions!

However, if we all want VyOS to be a great project, we all need to adhere to those principles, otherwise, nothing will happen. Community driven means that the driving force behind improvements should be those interested in them. Open source means we can’t license a proprietary component from a third party if existing open source software does not provide the feature you need. Finally, free for everyone means we all share responsibility for the success or failure of the project.

I’m happy and proud to be part of VyOS community and I really consider as my duty to help the project and the community grow. I’m doing what I can, and I expect that if you also care about the project, you will participate too.

We all can contribute to the project, no matter if you are developer or network engineer or neither of this.

There are many tasks that can be done by individuals with zero programming involved:

  • Documentation (documenting new features, improving existing wiki pages, or rewriting old documentation for Vyatta Core)

  • Support community in forums/IRC/chat (we have English and localized forums, and you can request a channel in your native language like our Japanese community did)

  • Feature requests (well described use cases from which can benefit all our community: note that a good feature request should make it easier for developers to implement it, just saying you want MPLS is not quite the same as researching existing open source implementations, trying them out, making sample configs contributors with coding skills can use for the reference, drafting CLI design and so on!)

  • Testing & Bug reports

  • Design discussions, such as those in the VyOS 2.0 development digest

If you work at the company that uses VyOS for business needs please consider  talking with CEO/CTO about:

  • Providing full/part time worker(s) to accomplish tasks listed above

  • Provide paid accounts in common clouds for development needs

  • Provide HW and license for laboratory (we need quite a lot of HW to support all of the hypervisors, same is true about licenses for interworking testing)

  • Buy commercial support & services

In January, we’d like to have a meeting with all current contributors to discuss what we can do to increase participation in the project.

Meanwhile, I would like to ask you to share this blog post to all whom it may concern.

All of the VyOS users (especially those companies that use VyOS in their business) should be aware that is time to start participate in the project if you want to keep using VyOS and rely on it in the future.

Brace yourself.

Change is coming!

14 responses
It may be some dramatic language, but the point is perfectly valid: either we all make it happen, or it doesn't happen. It bothers me a bit that a plan for gradual rewrite and using Python in 1.2.0 hardly got any attention. If no one needs 1.2.0 enough to contribute to it, I may as well focus on the cleanroom rewrite. ;)
My company is looking to bring our VMs back on premise. Virtual Routers will be needed. I currently run VyOS in a Hyper-V environment. I can offer testing in a Hyper-V which will also allow me to learn more in-depth. Doing so, providing the information needed to present to my team about incorporating VyOS into our network.
YeongMin thanks for the offer. Join us on there is project related to Hyper-V/Azure
I use VyOS for personal use and i want to contribute to it but i'm not be able to write perl code (only C and a little bit of python), and i know basic network architecture (CCNA level). If you say me how to test VyOS on VMs (like KVM) or how maintain some (not critical) parts of code i can try do to it. Andrew
Oh, another thing: I think that OcamML is not a good language (not at a technical level..) because it is not so used and known by the users and amateur programmers.. maybe Python is a better choice, in my opinion..
Andrew, did you read ? It's about writing config scripts (in 1.2.0 too) in Python. Perl has to be eliminated. As of OCaml, the old config backend code was in C++ which is very widely known, and you can count people who ever touched it by the digits of one hand. Casual contributors only ever contribute to config scripts.
I use VyOS @home to "solve" the buffer-bloat problems and un-equal bandwidth allocation I have been having with pfSense. I am running the router on XenServer 7 with PCI-E adapter passthrough. Not much coding skills on my side, however I do consider myself a darn good engineer. Scripting and Ansible I can do. I can contribute documentation and testing and design guides for various use cases. Network sills roughly @CCNP/CCIE level. I can probably contribute a day per 2 weeks + moderation. if we adopt this @Work, the manuals I will be writing anyway can be re-used. We mostly do video and ISP stuff. I also have access to some Public XenCloud Resources and and a couple of XenServer clusters. Normally I build a dev environment for a smaller scale mirror of production, so there are probably going to be resources left to use. Buying commercial support should be a no-brainer for our CTO. I am also aware of at least one large (thousands of racks, 10s of thousands of VPSs) collocation/hosting provider that uses VyOS and Vyatta without supporting the project in any fucking way (except complaining that some obscure shit does not work for them).
Hello, Bogdan! Thanks for your comment. All help is welcome, especially in documentation field and forum/chat. We also aware of many MSPs which just do nothing to support the project and this is sad as we saving them tons of money. I think we will have to address that with 1.2 stable release, so many of them will not be happy, but who cares. We only care about active community members :)
I am interested in supporting VyOS. Where and how can I get started.
I use vyos @home, replaced pfsense and never looked back. Having said, I think contributing is difficult, because it's a complex piece of software. I looked at the multiple repos and it's not that easy to follow what's going on, unless you a have clear mental model of its architecture. I like the direction 2.0 is going, and although I'm not fond of OCaml, I see it definitely works for this use case. Using Python for scripts is also a great improvement. Hope to contribute for 2.0
Juan, I suppose 2.0 will keep all its config scripts in a single repository. The size of the /opt/vyatta dir in 1.1.7 is 7.5M, including some compiled binaries, the raw size of the vyos-specific source code may be like 10-15 mbytes at best, and for git it's nothing. I agree over-fragmented codebase is making things really hard for new contributors.
I'm a student. I run a small lab at home and the lab uses VyOS for its routing. I also use EdgeOS as the core router for my whole household. I have a love for network and backend programming. If VyOS weren't primarily written in Perl, I'd definitely love to make it the primary project that I contribute to as a hobby.
2 visitors upvoted this post.