Deployment of Elasticsearch on Azure from the scratch - azure

I am beginner in elastic search.I have implemented elastic search for single node with NEST Client in my C# Web Application successfully.Now I want to scale my data horizontally and want to deploy this application on Azure cloud storage.so if any article or documentation(step by step) is available for how to effectively deploy Elasticsearch with proper configuration on Azure with multi node then inform me.
Any suggestion is appreciated.

Take a look at Elastic's Azure Marketplace offering. Within a few screens and minutes, you'll have a cluster deployed on Azure.
If you need more control over the deployed cluster such as
number and size of disks to attach to each data node
install Azure repository plugin for snapshot/restore
Java heap size for each node
take a look at the ARM template on GitHub. This is the same underlying template that powers the Marketplace offering, but deploying directly provides more features than are exposed in the Marketplace UI.

Related

Missing Metrics - Azure Spring Cloud

I have a Azure Spring Cloud resource in Azure that contains two apps. To keep it simple lets call these apps App A and App B.
I wanted to set up monitoring and alerting for these two apps but only one of them actually writes the required metrics. According to the Azure documentation the app dashboard should display certain metrics like tomcat.global.request.total.count but only App A does that. App B doesn't write those metrics and I'm wondering why because I can't find any indication in the Azure documentation that I have to setup something for this to work.
App A Metrics Overview
App B Metrics Overview
(Both apps had traffic in the displayed timeframe)
Do I have to install some maven packages or do some other configuration to get these default metrics to work? I tried to install the maven package applicationinsights-spring-boot-starter but that didn't change anything.
The maven package spring-boot-starter-actuator was missing as per this documentation. After I added the spring-boot-starter-actuator to my project the metrics started working in Azure. It was not necessary to set the configuration spring.jmx.enabled=true

Logging system for Kubernetes installed into Azure cloud

I need to gather different kinds of logs:
Logs of applications running into docker machines orchestrated by Kubernetes.
Logs differents from metrics.
Which tool is more appropriate to do that?
My infrastructure is composed by Kubernetes orchestring docker machines installed in Microsoft azure (using ACS engine and RPM).
You can use Application Insights. App Insights can be used to store logging/monitoring for Docker Apps easily
See this blog for understanding how Application insights support microservices and containers.
You can easily pull the microsoft/applicationinsigthts image from docker hub and start using it.
Here the pricing calculator for application insights (Microsoft will give 5GB of Storage for logs free for every month)

Azure App service with or without docker

I have some experience in using azure app services without docker. I did worked on k8 with docker. Now I am seeing an option to deploy containers in azure app services. As per my understanding app services internally use container and orchestration engine. Now someone can explain why this new docker option in azure app services? How it is going to help? When to use this option? Why I should bundle it as docker(extra effort eventhough it trivial)?
Azure App Service on Linux (Web App with built-in images)
The built-in image option running on Linux is an extension of a current Azure App Service offering, catering to developers who want to use FTP or GIT, deploy .NET Core, Node, PHP or Ruby applications to Azure App Service running on Linux
All of the built-in Docker images are open sourced on GitHub and available on DockerHub
Now someone can explain why this new docker option in the azure app
services?
Web App for Containers is catered more towards developers who want to have more control over, not just the code, but also the different packages, runtime framework, tooling etc. that are installed on their containers.
Customers of this offering prefer to package their code and dependencies into containers using various CI/CD systems like Jenkins, Maven, Travis CI or VSTS, alongside setting up continuous deployment webhooks with App Service.
This way you can easily deploy and run containerized applications that scale with your business.
How it is going to help?
This will make sure that the environment that you use locally, is
exactly the same as the one in the cloud.
Just pull container images from Docker Hub or a private Azure
Container Registry and Web App for Containers will deploy the containerized app with your preferred dependencies to production in seconds.
Automate and simplify your container image deployments through
continuous integration/continuous deployment (CI/CD) capabilities
with Docker Hub, Azure Container Registry, and Visual Studio Team
Services
Automatically scale vertically and horizontally based on application
needs. Granular scaling rules are available to handle peaks in
workload automatically while minimizing costs during off-peak times
When to use this option?
If you are so passionate/familiar with Docker/container then you can
use the Azure App service with the container.
If you are planning to host all your container in ACS(Azure Container
Service)/GitHub Repository then this service might be useful
You can refer to this blog for more details

How do you create an installer for Azure Web Apps / Azure Websites

I am a software vendor with a .net web solution that I want customers to be able to easily install / deploy into Azure Web Web Apps / Azure Websites along with a Sql Azure backend. I can't find any installer tool that supports this scenario. I have also looked into the Azure Marketplace but it seems the only option there is to create VM images. I want my customer's to avoid having to deploy to an manage VMs and adopt the IaaS model. Instead they should be able to install to Azure Web Apps with a package that copies all the web solution files and installs and connects the Azure Sql. Is this possible or will I have to manually deploy and configure Azure solution for each customer?
You can use the VS Marketplace to do the deployment. What you need is to create an ARM template. There is a huge number of samples here: https://github.com/Azure/azure-quickstart-templates - you can pick one of the web app ones - for example: https://azure.microsoft.com/en-us/resources/templates/201-web-app-sql-database/ - has a SQL database linked to a web app.
The ARM template allows you to do a "no-hands" deployment of the resources and know when they are ready for further action. You can also deploy from any of the supported continuous deployment options (see the template with a GitHub connection as an example) or you can use ftp/msdeploy after the deployment is successful.
This is a good tutorial https://learn.microsoft.com/en-us/azure/azure-resource-manager/vs-azure-tools-resource-groups-deployment-projects-create-deploy
This is the github example mentioned in previous answer
https://github.com/Azure/azure-quickstart-templates/tree/master/201-web-app-github-deploy

Deploying Applications other than WebApp using Azure Resource Manager

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.

Resources