In 2019, DevOps still remains something of a codeword: a sphere reserved to developers trained in writing complicated scripts for tools only they know how to use. Tools whose purpose is to make your life easier with automation, but somehow:
take weeks to configure and launch
require a designated developer to oversee
cannot be easily modified
Buddy is a CI/CD tool that doesn't require DevOps experience and can be used by beginner and expert developers alike. We did that by replacing scripts with preconfigured actions(builds, tests, deployments, etc.), and packing the whole thing in a clear and telling GUI. And making it run deadly fast.
Remember the times when setting up remote servers was a chore? Now you can spin a droplet on DigitalOcean in 55 seconds with 1-click. This is what Buddy does to DevOps: frees automation from the constraint of configuration scripts, documentation, and sluggish performance.
One of our clients is Bay Area News Group, the largest publisher of newspapers in San Francisco. "We are using Buddy to automate Continuous Delivery tasks for three main repository branches: QA, Staging, and Production," says Phillip Marashian, the developer behind Bay Area's delivery process.
Essential Reading: Learn React from Scratch! (2020 Edition)
The main repo is hosted on GitLab and has 2 submodules which need to be updated before the deployment. The workflow looks like this:
fetch changes from GitLab
update sub repositories
upload files to DO droplet
And here's how it looks reproduced into Buddy:
"All this was possible before Buddy, but the config files would have been extremely complicated and testing would have been very slow," says Philip. "I've done extensive CD with yaml files and manual scripts. It's all doable, but it's very abstract and hard to test."
The green icons in the pipeline are Node actions which prepare the environment with
npm install and pull the files from external repositories. Buddy uses isolated Docker containers in which you can run your own commands:
"[Before] I had experienced issues building production files. The build script required significant resources over and above what I needed to server my app. I would have ended up paying a lot for a cloud server just so I could build the files. With Buddy it was trivial to trigger the build script."
Finally, the application is built and deployed to a DigitalOcean droplet. Authentication details, deployment paths, trigger conditions—all can be easily set from the GUI:
Deployments are the crown feature of Buddy. This is what makes them stand out from other CI/CD tools:
only changed files are deployed (no need to deploy the whole repository every time)
the deployment mechanism is heavily optimized for high speed
user passwords and server credentials can be stored in ENV VARs
you can roll back changes with one click
"With the DO action I was able to upload the files and didn't have to worry about authentication tokens, server paths, etc.," says Phillip. We also asked him why he went for DO instead of other providers. He delivered an answer which perfectly aligns with Buddy's take on DevOps:
"They have a very slick UI. Of all cloud providers I’ve used their UI makes it easiest to get a server box up and running with no headache. I can do what I want within their platform without having to figure out how to do it. [Also], they make it very easy to point a domain to a server if you’re using them for domain DNS."
Although the GUI is what makes Buddy stand out, Buddy fully supports YAML configuration as well, making it easier to switch from other CI/CD tools. For example, here are the two last actions, an SSH script and a Slack notification, defined in the YAML config:
So if you're one of those guys who even check the weather from the terminal and are afraid of more than 4 colors displayed at once, you can breathe a sigh of relief.
We are very excited about the future of Buddy. The feedback we are getting from developers is outstanding: 90% of the 10000+ paid accounts come from organic traffic (i.e. word-of-mouth recommendations), which is absolute madness. Reaching out to DigitalOcean users is a great way to spread the word about CI/CD, and
Buddy is the perfect vessel to do it, especially that both platforms are blazing fast and have a very similar user-friendly approach to UX.
Right now, we are genuinely interested in how DigitalOcean will develop its Kubernetes services and how we can help developers better streamline K8s management on DO's clusters. One thing is for sure: the future is here, and we are super happy to be a part of it.
Like this article? Follow @chrisoncode on Twitter