About Me

My photo
I am an MCSE in Data Management and Analytics, specializing in MS SQL Server, and an MCP in Azure. With over 19+ years of experience in the IT industry, I bring expertise in data management, Azure Cloud, Data Center Migration, Infrastructure Architecture planning, as well as Virtualization and automation. I have a deep passion for driving innovation through infrastructure automation, particularly using Terraform for efficient provisioning. If you're looking for guidance on automating your infrastructure or have questions about Azure, SQL Server, or cloud migration, feel free to reach out. I often write to capture my own experiences and insights for future reference, but I hope that sharing these experiences through my blog will help others on their journey as well. Thank you for reading!

KB2919355 Check Failed. If you have installed KB2919355 on Windows Server 2012 for SQL Server 2017 installation


in some Windows Server  2012 R2, when you install SQL Server 2017 developer/enterprise  edition
The validation check gets fail.


Issue:-





---------------------------
Rule Check Result
---------------------------
Rule "KB2919355 Installation" failed.

KB2919355 Check Failed. If you have installed KB2919355, please make sure you have restarted your machine. For more information, you can visit https://support.microsoft.com/kb/2919355/
---------------------------
OK 
---------------------------


Resolution:-

In order to resolve this error..

you have to do the following

First go ahead and download this KB -- Windows8.1-KB2919442-x64 and install

Then download   Windows8.1-KB2919355-x64 and then install. 

Please note installation of Windows8.1-KB2919355-x64 will take some time.


Thanks for reading..


Failed to save Transparent Data Encryption settings for SQL resource

Failed to save Transparent Data Encryption settings for SQL resource: myserver0102. Error message: The provided Key Vault URI 'https://mypersonalXXXXvault01.vault.azure.net/keys/XXXXXX/283d045477e04fdab5c0055be37c0eee' is not valid. Please ensure the key vault has been configured with soft-delete.


in order to solve this issue.. go to cloud shell and execute below command




($resource = Get-AzResource -ResourceId (Get-AzKeyVault -VaultName "mypersonalXXXXvault01").ResourceId).Properties | Add-Member -MemberType "NoteProperty" -Name "enableSoftDelete" -Value "true"

Set-AzResource -resourceid $resource.ResourceId -Properties $resource.Properties


and you are done.

This issue will get resolved. 

Different components of application gateway

    Different Components of Application Gateway 



Application gateway and its different capabilities.
Application gateway offers layer 7 load balancing capabilities for HTTP and HTTPs traffic.

 and when you compare the application gateway with the

load balancer, Load balancer offers layer 4 load balancing capabilities.

Whereas application gateway offers layer 7 load balancing capability.

However the load balancer can distribute different type of traffic whereas application gateway can distribute only HTTP and HTTPs traffic.

And one other difference between External load balancer and application gateway is application gateway always resides within the virtual network whereas load balancer you can choose whether it should be inside virtual network or outside virtual network.


And in terms of components of application gateway,
1.FrontEnd IP Configuration --> Application gateway  has a frontend IP configuration.
They are basically IP addresses to which the traffic will come to.
2.Backend pool ---> which basically contains pool of IP addresses where the traffic
will be destined to.
3.listeners--> Listeners are basically listens to the traffic that is coming to a particular port.
In this case either 80 or 443 for HTTPs traffic and rules are something that will map this listeners to the backend pool. So it will basically map the incoming traffic to a particular destination pool
4.Health probe--> which will basically monitor the health of the backend pool machines
5.HTTP settings which will define whether we should use cookie based session affinity or which  port in the backend pool that the traffic needs to be routed to and all those stuff.
6.web application firewall which can be used to protect your web application from some
common web attacks.

So these are the components of application gateway.

Let's go through some of the capabilities of application gateway.
 In terms of capabilities,
Capabilities


  1. HTTPS Load Balancing -- It can load balance HTTP or HTTPs traffic
  2. Web Application Firewall -- web application firewall to protect your web application against common web attacks
  3. Cookie based Session affinity -- you can use cookie based session infinity in order to route all the user session traffic to a particular backend server throughout the user session.
  4. SSL offload-- If you want to offload the SSL traffic at the application gateway level you can configure the application gateway to achieve it.
  5. URL based content routing->If you want to route your traffic based on the URL then you'll be able to do the same using application gateway.
  6. Multi-site routing -> if you want to host multiple sites on a single public IP address you can achieve the same using application gateway. Basically you can configure the application gateway in such a way based on the domain name.It will route the traffic to a particular backend pool.
  7. Health monitoring you can monitor the health of your backend virtual machines by configuring a health probe in application gateway.


So these are the different capabilities of application gateway.

