Snap packaging has been gaining a lot of momentum recently, from desktop apps to cloud services, and everything in between. To learn more about the people and projects that are building snaps Michael Hall, Ubuntu Community Manager, reached out to Aaron Ogle a Core Contributor to the Open Source Project Rocket.Chat.
How did you find out about snaps?
At Rocket.Chat we’ve always been big users of Ubuntu. Our recommendation for our users has always been to use Ubuntu 14.04LTS to install Rocket.Chat. Recently, our users began to request an Ubuntu 16.04LTS guide and, while doing our research, we came across snaps. We were excited about the superior experience we could offer our users so we couldn’t help but give it a try.
What was the appeal of snaps that made you decide to invest in them?
There were several reasons to invest in snaps. Let me list a few:
- Security and Bullet-Proof Isolation: It was obvious to us this was a key design decision of snaps. We depend on this security and isolation so we can coexist with other installed apps on a host. We’ll also rely on it in the future as we scale across a cluster of hosts with Juju.
- Auto Updates: We can easily get updates into the hands of our users.
- Transactional Updates: Our users can easily roll back to a known good version which saves us a lot of support headaches.
- Ability to Deliver Full Stack: We are able to bundle up Mongodb along with our server, completely eliminating a setup step.
- Deployment Time: In our tests, we were clocking under a minute from command to full running Rocket.Chat server. Very impressive!
Most of all, the wide availability and use of Ubuntu is incredibly valuable for us. To take that process and make it even easier for our users was an opportunity we couldn’t resist!
How does building snaps compare to other forms of packaging you produce? How easy was it to integrate with your existing infrastructure and process?
Rocket.Chat supports over 30 deployment platforms across many different on-premises and cloud solutions. From distributing just a tar ball, through pre-fab virtualized environments, to one-click deploys, our goal is to make it as easy as possible for our users to get their own Rocket.Chat server up and running.
What we really loved about snaps is it combined the best parts of a lot of these distribution methods, while avoiding many of their shortcomings. Getting Rocket.Chat snapped was as easy as defining a simple yaml file and adding into our CI. This is definitely one of the easiest distribution methods we have ever used.
Do you currently use the snap store as a way of distributing your software? How do you see the store changing the way users find and install your software?
Absolutely! We have our CI setup to automatically publish new releases to the snap store. We really like it as a distribution method as our users are able to install with a simple command: `snap install rocketchat-server` and it quickly downloads, installs, and then later on actually auto updates.. We think this is amazing!
What release channels (edge/beta/candidate/stable) in the store are you using or plan to use?
Right now we are just making use of the Stable channel for releases and the Edge channel for our develop builds. That said, we can see us making use of the Beta and Candidate channels in the near future.
Is there any other software you develop that might also become available as a Snap in the future?
We also are releasing snaps for our desktop client. If we release anything else in the future, we will definitely look at making it available as a snap!
Besides your own software, what applications or services do you use that you would like to see provided as snaps?
We say snap all the things! But, I think several of us at Rocket.Chat would love to see Visual Studio Code in a snap! We were pleasantly surprised at the number of snaps already out there and it seems to be growing at a great pace. I personally saw that someone was working on getting Google Play Music Desktop Player (Unofficial) snap. I will definitely be using that one and on the lookout for others I can start using 🙂
About Aaron Ogle at Rocket.Chat
Aaron Ogle is a Core Contributor to the Open Source Project Rocket.Chat a long time Ubuntu fan (since Ubuntu 4.10!), and a technology enthusiast.
Rocket.Chat is an open source group chat server for offices and family that you can deploy in seconds. Featuring a beautiful Slack-like user experience, it has rich features such as file sharing, video conferencing, geolocations, bots and much more. Rocket.Chat supports web, mobile, and desktop clients. Like Ubuntu, Rocket.Chat is created by an open source community of over 200 contributors and deployed by tens of thousands enthusiastic global community members. Feature list and documentation is available at https://rocket.chat/, MIT licensced source code at https://github.com/RocketChat/Rocket.Chat, and globally active 24 x 7 community support server available at https://demo.rocket.chat
Ubuntu offers all the training, software infrastructure, tools, services and support you need for your public and private clouds.