Create Dynamics 365 BC on Docker using BC container wizard

 In this article. I will try to create a Dynamis365 Business Central on docker container for developing purpose





    There are 2 main steps

    1. Create Image and BC container on Local computer 
                - This step I have research from Freddy's blog: Link how to use BC-helper power shell script.
 
    2. Push BC container to Azure Container Instances
                - This step I have lean from Stefano Demiliani : Link


Step 1
First, check your Docker Desktop is running.






Life is easier by using Create BC container wizard. These tools will generate a power shell script and parameter from rather than manual input all power shell scripts.



You can follow the step from sauravdhyani 's blog:  Link 


Once you complete the journal with the create bc wizard. power shell script generated and ready to run




Once docker is complete pull the image container to your local computer then. you will be able to access Dynamics 365 BC via a Web Browser







Implement NetCore Web API running on Azure Kubernetes Cluster (Part 1)



 Previously. I'm published 3 Articles about performance testing on Azure computing including

VMs, APP-Service, Container Insanctse by using Dotnet core application web API: Link


This article will apply the same Netcore Application for testing how the computing can handle large requests from clients and process to Azure SQL 

    There is 2 part for this testing

        Part 1. provision Azure Kubernetes Service

        Part 2. Execute testing


1. Once you have successfully build your application using NetCore Then you upload it to Azure Container Registry. I have already created an article for upload Netcore Application to Azure container follow the:Link  

2. On (Azure)Azure Container Registries  enable Admin user and copy login server for next step


.3 Preparing Image name by using ACR parameter as follow Login Server +"/" + Repositories + ":" + Tags


4. Create Azure Kubernetes Service




more than ACI container instances the AKS ability can support Availability Zone and Scalable


In this article, I will create 2 scenario

    - Manual Scale Sigle Node

   -  Auto Scale 1 - 2 Node 



5. On the AKS  integration tab refer to  target ACR using for Pull image


6 AKS has been created then copy connection string for next step



7. Prepare YAML file using VS Code

you can follow the step by this Julio Casal'syoutupe : Link


Replace image name from your ACR on this session



8. In VS code terminal /Run command to access AKS that you get from step 6
** Note you can also prepare YAML and execute from Azure could shell


apply YAML to AKS with command   Kubectl apply -f.\yourfile.yaml


go back to check on AKS workloads: you will see your container application has been deployed


Load balancer service has been deployed





9. HTTP request method POST from Postman. Status 200 applications are working properly on the Kubernetes cluster. We are good to go testing.




Part 2 Execute Testing: Comming soon






Performance testing on Azure VMs, App Services, and Container Instances (Part2)

Refer to my previous article we have tested simulated Sales order processing using NETCore web API connected to Azure SQL . by hosting on Azure virtual Machin with a single instance and multiple instances scale set.

After that, I have published my project to Azure with 3 different platforms to comparing performance between a particular Azure service as follows

    1. Virtual Machine: Link

    2. App Services: Link 

            2.1 Single Instances  S1

            2.2 Dual Instancese  S1 

            2.3 Single Instances  P1V2  (Scale-up)

            ** Because I testing in the Azure trial Environment, so I cannot use the Isolate plan to create an app service 

    3. Container Instances

            3.1  Single Instances 

            3.2  Dual Instances

            3.3  Single Instances (Scale-up)


The condition to test is 

Simulate sales order place from end-user. 100 users commit every 1 second over  minutes Duration


3. Container Instance

3.1 Single Instances

-    Size  1 CPU/1.5 GiB Memory.


-Average Response Time 7024  /Response Counts success 6177 / Timeout  Zero



Azure SQL database5796 Orders have been inserted.


3.2 Dual Instances

-    Size is the same as scenario 3.1
-    I use Application Gateway to handle load balancer by configuring Frontend Public IP to Backend Pool with Container Public IP.




-Average Response Time 3352  /Response Counts success 12,096 / Timeout  Zero
Azure SQL database: 12,173 Orders have been inserted from different container instances.