Autoscaling public preview

In addition to the features described in this article, Application Gateway also offers a public preview of a new SKU [Standard_V2], which offers auto scaling and other critical performance enhancements.

Autoscaling - Application Gateway or WAF deployments under the autoscaling SKU can scale up or down based on changing traffic load patterns. Autoscaling also removes the requirement to choose a deployment size or instance count during provisioning.

Zone redundancy - An Application Gateway or WAF deployment can span multiple Availability Zones, removing the need to provision and spin separate Application Gateway instances in each zone with a Traffic Manager.

Static VIP - The application gateway VIP now supports the static VIP type exclusively. This ensures that the VIP associated with application gateway does not change even after a restart.

Faster deployment and update time as compared to the generally available SKU.

5X better SSL offload performance as compared to the generally available SKU.

Demo
1.How to load balance HTTP traffic using Application Gateway.
https://docs.microsoft.com/en-us/azure/application-gateway/quick-create-portal
2.How to configure application gateway to achieve URL based content routing.
https://docs.microsoft.com/en-us/azure/application-gateway/application-gateway-create-url-route-portal
3.How to configure Application gateway for hosting multi site routing
4. How to Enable web application firewall on a Application Gateway and Simulate an Attack

to check whether your web application firewall is securing your web application against excesses attacks etc..

Scripts to configure Application gateway using Terraform <Coming soon>


Connect on Premise Network to Azure - Site to Site VPN Configuration using PowerShell

Login-AzureRmAccount


#create our base variables for our Resource Group
$rgName="RakAzureDC"
$locName="West Europe"
$saName="rakserverssa" #must be lower case
$vnetName="RakoNetAzure"

New-AzureRmResourceGroup -Name $rgName -Location $locName

 #Test-AzureName -Storage $saName

$saType="Standard_GRS"

New-AzureRmStorageAccount -Name $saName -ResourceGroupName $rgName –Type $saType -Location $locName

#Create Networking Components
#It's important to create one subnet named specifically GatewaySubnet. If you name it something else, our connection configuration will fail.
$Subnet=New-AzureRmVirtualNetworkSubnetConfig -Name Azure-Vnet-01 -AddressPrefix 10.10.10.0/27
$GatewaySubnet = New-AzureRmVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -AddressPrefix 10.10.10.32/29
New-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $rgName -Location $locName -AddressPrefix 10.10.10.0/24 -Subnet $Subnet,$GatewaySubnet -DnsServer 10.10.10.4,192.168.1.10

Get-AzureRmVirtualNetwork  -name $vnetName -ResourceGroupName $rgName | select subnets

$subnetIndex=0
$vnet=Get-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $rgName

$nicName= "Internal"
$staticIP="10.10.10.4"

#add a public IP address via $pip so we can connect to it if we need to
$pip = New-AzureRmPublicIpAddress -Name $nicName -ResourceGroupName $rgName -Location $locName -AllocationMethod Dynamic
$nic = New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $locName -SubnetId $vnet.Subnets[$subnetIndex].Id -PublicIpAddressId $pip.Id -PrivateIpAddress $staticIP





# don't know what VM sizes we have, so lets take a look
Get-AzureRmVMSize -Location $locName | Select Name

#name and size our Domain Controller
$vmName="AZURE-DC01"
$vmSize="Standard_A2"
$vm=New-AzureRmVMConfig -VMName $vmName -VMSize $vmSize


$pubName="MicrosoftWindowsServer"
$offerName="WindowsServer"
$skuName="2012-R2-Datacenter"


$cred=Get-Credential -Message "Type the name and password of the local administrator account."
$vm=Set-AzureRmVMOperatingSystem -VM $vm -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
$vm=Set-AzureRmVMSourceImage -VM $vm -PublisherName $pubName -Offer $offerName -Skus $skuName -Version "latest"
$vm=Add-AzureRmVMNetworkInterface -VM $vm -Id $nic.Id
$diskName="OSDisk"
$storageAcc=Get-AzureRmStorageAccount -ResourceGroupName $rgName -Name $saName
$osDiskUri=$storageAcc.PrimaryEndpoints.Blob.ToString() + "vhds/" + $diskName + ".vhd"
$vm=Set-AzureRmVMOSDisk -VM $vm -Name $diskName -VhdUri $osDiskUri -CreateOption fromImage
New-AzureRmVM -ResourceGroupName $rgName -Location $locName -VM $vm

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


#####################
#Provision Network




#add our local Network site
#Name Nickname for our on-premises network
#NewGatewayIPAddress is the IP address of your on-premises VPN
#AddressPrefix is your on-premises address space.


