What I have:
Application based on near 10 microservices created with ASP.NET Core. One of them is Web server. Wix installer is used to create Windows installer.
What is required:
Migrate application to Kubernetes so all benefits in form of Scalability, load balancing, self healing would be present.
Complications:
Kubernetes does not run on Windows containers in Windows Professional. As an alternative - Windows server, but technology is raw, without much docs and complicates running on dev machines.
As an alternative - setup Linux environment, but in this case Wix installer may not work or requires major changes.
So how such ASP.NET microservices app with Wix installer can be run on Kubernetes?
Related
I am lost in these words. Watched a lot of videos and articles. But I am not able to understand the difference. Flask helps me to create web interface which can be used only on my local system. But what does docker do? Does it make the application visible to world with url? Requesting answer in very simple words..
Flask is a web framework in that it provides an API for the python language with which web applications can be built, such as a website or a backend service.
Docker is a containerization tool which deals with the deployment of applications and the environment in which they run. Docker provides a lightweight alternative to Virtual Machines - a lightweight software environment in which an application can run independently, with dependencies handled by Docker. Docker environments can vary in operating system, the programming language of the application being deployed, and more.
I may, for example, build a web application in python using libraries provided by the flask API, then deploy the application on a server in a docker environment running a Windows Operating system.
I have several micro services that I would like to dockerized them. Is it better to build them in a self-hosted console application or build asp.net web application?
Which one is faster?
My MicroServices are only simple Web Api.
Just gonna give you my experience on this, not necessarily a 'complete answer':
If you create a .NET Core WEB API in Visual Studio and 'Add Docker support', you can directly deploy them to regular AppServices (specify 'Linux' as the operating system when you CREATE the AppService).
The Visual Studio wizard will automatically setup the container registry for your images, and configure the appservice to deploy whenever there's a new tag for your image.
I've also migrated this same Web API to deploy to a Windows AppService without docker, we didn't need to change any of the code, just deploy it without docker as a regular web app.
Which means if you build this as a .NET CORE 2 Web API you can deploy the same code to either a Linux Appservice using Docker or to a regular Appservice.
If you're planning to use anything different than AppServices tho, you might want to check Container services or Service Fabric, which IIRC is more expensive (would make sense if you need to scale this massively)
I have one project base on asp.net 4.5, now I want run it in Docker. As far as I am known, only asp.net 5 be supported this moment, so has any way let me run my project in Docker?
You must read Mono documentation about ASP.NET MVC Support. Mono can handle your needs, running under Docker Linux Containers.
Using Windows Containers (new feature becomes with Windows Server 2016) you will do that without any trick.
About Mono and Docker, that was useful, stable and can solve your requirements, depends exclusivelly what you are using in your project to understand that is compactible with mono runtime.
Mono Docker repository on Github
Mono on Docker Hub
Enjoy and tell us about your experiences.
There are two approaches depending on whether you want to run Linux or Windows containers. For Linux containers, you'd have to port your app to Mono, as laid out by #luiz-carlos-faria
To run in Windows Docker containers, you'd have to create a 4.6/4.5 base image similar to this one: https://github.com/Microsoft/Virtualization-Documentation/blob/master/windows-container-samples/windowsservercore/dotnet35/Dockerfile
You can run that on Windows Server 2016 TP5 (free download) in a VM.
I have built a rails app which is used as a standalone enterprise application. The application needs to run on Windows desktops (entire user base runs Windows machines). I am able to run it quite successfully on an Ubuntu machine but it's not something customers will prefer to run.
Since deploying on a windows machine is quite messy AFAIK. I would like deploy it on Windows using a virtual machine (VirtualBox).
Requirements would be -
Application installation on Windows 7 / Windows 8.
User should be able to access rails server by browser running on his/her system via localhost or any other IP address.
Application should auto-start when user reboots the machine.
Ideally user should be able to download and install the software on his/her machine by himself/herself.
I am working to make this work but would like to know the feasibility of this solution. Would like to if I am getting the concepts wrongs or if there is something which is simply not possible or is not making any sense.
Take a look at Vagrant, which is a highly scriptable VM host. You can then generate batch files to automatically start the VM on boot.
To deploy new code, you'll just want to provide them with a new VM image they can copy into your app directory.
That said, I agree with other comments that this might not be the right platform for your use case. The main reason for building web apps is so that many clients can use your app over the web using just one set of servers. Deploying a web server to each client seems like it's defeating that advantage.
I am working on Ruby on Rails.
My platform is Linux.
Now I want to deploy my Ruby on Rails Application to Microsoft Azure Platform.
I am new in Azure Platform.
So How can I deploy ROR Application from Linux platform to Azure Platform.
Thanks,
Milap Shah
This page might contain some useful articles for you:
https://www.windowsazure.com/en-us/manage/linux/
What you'll basically need to do is this:
Create your Virtual Machine in the Windows Azure Portal, and select your preferred flavour of Linux.
SSH onto the machine, and install the various components that your applicaiton needs, i.e. Ruby, Gems, Ruby on Rails etc.. (help on this here: http://guides.rubyonrails.org/getting_started.html#installing-rails)
In the portal, open up the necessary endpoints in the Windows Azure firewall (i.e. port 80) to enable traffic through to your application.