-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deploying to non-AWS platform? #64
Comments
Hey @mbrowne we are focused on AWS, which is a pretty good default fwiw, but would absolutely welcome a PR that opens up support for deploying to other cloud vendors. We started with AWS because it was the only story for serverless for a long time and remains the market leader for those technologies which we depend on. I like the theory of going multi cloud but less confident about the practice. As you mentioned, Enhance is built on https://arc.codes which deploys using infra-as-code (IaC) solution called CloudFormation to Lambda running Node. Cloudflare workers aren't Node (tho they often claim compatibility the truth is less simple) and don't have a very good IaC story. GCP does support Node but last I checked they also do not have a very good IaC story. I know both CF and GCP can work with Terraform but with the recent licensing uncertainty I do not think its a very good choice for IaC personally. Anyhow, open to working with you to find a solution for other clouds. Or, if you interested, I'd also be happy to get you setup on AWS. |
Thanks for the explanation. I was wondering if maybe there was some more platform-agnostic code behind the scenes that I could self-deploy, with the end result being something like Remix that can be deployed on any kind of cloud function or even a Docker container (although serverless is preferable). Having the deployment process officially supported by Enhance tooling is less important. At this point we are only in the evaluation stage, and this would be for one of our apps. It's discrete enough from our other apps that in theory we could use AWS for this one even though the rest of our infrastructure is in Google Cloud and Cloudflare. So if we decide to go with Enhance, maybe we'll just do that. But it does seem like it might be a shame for this framework to remain locked in to one vendor...that might be more of an issue for others than it is for my company (and even for us, we'd have to make sure that the ingress/egress costs for making this app's data available to the rest of our stack would make sense for us). |
So the scope of Remix is pretty limited, GET and POST requests. There's a lot more to 'fullstack' than HTTP. Architect can do a whole lot more and by virtue of that so can Enhance. Web sockets. Scheduled functions. Queues. Events. Built-in database (DynamoDB). All deployed w deterministic IaC. If we limited the scope to GET/POST over HTTP then building something that can go to other vendors is pretty simple! But you'll run into issues pretty quickly with such a limited architecture. Not sure what the best path forward would be but personally think the 'cloud agnostic' marketing is glossing over a lot of essential complexity. People like to talk about lock-in but I don't think you can avoid it truly. You have to pick and choose your battles with vendors you can trust. After the news of the past few weeks I personally wouldn't trust GCP or CF. Not to say AWS doesn't have issues but I feel its a way more mature, stable and transparent organization. |
That being said you could always call the |
@brianleroux you make a lot of good points about the general goals of the framework, which I didn't fully realize. It might help if I explain more about the use case...this is for a relatively simple blog-like site with thousands of articles that needs to load extremely fast and handle occasional spikes of high traffic. (The site is currently running on WordPress and the JS it's using should really be rewritten.) So I doubt it will need anything more than GET/POST. I'm still not sure if Enhance is the best fit - it's cool that it has all those additional features though :) @macdonst I might try that out, thanks. Since we're already using Remix for our other apps, I wonder if there might be an opportunity to use remix resource routes in combination with |
@macdonst Thanks, I might not have time for a call until next week, but I joined the discord (username |
It looks like rendering enhance components using remix would be doable... I'm sure that the client-side part of the web components implementation is where things would get more complicated (setting up the compilation process for that), but for server-side rendering it was pretty straightforward. Here's a POC: |
fun stuff. @mbrowne what does this buy you that the regular path with Enhance doesn't have ? |
@brianleroux Just the ability to deploy it anywhere and not only with AWS. The rest of our apps are all running in kubernetes in Google Cloud, and we're probably going to move out main frontend to Cloudflare workers. So AWS doesn't fit into our stack as easily, and would come with more network overhead. Remix apps can be deployed as Cloudflare workers or Docker containers or several other things |
ok, cool, so…if your app only does GET/POST I think its a pretty small lift to get regular Enhance working on Docker (and probably CF Workers tho we have less desire to support them). bonus: no build step. is that something you'd use ? |
In theory, yes. We are wrapping up our project just doing everything in Wordpress right now, so for the moment my POC is an experiment to hopefully come back to in the future for a performance boost. But I imagine that others would find this useful as well, for similar blog-type sites that don't need more than GET/POST. |
cool, here's an example dockerizing enhance https://github.com/brianleroux/enhance-example-docker will chat w the team about adding to the docs |
So simple! Thanks. I didn't realize it would be ok to use the |
Yeah it's just a bare bones Node server so it's fine as long as you stick to http stuff |
Hi, what considerations should I be aware of if I want to deploy an Enhance app to another platform like Cloudflare Workers or Google Cloud? It seems like in theory, the output should just be JS functions that can run anywhere, but I didn't see anything in the docs talking about building/deploying without Architect.
The text was updated successfully, but these errors were encountered: