I wonder what are the features/capabilities that Serverless Framework gives me when developing Node.js functions in Azure Functions environment?
When I look to this CLI, there is nothing I cannot do with Kudu and GitHub integration (or for simpler scenarios - directly with IDE built into the portal).
So I wonder if I am missing something (and I will regret in the future), or Serverless Framework at this stage is more useful for AWS Lambdas?
The Serverless Framework is a CLI that offers the following:
Deployment: it will zip your functions/modules and upload to Azure.
Integration: you can integrate with Blob Storage, DocumentDB and create HTTP endpoints with the same configuration file.
Multi-vendor support: if you decide to leave Azure, migrating to AWS or IBM will be easier.
Configuration: YAML syntax is readable and overall configuration is simple.
Logs: you can stream the logs into the terminal.
Environments: you can replicate a dev stage into production.
Plugins: you can extend the framework features by yourself or use things that the community is creating.
When I look to this CLI, there is nothing I cannot do with Kudu and GitHub integration
That's great. If you have already stablished a development workflow to organize and deploy your code, maybe you don't need the Serverless Framework. The framework was created to help new users to deploy stuff, but it it based on Azure tools, so there is no magic happening there. Just some people trying to make things easier than using the Azure CLI.
Serverless Framework at this stage is more useful for AWS Lambdas?
Maybe. Depends if you think that Azure CLI is better or not than AWS CLI. I have tried to implement my own code to deploy AWS Lambda functions and I know how hard it is. There are many configuration steps and things to learn, which are very trivial to configure when using the Serverless Framework.
Related
I developed a SDK.js that ease the use of my API supported by my nodejs server on Azure.
What would be the best way to deploy this SDK.js to the server so that client can make use of it after having it embedded in their code via a tag?
Note: I'd like my SDK.js to be babelled and minified in the process.
As far as where to put the file, there are two options I can recommend: either in a public endpoint or by leveraging Azure Storage.
As for deployment, one solution is to include it in whatever deployment process the API. If you are looking for an outside solution, there are a large number out there, but two that will make the process as simple as possible that I am aware of are Azure Devops and Github Actions. Of those two, Github Actions has a larger free tier if your project is small.
can anyone tell me how the serverless architecture works
and some people are saying this is the next technology? and is this help for Linux administration?
Serverless is a technology that you can use to create infrastructure as code to work with your cloud provider. An example would be if your company uses Amazon Web Services and you need to create a lambda function. You can do this via serverless and include several infrastructure properties such a virtual private cloud, which IAM roles to use, creating an s3 bucket, having your lambda listen to sns topics, deploying on multiple environments.
Currently our company uses Amazon Web Services in combination with the Hashicorp Stack, (Terraform, Vault, etc.), as well as serverless to create our IAC quickly.
As far as this being the next technology, I can say that maybe not serverless, but infrastructure as code is extremely powerful, reusable, fast failing, and useful.
An example could be you your work place has a production environment and a dev environment. You can deploy the same serverless project to dev and production and if you interpolate the values properly you have a serverless project that can be deployed on any of your environments.
Is technology helpful for a linux admin? I cannot attest to this as I have only used Serverless interactions with cloud providers. I believe that is what Serverless was created for.
I've just created a bot service on Azure and it looks completely different from what I got last time. Back then I ended up with a bunch of CSX files. Now it has created what looks like a full blown ASP.NET app (see screenshot).
How many different backends are there these days? C#, CSX and NodeJS or is CSX no longer a thing?
Found the answer. It depends on the plan you are using for the bot. For my example above I used regular plan. If (during creation) "consumption plan" is selected, the bot will be based on CSX files. This behaviour is described here: https://learn.microsoft.com/en-us/bot-framework/azure-bot-service-debug-bot
The consumption plan serverless C# environment in Azure Bot Service
has more in common with Node.js than a typical C# application because
it requires a runtime host, much like the Node engine. In Azure, the
runtime is part of the hosting environment in the cloud, but you must
replicate that environment locally on your desktop.
I am currently looking into using ARM to deploy new environments of our Azure Components. We have a lot of web apis that are deployed to Cloud Services, since we need access to the underlying OS to get CPU usage for App Dynamics metrics. When reading through ARM, it seems as if they are deprecating Cloud Services, but I have some confusion about what is replacing it. I see that you can create Web Apps using this and use Publish from Visual Studio to deploy the app it, but I see no options for Cloud Services. So what is the preferred method to do this? Creating a VM and deploying using Web Deploy? What about VM scaling. Any help would be greatly appreciated.
My company is in the process of moving a legacy app to Azure using Cloud Services and we were concerned about the future of Cloud Services. Since we are somewhat early into the project and would like to use the ARM model we thought it would be easier to make a move now if we knew the future. After a few conversations with project leads at Microsoft on this topic we were only told that we should continue working with Cloud Services as they would continue to be supported.
It's quite clear that the move to ARM was not well thought out in terms of direction and consequences of existing services that many people are already using. Reading between the lines I would say that there is no plan to convert Cloud Services from the ASM to ARM model.
If application insights (https://azure.microsoft.com/en-us/services/application-insights/) are sufficient for your monitoring needs, then you can use web apps. These can be deployed via ARM, and can automatically deploy from a git repo or web deploy package. See this example:
https://github.com/Azure/azure-quickstart-templates/tree/master/201-web-app-github-deploy
The issue here that you may be trying to do operations which are restricted by the web app sandbox.
Failing that, you can use an ARM template to set up a VM and then invoke a custom site extension which will run powershell code to do further provisioning. This powershell code can fetch any package that you may want to install. See this ARM template for example: https://github.com/Azure/azure-quickstart-templates/tree/9ad72f1f5f0008c14311be79eee036b871712394/201-list-storage-keys-windows-vm
Once the VM is created you would be able to modify it and scale as needed.
I'm new to cloud foundry and would like to do a detailed comparison between Windows Azure and Cloud Foundry. I've searched around a lot but haven't been able to find anything useful. Is there a good post or some material which does a detailed feature wise comparison of the two?
Regards,
Vikram
You're not exactly comparing like for like here. Azure has IaaS type capability as well as PaaS, not only can you push applications to it but you can also deploy VM images too, including Linux.
However, as Cloud Foundry is open source the number of runtimes and frameworks if supports evolves quickly as VMWare openly encourage contributions from the OSS community. Correct me if I am wrong, but in a lot of cases, with Azure, you have to provide the runtime you wish to use where as Cloud Foundry supports them "natively", if that's the correct word?!
Right now, Cloud Foundry supports the following runtimes and frameworks;
Runtimes
java - 1.6.0_24
java7 - 1.7.0_04
node - 0.4.12
node06 - 0.6.8
node08 - 0.8.2
ruby18 - 1.8.7p357
ruby19 - 1.9.2p180
Frameworks
grails
java_web
lift
node
play
rack
rails3
sinatra
spring
standalone
They also provide all the major storage services too, including MySQL, Postgres, RabbitMQ and Redis.
The actual open source project supports a whole lot more too!
I don't know much about Azure. But, I've used Cloudfoundry. Its great for Java deployments. I use VMC from Ruby gem for deployment and its so 3 - 4 step easy way to push your WAR to cloudfoundry server. They also provide neat documentation for configuration and setup. Oh and adding services (like Mongo DB, MySql) are also very simple. Though,sometimes, debugging server related issues are annoying with it. But, overall, its good for me :)
http://docs.cloudfoundry.com/tools/deploying-apps.html
Likewise, I don't know much about Cloud Foundry but I'm using Windows Azure for a couple of client projects and I have to say that I'm now very impressed with the development environment. I'm using the Websites Preview feature with continuous Git deployment via BitBucket. Setting this up is a breeze and allows me to push my changes to BitBucket and have Windows Azure deploy them automatically for me. There's currently no ability to run unit tests as part of the deployment cycle as per other cloud platforms (e.g. AppHarbor) but the feature set for getting up and running with a .NET application and SQL Azure database is now pretty slick. Here's a couple of links:
Deploying an ASP.NET Web Application to a Windows Azure Web Site and SQL Database
Continuous Deployment with Windows Azure Websites and Bitbucket