Join the conversation

Sign in to join this conversation, and others like it, in the communities you care about.

ZEIT

Our mission is to make cloud computing as easy and accessible as mobile computing. You can find our Next.js community here.

ZEIT / Now

clarify future support of docker on now platform

clarify future support of docker on now platform

ZEIT/Now · November 8, 2018 at 6:21pm

clarify future support of docker on now platform

ZEIT / Now · November 8, 2018 at 6:21pm
It seems zeit is moving away from allowing customers to utilize Docker as a common 'primitive'; @rauchg would you kindly clarify this?
Load previous messages

November 8, 2018 at 9:00pm

@matheus

@rauchg

my original question is not answered. I have zero motivation to migrate from dockerfiles to the 'builder' abstraction mentioned in today's announcement. It would be appreciated if you gave users a transparent answer so they can plan accordingly.

like-fill
9
  • reply
  • like

@peters yes, ultimately we do plan to remove Docker support. We thought a lot about containers for the past 3 years, analyzed thousands of use cases and spoke with thousands of customers, and we concluded that functions/lambdas are superior to containers for the vast majority of workloads.

We're already writing a blogpost with more details on our thinking, reasoning and conclusions 👍

like-fill
12
  • reply
  • like

I'm very interested to hear the proposed solution for loops/jobs that is hinted at in the new Now v2 docs. It's hard for me to judge this new direction until "the rest" of the features are released. I would be open to the idea of refactoring my projects into this new approach but will have to wait and stay on v1 for now.

  • reply
  • like

@ben-stocks you're not alone – we have multiple workloads on Now v1 that rely on cronjobs :)

That's what I mean above with the fact that there's absolutely no rush to upgrade: we will only start thinking about deprecating v1 once we have a clear path for the most common and critical usecases that we see on v1. We already have something in mind for cronjobs and we believe it's going to be very nice.

Edited
like-fill
5
  • reply
  • like

Once again, I apologize for how aggressive/blunt the warnings/banners are. It wasn't our intention to make it sounds like we're going to shut v1 down any soon or that it's considered a "legacy" system – it's not!

like-fill
5
  • reply
  • like

My beef with serverless is vendor lock-in, I am forced to change my application, install sdk or configs to be able to use Zeit/Azure/AWS, Dockerfiles + HTTP was 100% portable. I see serverless/function as a service as an optimization for high frequency stuff, but a lot of businesses (SMBs) still need automation around deployments, IMO the reason Zeit's now got popular in the first place was first-class Docker support with minimal config and 0 code change

like-fill
36
  • reply
  • like

I want to second the issue of vendor lock-in. I love now because I can just throw a simple node process or a docker file for more sofisticated use cases at it and it will run. But I can just as easily run it anywhere else that runs node or docker. An application built for the v2 can be run only on now v2 with the proprietary builds and routing and only until the paradigme gets changed again in v3.

like-fill
19
  • reply
  • like

@chrillo plus you get a managed CDN on top of it that respects Cache headers, that was a big plus for me

like-fill
1
  • reply
  • like

I usually use vanialla cloudflare which in it self is proprietary but could be swapped with any other cdn and gives me more control than the now integration. Having burned myself with parse.com back in the day I avoid proprietary stuff which I can not easily substitute like the plague

Edited
like-fill
3
  • reply
  • like

Hm, a use case I ran into last week seems like it would be much more difficult in v2: Generating pdfs dynamically using puppeteer. Forking pptraas.com and applying some customizations means we get an easy-to-deploy docker instance with simple upstream updates that is pretty much click-to-deploy on v1 (or anywhere else).

like-fill
6
  • reply
  • like

I might give DigitalOcean One-Click Docker deploy a try...

like-fill
8
  • reply
  • like

November 9, 2018 at 12:26am

These v2 changes effectively make any Python development useless, may as well remove Python in the examples. This is a big step from generic dev to purely web dev. Why abondon the severless docker work annoucned in August ?

like-fill
10
  • reply
  • like

November 9, 2018 at 1:33am

I'm genuinely interested in seeing where this goes. I was preparing to build a product with Elixir/Absinthe using the Docker support of v1, but to be totally honest, this announcement gave me a bit of a reality check with regards to my infrastructure decisions. I think that Zeit is totally correct in its reasoning why lambdas are better — but I'm a little disappointed that I might not be able to take what makes me happy today into the future on Zeit's platform.

like-fill
10
  • reply
  • like

November 9, 2018 at 2:36am

I'll be blunt, if you remove support for Docker you will lose us as a customer. I have explicitly NOT chosen a Lambda model for our products, precisely because of vendor lock-in. I will not be harassed into 6 weeks of "oh this dependency isn't installed on the lambda... what do". Docker's whole existence is designed to solve that problem. You're going backwards.

Only and if I do not have to use lambda (e.g. I can even deploy my apps raw using only yarn/npm install and start), I will stick around. Otherwise, again I'm on the hunt.

This is why clarity is needed.

like-fill
21
  • reply
  • like

The Now 2.0 PHP builder is simply useless for modern PHP development. We don't do "one file per endpoint" for years and this practice is extremely discouraged in the PHP community nowadays due to the difficult to share common behavior (e.g middlewares) between multiple entrypoints.

