Coder Social home page Coder Social logo

Comments (10)

mikestefanello avatar mikestefanello commented on July 18, 2024

That's an interesting idea. Can it be provided in a way that doesn't modify the existing code (ie, in a deploy directory, or something along those lines)? I've never used Fly.io before.

Perhaps also adding an example for GCP Cloud Run, Cloud SQL, and Memorystore would be useful.

from pagoda.

gedw99 avatar gedw99 commented on July 18, 2024

Yep deploy folder is perfect .

GitHub actions can use it and deploy.

from pagoda.

gedw99 avatar gedw99 commented on July 18, 2024

The other hosting providers can be done too of course. I tend to use fly because it’s anycast. So I standup an instance and via the cli or GitHub actions can scale the instance to any of the 30 data centers and it Al remains in sync.

also postresql works and scales in a master sake pattern . I normally pick Amsterdam as it’s the best for global origin. Than all slaves in the other 29 auto sync .

Clients get automatically send and load balanced to nearest DC and LB in each DC to how many instances you have in that DC.

this is why I guess I don’t use GCP or AWS.

S3 proxying also works and postresql is automatically Snapshot so if you blow away your Origin your can get your postresql data and s3 blobs.

from pagoda.

gedw99 avatar gedw99 commented on July 18, 2024

https://github.com/superfly/flyctl For cli.

https://fly.io/docs/app-guides/continuous-deployment-with-github-actions/ for git ops.

https://github.com/superfly/flyctl-actions

https://github.com/superfly/fly-pr-review-apps for GitHub or ops

https://github.com/superfly/fly-log-shipper For log shipping. I use nats as they suggest so I can log async which is much faster and takes load off main servers.

from pagoda.

gedw99 avatar gedw99 commented on July 18, 2024

For back control plane is also nats but hosted :

https://www.synadia.com/ngs

it’s identical to nats golang server used for logging but I can control fky, s3, dns, etc etc via ngs Nats. GitHub actions just call a makefile that modifies all the operational things.
Ngs is just the command and control system for talking to all this things

from pagoda.

gedw99 avatar gedw99 commented on July 18, 2024

Just realised that the docker compose has Redis and postresql.

2 options:

  1. run each standalone

https://github.com/fly-apps/redis/
https://github.com/fly-apps/postgres-ha

Then run pagoda as a dock on fly

  1. inject the binaries into the one docker

from pagoda.

mikestefanello avatar mikestefanello commented on July 18, 2024

So what would be required to add to this repo in order to make deploying via fly easier? Does this app require anything highly specific? I'm curious if including it will actually be of much help to people. As always, my concern with adding things is that it's another thing to maintain and stay on top of, so it has to be worth it. I thought about adding something for cloud run but I'm not really sure how helpful that is. The other problem is that the list of cloud providers is very long.

from pagoda.

gedw99 avatar gedw99 commented on July 18, 2024

A fly.toml
A dockerfile that runs the golang main.

The fly cli is used to run the deployment
The fly GitHub action to auto deploy it.

postresql is supported on fly. You can even scale it out using the fly cli

Redis i think is provided on fly. https://fly.io/docs/reference/redis/
I tend to use NATS Jetstream instead of Redis because you can run NATS embedded in your golang binary .

from pagoda.

mikestefanello avatar mikestefanello commented on July 18, 2024

I'm going to close this. There's an endless amount of places and way to host this and there's really nothing specific about this app that requires anything custom. I'm also considering removing both Postgres and Redis as a default in favor of SQLite and something in-memory to really make this template as rapid/easy/fast as possible. If that is done, then there's really nothing regarding deployment required.

from pagoda.

gedw99 avatar gedw99 commented on July 18, 2024

Yeah I changed to SQLite and marmot . It’s been great having clustering and real time updates

from pagoda.

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.