Coder Social home page Coder Social logo

Comments (5)

jordanschalm avatar jordanschalm commented on July 17, 2024 1

I prefer Option 2 even if the port opening has to be done manually. For a few reasons:

  • Even if we're constantly polling GitHub, we'll always be waiting longer for deployments to happen.
  • I suspect the polling design would respond less gracefully to "weird" events without the context of a webhook payload (renaming the repo, force pushing to roll back, etc.)
  • Omitting the port opening issue, I think we can all agree using webhooks is a better, more elegant design than polling (if we can't, lmk 😅). And I don't think it's worth it to use a worse design for the whole system in order to save one step during setup.

from inertia.

jordanschalm avatar jordanschalm commented on July 17, 2024

We're considering two high-level designs for the daemon:

  1. Polling Daemon - Get the deployable resource every N mins, if it is different from our current version, pull+deploy it.
  2. Server Daemon - Listens for incoming webhooks POSTs, checks that the branch is the deploy branch, if so, pull+deploy it.

If we're going to prototype these two designs, we should come up with some properties we want to compare between the two, so we know how to decide once the prototypes are built 😀. But I think unless we're going to measure CPU/network usage between the two (probably pretty similar and negligible), we can decide between the two without prototyping them.

from inertia.

chadlagore avatar chadlagore commented on July 17, 2024

I agree. I'll reiterate the port opening property, if that can some how be automated away I'd prefer design 2 (I don't see how it can, as you say very provider specific). Thats my central hangup on 2.

from inertia.

bobheadxi avatar bobheadxi commented on July 17, 2024

Yeah I don't think having to manually open a port is too much of a price to pay for a cleaner overall design

from inertia.

chadlagore avatar chadlagore commented on July 17, 2024

Even if we're constantly polling GitHub, we'll always be waiting longer for deployments to happen.

Agreed.

I suspect the polling design would respond less gracefully to "weird" events without the context of a webhook payload (renaming the repo, force pushing to roll back, etc.)

Mayyyyybe.

Omitting the port opening issue, I think we can all agree using webhooks is a better, more elegant design than polling

I agree, and after some digging, it seems that this is how AWS CodeDeploy and other CD services integrate with github - as expected - but they have the benefit of being able to control port access on their end.

The port is a price we have to pay for not owning our own cloud datacenter. Now whose fault is that? (glares at @bfbachmann)

👍 on server daemon.

from inertia.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.