Sitecore 9 PaaS architecture: provisioning content delivery - azure

I'm in charge of provisioning a new Sitecore system on Azure as PaaS. I want to provision 3 environments in as many different regions. Still I want to have a main region which will provision a full XP installation, while the other 2 regions (slave) will provision only the CD. Each slave CD-DB will be configured as a publish target in the main region and will be feeding XDB and forms database.
So the question is: how can I achieve this?
I already provisioned the main region with the ARM templates and it's working fine. Now I need to provision the slave regions, but I can't find enough information on how to achieve this.
Can I use the clone function in Azure and modify config files later?
Thanks in advance

I would approach it like this:
Left side of your diagram provision as-it-is from the original Sitecore ARM template – XP scaled.
For the right side of your diagram will:
a. provision instance Sitecore XM single ARM template (delete master and forms database, reconfigure the web app role to be CD)
b. or customized a bit the XM scaled ARM template (removed CM and not needed database)
Fix configuration – add traffic manager, connection strings as needed etc.
as reference:
https://doc.sitecore.net/sitecore_experience_platform/setting_up_and_maintaining/sitecore_on_azure/deploying/sitecore_configurations_and_topology_for_azure

Related

Patch policy for VM mgt (Azure)

I have tasked with developing a strategy to patch for all VMs in our TEST subscription, and apply the results to prod down the line..
The plan to create 2 scenarios
for all critical,security,Definition updates
for everything else
The plan is to use Azure update mgt center for this.Can anyone recommend this as best practice?Anything else I need to know and plan for?
Thank you
You can able to develop patches for all VMs in your test subscription in your scenarios.
In your virtual machine -> updates under operations -> open your update management center.
As my VM upto date updated you can make use of below workarounds.
Click in schedule updates. In basic use guest user vm and schedule time as your requirement.
In VM you can make use of every vm update or selected vm while clicking Add machine.
In update as your scenario, you can add critical, security, Definition updates by adding include update classification as below.
Now you can able to deploy patches for all VMs in your subscription using Azure update mgt center with critical, security, Definition updates

How to schedule to change VM resources in azure?

I have 4 VMs in azure and I am trying to set up a schedule to lower the RAMs and CPU cores for after-hours and revert them back to their original size during business hours.
can someone guide me through the steps or share a how-to resource, please? I can't find any documents and I am sure my search key is not correct.
Thanks
As suggested by #harshavmb, you can make use of VMSS.
In Azure, Auto-Scaling is possible if you make use of Virtual Machine Scale-Sets.
Virtual Machine Scale-Sets allows you to automatically scale as resource demand changes.
Based on schedules, you can create auto scale rules.
These schedule-based rules allow you to automatically scale the number of VM resources at fixed times.
To create the Auto-Scale rule, you can make use of following tools:
Azure PowerShell
Azure CLI
Azure template
Otherwise, you can create an automation account in Azure and execute runbooks as mentioned in below link if helpful:
Automatically Resize an Azure VM - Automation account

Azure Marketplace - Do I need to create VM offer separately from Azure Applications offer?

I'm going to make an solution offer to Azure Marketplace using this documents.
https://learn.microsoft.com/en-us/azure/marketplace/partner-center-portal/create-new-azure-apps-offer
I have already created the ARM templates. But inside my templates, they're referring to custom images in Share Images Gallery that I captured from Azure Portal. Do i need to create VMs offer for my Images separately?
If yes, Let say if I have 10 templates that are referring to 20 custom images in Share Images Gallery, then I need to create 20 VM offers for 20 custom images, don't I?
Sorry I very new on Azure Cloud.
Without knowing too much detail here is an answer based on some assumptions:
The Azure App is meant for public customers
The Azure App (ARM Template) is going to deploy Virtual Machine images
If that’s the right set of assumptions then: Using Shared Image Gallery would turn out to be a costly exercise because it would be someone’s Storage account. The preferred solution would be
Create a Azure Virtual Machine offer
Each offer can have many plans (selling motion)
Each plan can have up to 40 versions of an image
Keep the VM offer hidden, so users don’t buy that, instead publish an Azure App that manages the deployments
Another way to think about it is, if you have same product with many versions, you create a single plan
If you have same product with different tiers you can create different plans (and code your VM to query azure to find out what context (plan) its running in and behave appropriately)
You want to keep the same “offering” under the same “offer”. For example all Windows Server images are under the same offer (with plans for each major release)
If you are offering a banana in one image and a potato in the other, you want to put them in different offers.

Recovery services vault Vs VM Clone - Azure

I have been trying to find a way to clone ARM VM without deallocating it , so that the VMs can be replicated for different user groups on a need basis. Looks like Azure Recovery Services Vault can be used to achieve my goal though the intended purpose of the service is not really to clone a new VM. So my question is on the design side of these two services.
Could anyone shed light as to why ARM VM clone procedure mandates de-allocation of the cloned ? Which use cases are actually solved by that service ?
If I use Recovery Service Vault to create a new VM from an existing one , is there any side effect to it (technical/financial) ?
The AWS way of getting a copy of VM - Get a snapshot , create one from it - sounded simpler and user friendly to me. The Azure way of providing two different services for similar goals - Any insight to that kind of design decision making ?
Thank you in advance !
probably by design. it cant access page blob that is leased.
well, you install vm agent, you pay for ASR, you pay for protected VM.
You can create snapshots from managed disks no problem.

Azure architecture design for a load-balanced environment

I'm new to Azure, and a little confused about cloud services.
I'm making a Testing Environment that consist of multiple instances (of the same VM) where each instance has a REST API server (Consisting of 2 API functions: GetResults, SendFileForTesting) and a load-balancer that distributes the requests upon the VMs.
In each VM there is also a worker that processes the received files and saves the results in a shared DB.
The goal is, for the file processing to be distributed on the available VMs and the results to be saved in a shared place (So that the "GetResults" request would send all of the results to the client)
This is how it looks:
[LoadBalancer]
|
[Multiple VM nodes] - (API: GetResult, SendFileForTesting)
|
[Shared Result DB]
The question is, what is the best way to deploy this on azure?
Right now, I'm trying to create a load-balancer that has 3 clones of the same VM with the same REST API server and another VM that holds the shared DB.
Is there a better way to do this?
Thanks
In my opinion, I think VMSS is the best way to deploy it.
First, create two Azure VM, one is shared DB, another one is API server. configure API server to connect to shared DB. then capture this VM. After capture completed, we can use template to deploy a VM scale set with this image.
More information about create custom image, please refer to this link.
More information about use template to create VMSS with custom image, please refer to this link.
(this template LB rules is port 80, if you need more ports, please edit this template)

Resources