Has Anyone had any experience to deploy a RESTFul nodejs service to service fabric?
What tools are possible, Jenkins or even code ship
Found a knowledge base article from Microsoft here, looks like you just package it up and drop in into a folder location for Service fabric to consume
https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-deploy-multiple-apps
To deploy a RESTFul node.js service to service fabric you need to have a Node.js host - to actually run your JavaScript. There are three options for that:
Create custom executable and deploy it as Service Fabric guest. Example: https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-deploy-multiple-apps
Use Dicker containers on Service Fabric: https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-tutorial-package-containers
Use SupercondActor to host Node.js API natively inside Service Fabric stateless service. See GitHub repo: https://github.com/SupercondActor/platform-app-angular
Related
We are planning to develop a new web application in Java or .NET. The application should be containerized using docker in Azure cloud platform and it should be scalable (user base at pick is about 80-90). Since, there is no need to develop a Microservice based application we have have planned to develop REST services in back end and Angular JS in front end as the application architecture.The Service back end will be deployed in web server and will run in one container and the Angular JS front end in another.
In this context will Web App for container in Azure App service would be the right choice?
What are the limitations of Web App for containers?
Is there any limitations with Web App for containers in Azure App service if the application is developed using Java Spring Boot?
Yes, it's a good choice to develop a web application in Java or .NET and containerized it for deployment easier.
The limitation, please refer to the section App Service limits of the offical document Azure subscription and service limits, quotas, and constraints.
And there is not any limits for using Java Spring Boot with WebApp for container on Linux. it's also same as do developing on Docker.
Additionally, just considered for developing REST service in back, I recommended you may use Azure Functions in Java that I think easier.
If you want to run just Spring Boot, you can also use the "Java SE" offering which is available for Windows or Linux in App Service. In this case you just deploy your code and you don't need to worry about managing containers, like updating the JRE version, etc.
However, if you are interested in deploying a containerized app, you can use Windows Containers or Linux Containers in Azure App Service.
Till now I was running the Composer REST Server (Blockchain) locally on the local host server. Now this server has got some post APIs configured which needs to be triggered by my main server already hosted on Heroku(Cloud Service).
So the flow of architecture is like my Android App calls Heroku Server which in turn has to call the Composer REST Server (which is running locally on my machine).
Hence I need to host the composer REST Server on a free tier cloud service. Although its a Node JS Server but it's package.json is weird and I am not able to find any resource which specifies how to take the Composer Online.
Please help!
Is your underlying Fabric is running in Docker Containers?
Assuming that it is, you can run your Composer REST Server in a container too. There is an example of this in the composer documentation for Multi-User mode which makes it look a little more complex, but the import piece is getting the Card in the container. There is also a Tutorial in the composer documentation again for multi user mode.
I have create cordapp in azure VM. now i want to deploy that cordapp into Azure cloud server so that client from anywhere can hit cordapp. but i confused whether i have to use webapps or inbuilt Blockchain module in marketplace. if so, how to do deploy?
You can deploy a node to a cloud server by following the instructions here: https://docs.corda.net/deploying-a-node.html.
You can then interact with your node remotely, using either:
An RPC client (e.g. https://github.com/corda/cordapp-template-java/blob/release-V3/clients/src/main/java/com/template/Client.java)
A server (e.g. https://github.com/corda/cordapp-template-java/tree/release-V3/clients/src/main/java/com/template/webserver)
The node shell over SSH (Corda V3 onwards - see https://docs.corda.net/head/shell.html#the-shell-via-ssh)
What is the difference between Azure Container Service and Web App for Containers?
They both seem to offer a fully managed platform on which we can deploy containers. I feel that Web App for Containers must be offering something more, but I don't see it. I've read the Azure Container Service FAQ and the Web App for Containers intro page, but the difference is not obvious to me.
Web App for Containers lets you run your custom Docker container which hosts your Web Application. By default the Web App Service with Linux OS provides built-in Docker images like PHP 7.0 and Node.js 4.5. But by following the instructions from this webpage you can also host your custom docker images which allows you to define your own SW-Stack. The limitation is that you can only deploy one docker image to an App Service. You can scale the App Service to use multiple instances, but each instance will have the same docker image deployed. So this allows you to use Docker as a Service, but isn't intended for deploying Microservices.
Container Services (ACS), Kubernetes Service (AKS) and Service Fabric allow you to deploy and manage multiple (different) Docker containers which might also need to communicate with each other. Let's say you implement a shopping website and want to build your web application based on a Microservices architecture. You end up having one Service (= container) which is used for registration & login of users and another Service which is used for the visitors' shopping carts and purchasing items. Additionally you have many further small services for all the other needed tasks. Because the purchasing service is used more frequently than the sign-up/sign-in service, you will need, for example, 6 instances of the sign-up/sign-in service and 12 instances of the cart service. Basically, ACS, AKS and Service Fabric let you deploy and manage all those different Microservices.
If you want to know the difference between ACS/AKS and Service Fabric you might want to have a look here.
I'm considering Reliable Actors right now that's part of Service Fabric. I have an existing Web App that I'd like to keep and act as an API surface to my actors. The Web App will also handle authentication and authorization before any calls get to my actors.
I can't tell from the documentation, but is it possible to connect a Web App to Service Fabric? Additionally, is it possible to limit connections to Service Fabric so that it doesn't except any public connections? How would I go about setting this up, or is it even advisable to do something like this?
I know with Cloud Services, you can connect a Cloud Service to a Web App through a Virtual Network, so I'm at least familiar with that kind of setup.
You would do it the same way you do with cloud services - use a virtual network. Service Fabric is just a framework running on VMs in a cloud service.
Connection to the service fabric can be controlled through the loadbalancers in the cluster VNET. I would suggest that you integrate the WebApp into the Service fabric cluster VNET, to do that you will have to add a VNET gateway