I am trying using Azure DevOps Toolkit for APIM CI/CD pipeline. I have followed the YouTube video for setting it up. Looks like the setup shown in the video is quite outdated. It is difficult to find proper resources for setting up APIM CI/CD implementation. We cannot use dotnet-apim as customer wont encourage to use personally maintained source code.
We are not sure how they came up with a starter dev source repository from APIM. Whenever we extract the current APIM, we are not getting APIM master template.
Is it advisable to use this tool or approach for a production environment? If anybody setup this toolkit and ci/cd pipeline for apim, kindly help with some guidelines.
Related
I'm new to Devops and Azure Devops.
I need to create a pipeline that would be able to deploy external API's to one APIM using Swagger.
Swagger is also new to me. However, I learnt that I would need to have a repo with the swagger.yaml file. However, I'm not sure how I can then create a build that can then be sent to Azure Portal.
Is there a way to do this? I apologize if this is a stupid question, but these concepts are all relatively new to me.
You can add a special Task to accomplish this.
I'd reccommend this one due its simplicity:
You need to configure a couple of things in there.
Here's a full-detailed tutorial that I hope you'll find it useful: https://lurumad.github.io/continous-delivery-to-azure-api-management-using-azure-devops-pipelines
I'm building Azure Function (Premium plan) with Private endpoint.
As I'm using private endpoint, function is not available from the public internet / MSFT managed Cloud pipelines.
Now, idea was to use Deployment Center in Function App to enable CI/CD, but I'm failing to find a way how to script configuration of Deployment Center.
Is there even a way to setup Deployment Center configuration outside of Azure Portal? Using Bicep or Powershell? Essentially, something which will map repository/branch/build pipeline with given slot.
It will be weird to have completely automated process for deployment of infrastructure and then to go there and manually update deployment configuration for each subscription/stage.
you can use github actions to deploy the function, but you have to connect the github to the function through the deployment center.
This is simple process where in deployment center just select github under source and connect the github repository by Loging in the github account.
Another solution would be to use visual studio like tool to directly deploy from to development environment.
Also, you can containerize the function and deploy the container.
Refer the following documentation on all the ways of deployment to the azure.
I am trying to make my deployments more safe by having credentials information in a separate file and not pushing it to GitHub. The problem is that I have synced the repo with Azure enabling continuous development.
Because the config file is ignored, when the Azure App seeks for the code from GitHub, it cannot find the config file and therefore not being able to read the information.
How can I overcome this? Thanks.
I'll recommend you to look into Azure DevOps. (Free for up to 5 users)
It will give you the opportunity to manage your deployments using pipelines. You don't need to host your code in the Azure DevOps Git. You are free to keep using GitHub for source control.
I'm not a big fan of the built-in "Deployment Center" inside the Azure Services like an "App Service". You will be very limited in customization compared to a Pipeline.
For keeping secrets secure in deployment. You can make use of Key Vault References.
https://learn.microsoft.com/en-us/azure/app-service/app-service-key-vault-references
I have several questions:
Can I include in a project repository my own EULA\License text for the source codes?
Can I use Azure DevOps for free and open-sourced projects?
Because here from what I can see, I cannot use Azure DevOps in these cases. Is that correct?
Regarding questions 1 and 2, please check the description below:
We recommend that you host your source code on github and use Azure Devops for continuous integration/continuous deployment (CI/CD). This is because Azure DevOps Public Projects aren't generally discoverable to the general public. A project member needs to publicize the URL for it to be found.
You could use Azure DevOps for free and open-sourced projects. An Azure DevOps Services public project provides support to share code with others and to support continuous integration/continuous deployment (CI/CD) of open-source software. Users aren't required to sign in to gain read-only access to many of the services.
You could refer to this document to view more detailed information about public project.
Because here from what I can see, I cannot use Azure DevOps in these cases. Is that correct?
Your understanding is correct. The entry of the Code of Conduct is to build a better Azure Devops and let our users get a better experience.
I would like to perform the following steps on schedule (presumably using Azure Automation):
Provision a VM in Azure
Run a powershell script on that VM
Deprovision VM
Actually I have more steps but left only 3 for simplicity.
I am new to IaC and appreciate your general guidance and advice.
Is it scope of Azure Automation or I need something else?
I would like to code everything in text format and put in Git and update automatically via Pull Requests
Should I use Runbooks or DSC?
Regarding step 2, I cannot figure out how I can upload my powersehll script into newly created VM and run it locally. The script downloads some files and updates some remote resources.
Thanks,
Ruslan
there are a lot of options and tools to achieve your goal.
If you will be working strictly in the Azure cloud, The following tools are most commonly used for building an environment.
Azure-powershell
Azure-CLI
ARM-templates
each of them very similar but all a little different with their own benefits to them, but they are all tools for building your virtual infrastructure. For configuring your resources there are other tools. Like you mentioned yourself, DSC is a tool to configure virtual machines.
if you are planning to use github to push your code, i would recommend using ARM-templates. You can very easily use your own or other templates by referencing in your code. However this might be the 'hardest' solution to learn and understand the syntax in comparison to the cli and powershell. But also the most frequently used.
It is possible to build your environment and configure it in the same script using the Azure-CLI, Azure-Powershell or an other opensource solution like Terraform, But this is not best practice.
A lot of starter scripts are publicly available on github and in the Microsoft docs.
if you have any specific questions you can always send me a message, i am currently working on azure automation myself.