New-AzureRmLocalNetworkGateway -Name RakNetOnPremises -ResourceGroupName $rgName -Location $locName -GatewayIpAddress '122.167.33.81' -AddressPrefix '192.168.1.0/24'


#request a public IP address for the gateway

$gwpip= New-AzureRmPublicIpAddress -Name gwpip -ResourceGroupName $rgName -Location $locName -AllocationMethod Dynamic

#create the gateway IP addressing configuration

$vnet = Get-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $rgName
$subnet = Get-AzureRmVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -VirtualNetwork $vnet
$gwipconfig = New-AzureRmVirtualNetworkGatewayIpConfig -Name gwipconfig1 -SubnetId $subnet.Id -PublicIpAddressId $gwpip.Id

#create the gateway - may wait a while

New-AzureRmVirtualNetworkGateway -Name vnetgw1  -ResourceGroupName $rgName -Location $locName -IpConfigurations $gwipconfig -GatewayType Vpn -VpnType RouteBased

#https://azure.microsoft.com/en-us/documentation/articles/vpn-gateway-create-site-to-site-rm-powershell/#7-configure-your-vpn-device

#Get the public IP address for the next step of building our connection script for RRAS either via powershell or via the Portal

Get-AzureRmPublicIpAddress -Name gwpip -ResourceGroupName $rgName


#BUILD our RRAS Configuration

$gateway1 = Get-AzureRmVirtualNetworkGateway -Name vnetgw1 -ResourceGroupName $rgName

$local = Get-AzureRmLocalNetworkGateway -Name RakNetOnPremises -ResourceGroupName $rgName

New-AzureRmVirtualNetworkGatewayConnection -Name RakoToAzureVPN -ResourceGroupName $rgName -Location $locName -VirtualNetworkGateway1 $gateway1 -LocalNetworkGateway2 $local -ConnectionType IPsec -RoutingWeight 10 -SharedKey 'abc123'

Now you need to configure RRAS Server

After configuration of RRAS Server, try to connect.

StackDriver multiple choice Questions in GCP

1.Which of these is NOT a Stack-driver product?
A. Performance
B. Error Reporting
C. Trace
D. Debug

Ans: A
Explanation :-

 https://cloud.google.com/stackdriver/docs/

~~~~~~~~~~~
2.What platforms can Stack driver natively monitor? Choose all that apply.
A. GCP
B. AWS
C. Azure
D. Openstack

Ans : A and B

Explanation :-
https://cloud.google.com/monitoring/docs/

~~~~~~~~~~~~~~
3.What IAM roles are necessary to view Admin Activity logs? Choose all that apply.
A. Logging/Private Logs Viewer
B. Project Owner
C. Project Viewer
D. Logging/Logs Viewer

Ans:- A and D

Expl:- https://cloud.google.com/iam/docs/roles-audit-logging


~~~~~~~~~~~~~
4.Logs can be exported to which services? Choose that apply.
A. Pub/Sub
B. Cloud Storage
C. BigQuery
D. Cloud SQL
~~~~~~~~~~~~~~~~~
Ans:- A B and C
https://cloud.google.com/logging/docs/export/


5.What is the retention period for audit data access activity logs?
A. 7
B. 400
C. 30
D. 100

Ans : C

Explanation : https://cloud.google.com/logging/docs/audit/


~~~~~~~~~~~~~~~~~~~~~
6.Admin activity logs are retained for ___ days.
A. 7
B. 30
C. 100
D. 400

Ans : D

Explanation:- https://cloud.google.com/logging/docs/audit/

~~~~~~~~~~~~~~~~
7.If external auditors need to be able to access your admin activity logs once a year for compliance, what is the best method of preserving and sharing that log data?

A. Export logs to Cloud Storage bucket, and email a list of the logs once per year.
B. Create GCP accounts for the auditors and grant the Project Viewer role to view logs in Stackdriver Logging
C. Export logs to a Cloud Storage bucket for long-term retention and grant auditor accounts the Storage Object Viewer role to the bucket.
D. Share long-term account with them so they can access the records.

Ans :- C

what is Storage Object Viewer & Project viewer Role.
Ans:
https://cloud.google.com/storage/docs/access-control/iam-roles


~~~~~~~~~~~~~~~~~

8.What Compute service is most tightly integrated with Stackdriver Trace, Debugger, and Error Reporting?
A. App Engine Standard
B. Compute Engine
C. App Engine Flexible
D. Kubernetes Engine



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
9.How many days do you have to recover logs past their retention period?
A. None, deleted logs past retention date are not recoverable
B. 5
C. 7
D. 30

Ans A
~~~~~~~~~~~~~~~~~~~~~~~


