[HN Gopher] Show HN: Relay - Event-driven DevOps automation
       ___________________________________________________________________
        
       Show HN: Relay - Event-driven DevOps automation
        
       Author : product1087
       Score  : 41 points
       Date   : 2020-06-25 20:21 UTC (2 hours ago)
        
 (HTM) web link (relay.sh)
 (TXT) w3m dump (relay.sh)
        
       | stuff4ben wrote:
       | So I didn't see anything on your site on my cursory glance at it,
       | but I'd like to know if you have any use cases replacing Jenkins
       | Pipelines and Helm deployments into an OpenShift/Kubernetes
       | environment? I'm writing a lot of Jenkins pipelines now and
       | groovy is killing me!
        
         | impl wrote:
         | We do have a Helm integration that might be able to help you
         | out: https://relay.sh/integrations/helm/
         | 
         | The limiting factor right now would be whether your cluster is
         | accessible to the internet, which of course isn't super common.
         | We are working through what our story for connecting to on-prem
         | infrastructure looks like, so if you can provide any additional
         | details on your environment, it would be helpful!
        
       | lomkju wrote:
       | I think we can do the same things using github actions now. P.S
       | we have self-hosted runners in our enviroment where each step is
       | a docker container too.
       | 
       | We have complex flows where we use Slack, Spinnaker(Webhooks),
       | Terraform, PagerDuty ... and much more.
       | 
       | Is there something better that we can achieve with this?
        
         | impl wrote:
         | Hi,
         | 
         | This is a good question, thank you! The flow of events into our
         | system is somewhat different than GitHub Actions. We're trying
         | to be a consumer of all sorts of events, including, say, data
         | published to AWS SNS or via a Docker Hub webhook[0]. All of
         | that isn't quite in place yet, but we want to act more like an
         | event broker than a CI/CD solution alone.
         | 
         | One concept we're throwing around is supporting CloudEvents[1]
         | and dispatching workflows based on event types. If anyone has
         | experience with CloudEvents we'd love to hear if that would be
         | something useful to you.
         | 
         | [0]: https://github.com/relay-integrations/relay-
         | dockerhub/blob/m...
         | 
         | [1]: https://cloudevents.io/
        
           | jacques_chester wrote:
           | I'm writing a book on Knative and have some material in there
           | about CloudEvents. It's on the MEAP program and the relevant
           | chapter was put up yesterday, as it happens:
           | https://livebook.manning.com/book/knative-in-
           | action/chapter-...
        
             | impl wrote:
             | Thank you! I'll take a look through this! Would it be okay
             | if I sent you an email in the next week or two for follow-
             | up questions?
        
       | tbrb wrote:
       | Sounds interesting. Have you any comparisons between this and
       | StackStorm? At first glance, this looks like it competes in a
       | similar market.
       | 
       | Additionally, is this only going to be a SaaS offering, or will
       | we have the option to self-host this as well?
        
         | bradhe wrote:
         | Hey there, as mentioned elsewhere I'm an engineer on Relay. Our
         | PM is busy right now so thought I'd jump in.
         | 
         | > Have you any comparisons between this and StackStorm?
         | 
         | Relay is very similar to StackStorm! One of the biggest
         | differences between Relay and StackStorm, however, is that
         | every step and trigger in Relay is just a docker container. You
         | can basically run any container you want, but containers that
         | are authored specifically for Relay are, obviously, better
         | (integration with the execution environment, our secrets
         | management service, etc.).
         | 
         | > is this only going to be a SaaS offering
         | 
         | This is another key difference between Relay and StackStorm: We
         | only offer a SaaS right now. That's not to say that we won't
         | eventually offer a self-hosted version (or some sort of hybrid
         | solution for that matter)--it's just the approach we're going
         | with for now.
        
           | tbrb wrote:
           | > every step and trigger in Relay is just a docker container
           | 
           | Ooh, that makes sense. This is also reminding me a bit of
           | Concourse CI (https://concourse-ci.org) as that's all docker-
           | based too, though last I checked it wasn't as kubernetes-
           | native (which I appreciate)
        
             | jacques_chester wrote:
             | There's a lineage -- Concourse was an inspiration for
             | Tekton, and Relay uses Tekton as part of its
             | substructure[0].
             | 
             | [0] https://relay.sh/docs/how-it-works/#workflow-execution
        
       | kevinsf90 wrote:
       | What's the pricing model? I don't see it on the website
        
         | captainavocado wrote:
         | We're thinking about a few different models, but haven't
         | settled on one yet. What kind of model would you be interested
         | in? Metered or other usage-based, per-seat or per-user, or
         | something totally different?
        
       | product1087 wrote:
       | Hi everyone! PM for Relay here.
       | 
       | Relay is an event-driven DevOps platform. It listens to events
       | from 3rd party services like AWS, Datadog, PagerDuty, Jira and
       | more to trigger simpler, smarter workflows that automate tedious
       | tasks. A lot of existing solutions either require a lot of
       | upfront DIY work (AWS Lambda or running your own script) or they
       | weren't built for DevOps teams (Zapier, IFTTT).
       | 
       | Relay provides out-of-the-box workflows for common use cases like
       | cloud cost optimization, security, incident response and more. If
       | those don't work for you, you can write your own workflow using
       | integrations with dozens of cloud provider services, open source
       | tools and APIs that can be composed together in a YAML-based
       | workflow (yes, I know, more YAML).
       | 
       | Some features we think are interesting:
       | 
       | - Visual execution graph shows exactly what's happening in your
       | workflow run.
       | 
       | - Connections make it simple to authenticate to other services.
       | 
       | - Audit log shows who initiated every workflow run, whether
       | manual or by an external service.
       | 
       | - Human in the loop approvals give you full confidence in your
       | automation.
       | 
       | - Growing community of 30+ open source integrations with AWS,
       | Azure, GCP, Datadog, PagerDuty, VictorOps, Jira, Terraform, Helm,
       | and more.
       | 
       | We also just recently put out a blog post about some pretty novel
       | uses of Knative and Ambassador to create user-generated triggers:
       | https://blog.getambassador.io/user-defined-webhooks-in-puppe...
        
         | smt88 wrote:
         | Looks great! "Zapier for DevOps" would convey it a lot faster.
         | It didn't click for me until I got to that part. I'm excited to
         | try it out!
         | 
         | A couple things:
         | 
         | 1) Please, _please_ support some other config file other than
         | just YAML. Even JSON would be an improvement, since you wouldn
         | 't have to change your config reader library. YAML has been a
         | miserable nightmare to use in other tools like Open API Spec.
         | I'm not alone in my YAML hate, either[1][2][3][4].
         | 
         | Implicit typing and semantic whitespace in a data file is
         | insane. At least in Python, you're not unlikely to get an error
         | if your whitespace is off. In a config file, you might just end
         | up with dangerous/confusing behavior.
         | 
         | 2) I'm surprised you used Relay, which is already used by
         | Facebook. I don't think Facebook is going to care that much,
         | but it's going to be really hard to Google this library.
         | 
         | 1. https://dev.to/jessekphillips/stop-using-yaml-3kec
         | 
         | 2. https://hitchdev.com/strictyaml/why/implicit-typing-removed/
         | 
         | 3.
         | https://devopsdays.org/events/2019-stockholm/program/philipp...
         | 
         | 4. https://www.arp242.net/yaml-config.html
        
           | impl wrote:
           | > _1) Please, please support some other config file other
           | than just YAML._
           | 
           | Although we don't directly advertise it, you can in fact
           | write a workflow in JSON and there's an underlying JSON
           | interchange format that is authoritative in our system. We
           | expect that any other languages we support would "compile" to
           | this JSON format. What other languages are interesting to
           | you? We've looked at CUE[0], HCL, and of course Puppet
           | itself.
           | 
           | [0]: https://cuelang.org/
        
         | jacques_chester wrote:
         | Where is Relay's data (configurations, step results/logs)
         | stored?
        
           | impl wrote:
           | It varies. We have a primary PostgreSQL database for non-
           | sensitive data including some workflow configuration. We
           | store sensitive data in Vault and logs in Google Cloud
           | Storage. A bit more info here: https://relay.sh/docs/how-it-
           | works/#where-and-how-is-my-data...
           | 
           | I'm happy to answer any questions about our storage and
           | security architecture too!
        
         | poppejans wrote:
         | What made you go for yaml rather than your own DSL? For a
         | service that's as programmable as relay, it seems nice to have
         | better support for branching control flow for example.
        
           | bradhe wrote:
           | Hey there, I'm an engineer on Relay. Our PM is busy so
           | thought I'd jump in here.
           | 
           | Great question on why we went with YAML instead of our own
           | DSL. The main reason is, really, YAML has become a bit lingua
           | franca for managing configuration of tools similar to Relay.
           | We wanted to keep Relay simple and make it as familiar as
           | possible. So YAML was our go-to choice.
           | 
           | We have some control flow primitives that you can configure
           | but to do really complicated logic we figured it's best to
           | push that in to the steps versus the configuration (there by
           | keeping the configuration simple). Here's a link to our (very
           | simple) conditional execution docs:
           | https://relay.sh/docs/using-workflows/conditionals/
        
       | [deleted]
        
       ___________________________________________________________________
       (page generated 2020-06-25 23:00 UTC)