Even if you add support for multiple PHP files by doing static analysis, it won't be able to detect dynamic dependencies that are resolved in runtime (e.g command handlers).

Also, with this new PHP builder we don't have any control over the language extensions that are installed and the php.ini config. We have zero control over the environment, this is like getting back to 2000s shared hosting providers.

I think the biggest flaw here was the naming of Now 2.0 and how you presented it. You could simply name it "now lambdas" or something that does not imply that it is going to replace Now 1.0 Docker deployments, because it is far from being a good replacement the way it is.

like-fill
18
  • reply
  • like

November 9, 2018 at 5:07am

Given v2, what now is the recommended way to deploy a starlette.io application or a Flask app? If I understand things correctly, Docker support is going bye-bye ... so where does that leave us folks who enjoyed the ease of deploying such dockerized application with a single command in the terminal?

like-fill
1
  • reply
  • like

So this means after

1. coming from now without docker support, where i could not build ELM projects (because the used container had problems)

2. I got into the happy land of configuring my own docker container and finally being able to build ELM projects

3. We are back to no control over the container and we also got a lock in...

like-fill
5
  • reply
  • like

November 9, 2018 at 7:08am

This is frustrating to hear. I have spent so much time trying to get my projects running on Zeit. There are still some issues left, but now all that work seems wasted. Will there ever be possible to deploy stuff like Craft CMS on Zeit? Or will this purely be for custom apps where you can control everything?

like-fill
5
  • reply
  • like

November 9, 2018 at 9:20am

The Now 2.0 PHP builder is simply useless for modern PHP development. We don't do "one file per endpoint" for years and this practice is extremely discouraged in the PHP community nowadays due to the difficult to share common behavior (e.g middlewares) between multiple entrypoints.

Even if you add support for multiple PHP files by doing static analysis, it won't be able to detect dynamic dependencies that are resolved in runtime (e.g command handlers).

Also, with this new PHP builder we don't have any control over the language extensions that are installed and the php.ini config. We have zero control over the environment, this is like getting back to 2000s shared hosting providers.

I think the biggest flaw here was the naming of Now 2.0 and how you presented it. You could simply name it "now lambdas" or something that does not imply that it is going to replace Now 1.0 Docker deployments, because it is far from being a good replacement the way it is.

The difference between feeling excited and anxious (adding features / changing features). I'm not familiar enough with devops to really understand these changes yet. But I do feel anxious about running an Apollo stack on now, uh.. now.

like-fill
2
  • reply
  • like

November 9, 2018 at 10:42am

Uh... my first thought when I read "Now 2.0" was: "I really hope they do not drive it against a concrete wall...". After reading into it I'm in fear that this might really happen for me. "cloudified Docker" support was one of the key points for me. I've even used Now in examples of several of my print articles to easily deploy some Docker-ized stuff. I planned to convert some JAMstack projects over to Now... but without Docker I do not see how I could run this Rust-code. I really hope that this isn't the end of "Now" as we know it.

like-fill
3
  • reply
  • like

Here I am exited as a kid to read the new blog post about Now 2.0. Lets see what the awesome guys at Zeit have in store for us.

Wait... what?! What just happened? Did I miss something?

I honestly thought this would be the announcement of Serverless Docker coming out of beta with the full feature set. Maybe some new features announcements and migration guides for older docker images and node applications.

Boy, was I not expecting this.

Only in august, just 3 months ago, you guys announced Serverless Docker. I was like f*ck yeah this is awesome. Simple docker files for everything. Sub 500ms container startup. Max concurrent requests. Optimised docker images. Running tests as part of your build process. Static deployments using a Docker file. No vendor lock-in. I remember thinking to myself: Dude, this is what the future looks like. And now we are going back to lambdas all over again.

I just think its strange that a flagship feature announced 3 months ago is now just brushed aside. Like "We thought a lot about containers for the past 3 year... and lambdas are superior". Okey, thanks for the update...

You guys probably have your reasoning and I am curious to find out. Maybe its the technical limitations or the feasibility of a business model based on Docker containers. I don't know... from a developer/customer point of view I honestly feel like you guys just took a step backwards.

Edited
like-fill
34
  • reply
  • like

November 9, 2018 at 12:17pm

Serverless is a DevOps centric developer unfriendly paradigm. I'm certainly not moving to Serverless. I suppose I'll have to look at other hosting options. Very disappointing.

like-fill
5
  • reply
  • like

November 9, 2018 at 1:18pm

We literally just yesterday decided that we would switch our docker containers to now.sh after a week of experimenting and testing. Now after this announcement this makes the new service and any future of using it much more dubious. For our infra we already have pretty good serverless lambda support when we need it via the https://serverless.com/ framework.

like-fill
3
  • reply
  • like

The timing could not have been worse :/

like-fill
5
  • reply
  • like

Unfortunately I couldn't move one of my applications to the serverless paradigm even if I wanted to—I am rendering SVGs server-side and depend on fonts and other binaries to be installed. Docker was the perfect solution and Now's docker hosting was great.

Does anybody in this thread know of any alternatives that provide a similar service to Now v1 docker?

like-fill
10
  • reply
  • like
Your message here...

*bold*_italic_`code````codeblock```