10.What is the preferred method of custom organization of resources in Stackdriver Monitoring?
A. Units
B. Groups
C. Instances
D. Events

Ans B
~~~~~~~~~~~~~~~~~

11.GCP Stackdriver can use for GCP as well as AWS services

1. True
2. False

Ans 1
~~~~~~~~~~
12.Stackdriver Monitoring can be used for alerting - what steps involved in alerting? Choose all that apply.
1. Monitoring Conditions
2. Notifications
3. report incident
4. Aggregation



~~~~~~~~~~~~~~~~~~~~~~
13. What is difference between custom matrices & built-in metrics




14.Stackdriver Monitoring can be used for custom metrices
1. True
2. False


Ans 1.
~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~
16.Stackdriver basic tier can have following options

 1.GCP services
 2.GCP and AWS Services
 3.Audit logs 30 days
 4. other logs 7 days

 ~~~~~~~~~~~~~~~~~~
17. Please refer to Dress4win Case Study to answer the following question.The company has custom Monitoring/ Logging services, Infrastructure, and incident management mechanism. IT Operations has concerns if this will be satisfied when in Google Cloud Platform. What services can they use on Google Cloud Platform?

 1.use AWS Services for Monitoring and logging
 2. Stackdriver logging can be used with third party tools for alerting
 3.Install existing tools for monitoring and logging
 4. stackdriver logging and monitoring can be used for all GCP services
~~~~~~~~~~~~~~~~~~~~
18. You can do following things using Stackdriver Logging except (one answer)

1.Custom Monitoring Metrices
2. Log search
3. log alerts
4. Custom logs
~~~~~~~~~~~~~~
19.You can monitor HTTP load balancer using StackDriver Monitoring

1. True
2. False
~~~~~~~~~~~~~~~~
Ans:- 1.

20.Default period for log retention for Stackdriver logging is (select one)

1. 30 days
2. 1 year
3. 7 days
4. 90 days


~~~~~~~~~~~~~~~~~
21. Please refer to JencoMart Case Study to answer the following question.JencoMart wants to monitor infrastructure using Stackdriver Monitoring but some of their services are stored on Amazon AWS has Cloudwatch. What is the best suitable solution to monitor using a single solution? (select one)

1. use custom Solution and there is no solution in from GCP or AWS can do both platfrom monitoring
2.Stackdriver Monitoring and logging supports AWS and GCP
3.AWS cloudwatch can monitor resources on AWS, GCP and Azure
4. Cloud Bigquery to integrate with AWS Cloud watch and StackDriver
~~~~~~~~~~~~~~~~~~
22.Which is not the policy used by autoscaler for scaling? (select one)

1. CPU Utlization
2. Load Balancing Services capacity
3. StackDriver Monitoring Metrices
4. Memory Utilization
5. Cloud Pub/Sub

Ans: 4

~~~~~~~~~~~~~
23.True or False: You can not integrate with Stackdriver monitoring with Cloud SQL
1. True
2. False

Ans:- 1
~~~~~~~~~~~~~

24. Which of the following application can be used to stream logging for Stackdriver Logging

1. Cloud SQL
2. Cloud pub/sub
3. Cloud Storage
4. Cloud BigQuery

Ans : 2

~~~~~~~~~~~~~~~~
25.Which of the following services can not be used as sinks out of the box for Stackdriver Logging

1.Cloud SQL
2.Cloud pub/sub
3.Cloud Storage
4.Cloud Bigquery

Ans: except 4


~~~~~~~~~~~~~~~~~~~~~~
26.Which of the following service use can be use for Stackdriver Monitoring, Logging, Error reporting, Trace& debug
1. Cloud container Engine
2. Cloud App Engine
3. Cloud Function
4.Cloud Virtual Machine
 ~~~~~~~~~~~~~~~~~
27.True:False Stackdriver trace is free service but only used for app engine out of default
1. True
2.False

2 false


~~~~~~~~~~~~~~
28.True:False Stackdriver Debugger can be used for Cloud Storage

1. True
2. False

Ans:-  false

exp:https://cloud.google.com/debugger/docs/setup/
~~~~~~~~~~~~~~
29. Which of the following application can provide information on "Why App engine application taking so long to handle request"

1. SD Logging
2. SD Monitoring
3. SD trace
4. SD Error Reporting
5. SD Debugger

Ans: 3

~~~~~~~~~~~~~~~~
30. Stackdriver Trace can be used with following applications

1. App Engine
2. HTTPS Load Balancer
3. Cloud CDN
4. Cloud VPN
5. Application use SD SDK

Ans:- 1,2&3
https://cloud.google.com/trace/docs/overview