Comments (5)
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.
We're considering two high-level designs for the daemon:
- Polling Daemon - Get the deployable resource every N mins, if it is different from our current version, pull+deploy it.
- 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.
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.
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.
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)
- daemon: search and pull docker/compose image instead of hardcoding version
- daemon: enforce project versions serverside HOT 1
- release: inertia v0.6.1
- chore: Archlinux User Repositories release? HOT 1
- chore: automate distribution
- deprecate web app?
- client(bootstrap): pull from github container registry instead of docker hub
- release: inertia v0.6.2
- support workflow where all inertia remote configuration is provided HOT 1
- unclear what to do if login token is expired
- remote login output missing newline
- release: inertia v0.7.0 HOT 1
- test: TestBuilder_Build "type dockerfile" seems flakey HOT 1
- cmd: unify CLI alerts
- medium article: many links are now invalid HOT 1
- docs: CONTRIBUTING.md Development Tips table of contents has strange scope HOT 2
- inertia incorrectly reports upgrade is available HOT 4
- daemon: use standardized docker registry API for `GetLatestImageTag`
- release: inertia v0.7.1
- cmd: mysterious new-line at start of most output HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from inertia.