aspnet / Tooling

Issue tracker and info on Visual Studio tooling for ASP.NET
Other
256 stars 124 forks source link

Make a new version of MSDeploy that is CrossPlat #583

Open rschiefer opened 8 years ago

rschiefer commented 8 years ago

MSDeploy vNext should built on top of .NET Core and be crossplat. A common deployment contract across all supported platforms would be one less thing for developers to worry about so they can focus on solving their business problems.

MSDeploy has been a great tool which has stood the test of time with little investment. We could reuse the DSL but rewrite the backend, extend existing providers to cover other platforms and adding Linux and OSx specific providers as well. The other big need here is documentation. MSDeploy has always suffered from a lack of good documentation. Obviously it would be open source as well.

Its a great tool, lets give it a proper future!

sayedihashimi commented 8 years ago

Ok let's see how many people are interested in running MSDeploy (aka Web Deploy) on Linux. I was thinking SFTP/rsync are already well rooted with good support, so not much need for MSDeoloy but I'm happy to be wrong :)

tugberkugurlu commented 8 years ago

No offense to anyone who wants this feature but this is not an area that I want people to invest efforts in. Docker has a nicer deployment packaging concept than MSDeploy. It's more isolated, widely adopted, tech agnostic, etc., etc.

It would not hurt to have this xplat but in terms of spending efforts, I would rather for them to be spend somewhere else.

rschiefer commented 8 years ago

I agree Docker is important too but some teams will not use Docker. Docker is a hosting platform and requires more infrastructure setup in general.

MSDeploy is deployment tool only and may be a better option for some teams.

kraghavk commented 8 years ago

I too agree that Docker is far more important for cloud based environments. But there will always be those small inhouse projects or something that will be deployed within a LAN, which most definitely not have elaborate DevOps teams or budget for that matter. For these cases a CrossPlat MSDeploy will certainly be a god send.

richardszalay commented 8 years ago

Despite originally jumping on the retweet train, my thoughts are actually starting to echo @sayedihashimi and @tugberkugurlu. While I do like the features MSDeploy has beyond file syncronisation (database providers, etc), Docker solves these problems in other ways and is already cross platform.

So count me for team-Docker in terms of what I'd like to see invested in.

sayedihashimi commented 8 years ago

Yes the Docker story is being invested in regardless of this.

rschiefer commented 8 years ago

This is great news. We can have our cake and eat it too!

Another thought: Even with Docker you still you need a good way to deploy your application to the Docker image initially. WebDeploy could fill that need on Windows/Linux/Mac.

rschiefer commented 8 years ago

Ended up with 12 RTs on Twitter for this and I have less than 200 followers. We need to get the word out better. I'll keep promoting.

crossplatmsdeployrts

mac2000 commented 7 years ago

Here is one more case when it may be useful:

Front-end projects (just static files) hosted in bitbucket may use its pipeline feature to build assets and immediately deploy them to staging via msdeploy without any fancy technologies and need to have dedicated windows server

louisfischer commented 7 years ago

Docker is nice and all but msdeploy has a real use case for enterprise and on-premise. Docker only natively supports Windows 2016. Will an enterprise replace 1000s of servers just to use Docker?

Msdeploy is a real solid solution for dev-ops. @rschiefer has it right. MsDeploy just needs a little love in the documention area and code base. Rob Eisenberg and the team at docs.microsoft.com have been doing an awesome job getting the docs modernized.

Microsoft has been amazing me with all the openness over the last couple years. Let's keep it going with MsDeploy

sayedihashimi commented 7 years ago

I was just chatting with @shirhatti about this yesterday. @shirhatti we need to get this going!

cc @Andrew-MSFT

rschiefer commented 7 years ago

The community can help too! Sign me up.

louisfischer commented 7 years ago

Sign me up too...

breezewish commented 7 years ago

We are using msdeploy to deploy apps on Azure. Definitely making it cross-platform is great! rsync is not useful since our production service runs on app service.

louisfischer commented 7 years ago

It's been over 12 months since this issue was logged. Do you think it will eventually make it onto the board for development?

KallDrexx commented 7 years ago

I just want to point out that this is critical for deployment of our .net core websites to Azure. Especially when CI systems like Jenkins is involved. Since most of our software is built on Linux our only deployment avenue is manual FTP deployment, which is proving to be extremely error prone and does not allow features like auto-swap (for no downtime deployments to our non-production systems).

dpen2000 commented 7 years ago

Please open source current version of msdeploy as is

richardszalay commented 7 years ago

@dpen2000 I'm not that's terribly realistic. Current state of the codebase aside, one of the primary intents of open sourcing MSDeploy would be to allow it to go cross platform but major things like feature delegation don't map well to non-IIS environments, so thought will need to be put into what that looks like before MS will put the code out there.

MadaraUchiha commented 7 years ago

We currently use MSDeploy to deploy frontend artifacts to Azure. Other than opting for far worse alternatives (like FTP or committing the compiled targets to git), we have no other option but to develop (or at least deploy from) Windows.

That's a shame :-1:.

Is there any progress with this? It's been over a year now.

rschiefer commented 7 years ago

+Sayed

Sayed, have any further discussions occurred regarding extending MSDeploy to be cross-platform?

Thanks,

Robb Schiefer Twitter - @chief7 Blog - dotnetcatch.com BHM.NET Meetup - https://www.meetup.com/Birmingham-NET-Meetup/


