Umbraco on Kubernetes - umbraco

Is it possible to run Umbraco-CMS in kubernetes cluster? I do know that Umbraco is based on .NET framework and it's will require the use of windows containers. But I would like to know if this is officially supported by Umbraco.
I'll appreciate any answer.

It's definitely not officially supported. I doubt getting Umbraco and Kubes working would be that high on the roadmap, compared to porting it to .NET core. They run Umbraco cloud within Azure so the more well-traveled path is to use Umbraco within an Azure web app. With Umbraco Cloud, uSync, etc.. it is possible to get near replica environments but it's not what your asking.
As the article in the comment suggests, it may be possible, but, I also think it is just as likely you'll end up with some strange errors. I'm holding off trying this until the When the .NET CORE version is released
https://umbraco.com/blog/net-core-alpha-release/

Related

Does ASP. NET core still requires hosting with. NET support

I plan to develop website in ASP. NET core. In past i wrote few ASP. NET website but as far as i remember it requures to buy special hosting which needs to have. NET installed. I would like to know whether nowdays is it enough to have cheap hosting without. NET support to pubslih my ASP. NET core website or i still need to buy hosting which has. NET support?
ASP.NET Core can be published to either use an installed .NET Core runtime or self-contained, in which the required parts of the framework are actually published along with the app. In .NET Core 3.0, you can actually publish a .NET Core app as an entirely self-contained single executable file.
In either to publish self-contained (whether in a single executable or not), though, you must target a particular runtime environment when you publish (i.e. Win x64, Linux x64, etc.) You can then only put the app in that actual environment, i.e. if you publish for Windows, you can't deploy that to a Linux box. However, you could simply re-publish for Linux instead.
If you target an installed runtime, similar to how .NET Framework works, then you can publish once and deploy anywhere, assuming the destination has the .NET Core runtime installed.
Long and short, you are not locked into any one particular way of deploying. If you want a framework installation, you can do that. If you want self-contained, you can do that as well.
That said, you should still avoid shared hosting. They usually do not support .NET Core at all or don't keep up with deploying new versions. Additionally, deploying self-contained is generally going to be disallowed to prevent users uploading rogue things. You can get a VPS all to yourself for like $5/mo, so there's really no value proposition to shared hosting nowadays, anyhow.

Why am I getting System.OutOfMemory Exception when running .NET Core 2.1 on Alpine?

Using the .NET Core 2.1.1 Alpine (the SDK and the runtime) leads to several errors:
A. Fatal Internal connection when connecting to an SQL Server Database
B. After a few hours, the app boxes throw System.OutOfMemory exceptions regardless of the load and the available processing power.
If you get this, then you're out of luck! Please do not make the same mistake as we did with adopting Alpine-based NETCore 2.1 for what's about to become a production-ready app in a few months. After weeks of hunting weird bugs, we came to realise that .NET Core 2.1 in the Alpine falvor is fully experimental. Basic functionality is hindered by gross bugs. One can only wonder the range of detailed, more context-specific bugs that you're likely to encounter in production.
A. You'll need to install the icu-libs package. Connecting a .NET app to an SQL Server database is probably the most popular db connection of the language. One would think that the .NET team would test that their spanking new Alpine images so that MVC apps can properly connect to, but no. The 2.1.1 runtime image cannot automatically convert Windows string format to Linux ones.
Here's a link showing that Microsoft is aware of the issue but does not list this as a known bug:
https://github.com/dotnet/corefx/issues/29147
B. Turns out that the 2.1.1 Alpine-based runtime for .NET Core is having some serious memory leaks. Microsoft's own .NET team is fully aware of the issues:
https://github.com/dotnet/corefx/issues/30652
Sadly, however, the .NET team appears to be hiding the problems in the Github discussions. Plenty of users have signaled similar errors but instead of letting devs know that the 2.1.1 Alpine-based runtime image is severely broken, it looks like the issue is just covered up by Microsoft. Please note that the issue is not listed among the known issues of .NET Core 2.1.

upgrading asp.net mvc apps