3.3  Container Instances Scale-up 

I do create a Container with double size.

- Size 2 CPU core/ 3 GiB memory




-Average Response Time 4571  /Response Counts success 9675 / Timeout Zero



Azure SQL database: 19,641 Orders have been inserted.




Conclusion: 





for me, the test resource was impressive for container instances.

Hope my lab gives you ideas about 3 Azure computing services. I wouldn't say which one is the better solution. It's base on your technology and environmental condition.

In my opinion. I think the container is portable and easy to deployment so in the next article, I will try to leverage the container base with my Project. 


Thanks for you visit my blog

    

Performance testing Azure computing Services: VM, App services, and Container Instances (Part1)

Refer to my previous article we have tested simulated Sales order processing using NETCore web API connected to Azure SQL . by hosting on Azure virtual Machin with a single instance and multiple instances scale set.



After that, I have published my project to Azure with 3 different platforms to comparing performance between a particular Azure service as follows

    1. Virtual Machine:  Link

    2. App Services

            2.1 Single Instances  S1

            2.2 Dual Instancese S1  

            2.3 Single Instances  P1V2  (Scale-up)

            ** Because I testing in the Azure trial Environment, so I cannot use the Isolate plan to create an app service 

    3. Container Instances


The condition to test is 

Simulate sales order place from end-user. 100 users commit every 1 second over  minutes Duration


2. App Service

   2.1 Single Instances   S1    



-Average Response Time 15,636 ms  /Response Counts success 435 / Timeout  2,423


- Azure SQL: 3,016 
Orders have been inserted.


2.2 Dual Instancese S1  (Scale-Out)

I have configured the Manual scale to 2 Instances count.

-Average Response Time 8,656 ms  /Response Counts success 4613 / Timeout  419

- Azure SQL: 5,230 Orders have been inserted.




2.3 Single Instances   P1V2

because there is so much error in the first and second tests of App-service. seems S1 services plan cannot handle large request scenario. So have scale-up service planning to P1V2


- Change the size to  P1V2   210 total ACU   3.5 GiB Memory





-Average Response Time 7,073 ms  /Response Counts success 6038 / Timeout  105


- Azure SQL: 6211 Orders has been inserted.



Now we have completed all 3 scenarios of App service 

We will continue for Container Instance on Part2: Link



Create and Publish NETCore web-API running on Azure container Instance

Refer to this article I'm testing for VM scale set by hosting the web-API on IIS inside Virtual manchin: Link: Testing Azure VMs Autoscale with the Load balancer

In this article, I will use the same source code as the previous lab to create the container instances rather than VMs

There is 3 part 

First: Create Net core web API from Visual Studio 2019

Second: Publish project to Azure container registry 

Third: Create Azure container instances and Run


   First part

1. Create Project: Select ASP NET Core Web API



2. Project Name and Local file




3.  Addition Information

- Target Framework Choose Netcore 5
- Enable Docker >> Windows




4.  New Project has been created



5. on the First run. The system will pull data for provisioning contianer.




6. Web browser open automatically for swagger UI





*** Before go to publish step. I add a couple classes (Inventory Update, Database connection to Azure SQL)
This coding will simulate the ERP sales order Logic and consume CPU usage for performance testing purposes

*** This logic will use the same as future testing with Azure computing service


SQL Utility : .


Sales Order commit under HTTP POST method.



Second Publish project to Azure container registry 
1.  Menu Build >> Publish



2.  Select Azure container Registry
 


3. Select Resource group, Location to deploy on Azure.


4. Publish Success



Third: Create Azure container instances and Run

1. On target, Azure resource group already has Container registry created



2. Select Repository and Run



3. Defined Container Instance config value
4. Testing API by sending HTTP GET method from Container instance public IP






Right now The container has been ready to test

Next  Article I will compare the performance of different Azure computing services base on my scenario