From: Madara Uchiha notifications@github.com Sent: Saturday, August 19, 2017 9:13:00 AM To: aspnet/Tooling Cc: Robb Schiefer; Mention Subject: Re: [aspnet/Tooling] Make a new version of MSDeploy that is CrossPlat (#583)

We currently use MSDeploy to deploy frontend artifacts to Azure. Other than opting for far worse alternatives (like FTP or committing the compiled targets to git), we have no other option but to develop (or at least deploy from) Windows.

That's a shame 👎.

Is there any progress with this? It's been over a year now.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/aspnet/Tooling/issues/583#issuecomment-323525526, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABBakW9_Dfwp1ro8EBxLHYBRWB9TZiKxks5sZu1sgaJpZM4I0zp9.

MadaraUchiha commented 7 years ago

@sayedihashimi ^ I'm guessing you meant to ping this guy, @rschiefer ?

sayedihashimi commented 7 years ago

I'm discussing with @shirhatti to see if we can make some progress here.

rschiefer commented 7 years ago

Good to hear. Hoping the community can contribute as well.

Thanks,

Robb Schiefer Twitter - @chief7 Blog - dotnetcatch.com BHM.NET Meetup - https://www.meetup.com/Birmingham-NET-Meetup/


From: Sayed Ibrahim Hashimi notifications@github.com Sent: Thursday, August 24, 2017 12:32:52 PM To: aspnet/Tooling Cc: Robb Schiefer; Mention Subject: Re: [aspnet/Tooling] Make a new version of MSDeploy that is CrossPlat (#583)

I'm discussing with @shirhattihttps://github.com/shirhatti to see if we can make some progress here.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/aspnet/Tooling/issues/583#issuecomment-324688297, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABBakZU9Kv6DSkIHaXs-qqN-Qv3hgm3dks5sbaW0gaJpZM4I0zp9.

MadaraUchiha commented 7 years ago

Yup, I personally have a vested interest in the success of this endeavor, so if there's anything you guys need, do tell. cc @linkgoron

richardszalay commented 7 years ago

I'd be happy to chime in too.

MadaraUchiha commented 7 years ago

@sayedihashimi @rschiefer Any news wrt this? Anything we can do (in terms of people to annoy/pull requests to submit)?

Gabsch commented 6 years ago

I would be really interested in something like this. I searched for an alternative on the same level but unfortunately there doesn't seem to be one...

chrisbecke commented 6 years ago

2016... 2017... and now 2018. Not much momentum on this idea. I want it tho. Or can someone tell me how to deploy an asp.net core app from Mac to IIS?

sayedihashimi commented 6 years ago

@shirhatti any update or thoughts?

shirhatti commented 6 years ago

@chrisbecke Visual Studio for Mac allows you to publish to Azure App Service from OS X.

While we'd like a more full-featured WebDeploy for OS X, we haven't made any progress on that front.

niels-anders commented 5 years ago

I am also looking for a cross-platform msdeploy. Our build server uses dockers to compile .net core code, but I need to deploy to IIS on windows test/prd servers. A cross-platform msdeploy would be very helpful.

Popeye4242 commented 5 years ago

Would like to have an one click deploy to linux.

louisfischer commented 5 years ago

Over 2 years in and still no plans. Microsoft recently open sourced WinForms and WPF. Surely MS can at least make plans to open source MsDeploy and the community would step up contribute.

barrytang commented 5 years ago

@shirhatti

lukemcdo commented 5 years ago

I assumed there was some blocker preventing .NET Core from shipping this functionality, and it's pretty disappointing to see the only blocker is perceived lack of interest.

If .NET Core is going to replace .NET Framework for new code bases, its tooling should support the small businesses .NET Framework supported. We will never be using Docker at my current workplace and that is not a reasonable replacement plan.

fdinardo commented 5 years ago

If asp dotnet core has the goal to be cross-platform, MSDeploy should be cross-platform as well. Using docker it's fair enough, but for big company or people that are already used to it. I work in a small company that rely on the whole MS stack. Recently we updated from WEBFORMS to asp.net core. I can't ask my colleagues to switch to docker deployment because I am running on a linux Dev Env and their not. This force me to use Windows - at least to publish - and it's a pain. I can't put complexity to our workflow because I develop on a linux env.

Just a heads-up: this is not a complaint, I know it's not something we can have right now. But I'd like at least this request to be considered by MS. If it's not doable at all, just let us know.

it would be great to have this tool on linux though thanks

chrisbecke commented 5 years ago

The more research I put into Web Deploy / msdeploy the more curious the situation becomes. Nominally the technology seems to have been abandoned by MS in 2012. Nonetheless it seems to have become the secret sauce behind Azure and, if not the msdeploy tool itself, a myriad of powershell scripts that use the publish profile xml files originally consumed by msdeploy are now used for publishing, for example, Service Fabric applications both locally and to Azure. Given that mess, a from scratch implementation based on the msdeploy protocol might be the only way forward, but then which protocol: the msdeploy agent protocol that runs over port 80 that requires domain based authentication? Or the msdeploy deploy handler protocol that runs over port 3172 - and also supports AD based authentication. Getting Active Directory / Domain based auth into a .net core toolchain that runs on Mac or Linux sounds like a ...possible paradox. A solution for IIS publishing is required. But msdeploy might not be it.