Upgrading MVC apps done with VS 2010 has been the biggest issue for me. I have an application that I use to run various websites and I maintain and develop this application separetely then upgrade the sites based on it. A lot of things might change during development of a new version - new Views, new Controllers, stuff added into JS files, updated stylesheets etc.
I've searched around the web but nothing useful came up besides this Haack's article but no source code is available.
I also tried making a Nuget package for the entire MVC app and while this works, it doesn't package up the resource files (an issue within Nuget itself) and my apps rely on those so until this is fixed I cannot use this method.
I checked how others do it and this pretty much summarizes Umbraco's way and it's the same painful way of a dozen of steps like I do it now.
Do you have any good advice on it?
You don't specify the target OS, but I create native packages, i.e. .deb for Ubuntu servers.
However this still means you need to specify all files, manage configuration, upgrade database schemes. But if you test this on a CI server it becomes more reliable, and you can do it iteratively. This is all part of good deployment practice. I can recommend the Continuous Delivery book.

Is there any kind of idiots guide to deploying your ASP.NET MVC website in one click?

I'm about to begin building a website using the ASP.NET MVC framework and I'm trying to find a good solution to 1)Source Control Management and 2)Deployment. For the SCM, I'm probably going to use SourceGear since it integrates into Visual Studio nicely, but for deployment, I don't even know where to start. Up until know, most websites that I've built were very static and every time I had to update the site, I would use an FTP program and just drag and drop the files to the server. But now that I'm going to be building a much more dynamic web application, this approach feels dangerous (which, oddly enough, is also my middle name).
Does there exist some kind of idiots guide or tutorial that explains a good way to deploy an update to your website?
Thanks so much in advance for all your help!
Source Control
For source control, I like to use SubVersion at home. I would recommend using VisualSVN Server to install the server - it's free and ridiculously easy to use.
On the client side of things, I use TortoiseSVN (for shell integration) and VisualSVN (for Visual Studio integration). The small ammount of money for VisualSVN is well worth it, but there is a free open source equivilent AnkhSVN.
That's just what I use and there are many alternatives out there.
Deployment
I would definitely recommend using Microsoft Web Deploy.
Scott Gu just blogged today about it - Automating Deploy with Microsoft Web Deploy. There there is also Scott Hanselman's guide - Web Deployment Made Awesome: If You're Using XCopy, You're Doing It Wrong.
I recently came across a couple of posts by Jon Torresdal using Team Foundation Server (SCM), TeamCity (CI), and Web Deploy to implement a 'no-click' web deployment. They make for very interesting reading but they're definitely not what you'd consider idiots guide material.
No-Click Web Deployment – Part 1
No-Click Web Deployment – Part 2 – Web Deploy (a.k.a. msdeploy)
HTHs,
Charles

Solution for web designer using an OSX to develop an ASP.NET MVC project?

The project is developed using ASP.NET MVC framework and heavily relies on .NET 3.5.
What would be the best solution to allow a web designer, who is using OSX, to develop the site's UI? Basically he would just need to edit the aspx, css and js files, but also run the web application locally.
I've thought of some possibilites:
Install parallels/vmware/bootcamp and set up everything as you would for windows. Bad: it would be slow, OSX user doesn't like working in windows
Set up Mono and run the webapp on that. Use whatever tool you want for editing the front end files. Bad: does mono support MVC framework, .NET 3.5 and database connections? Unfamiliar platform, so possibly a lot of work setting it up, if it even will work.
Run the site on a separate server, and edit the front end files via network drive. Bad: our development server is so slow that seeing the changes takes too long...
Do you have other ideas or comments for these options?
Thanks!
You could try using a virtual machine. VirtualBox is a free one and is quite simple to setup. The only downside is that you need your own copy of Windows...
What you really need to do is have your web designer mock up the pages in static HTML, CSS, and JavaScript first (in their environment of preference.) Once that's done, adapting the markup to the ASP.NET project should be easily doable by yourself or the designer on a Windows machine (or virtual machine, your preference).
The MVC framework is part of Mono. Ares Technica has an article about the MVC framework and running it on Mono.
While it seems that some people were able to hack the framework to work on Mono back in March and April of this year, Microsoft has since released the MVCframework as open source and it is now fully supported by Mono as of the 2.4.2 release.
Here is a link to the most recent Mono releases along with Virtual Machine images that already been pre-configured to give you the best development experience.
Good luck with your project and hope this helps some.

Resources