I advice you to learn the basis with generic technologies and then use Azure.
The basic and modern devops flow
- Devops admin configure the webhook or trigger to connect the git server with the ci,cd,devops sever
- Devops admin configure the job with steps required to build the application.
- Developer push some source code (java, php, c#, nodejs, etc)
- Your git platform/server (bitbucket, gitlab, github, azure, etc) detects this event and perform an http post request to your webhook url (preconfigured) sending it a json payload with important information related to detected event.
- You ci,cd,devops,etc server receives the http post request and using a json parser extract some important or common values used in devops automation like : repository name, branch name, commit author, commit message, etc
- Your ci,cd,devops,etc server launchs a preconfigured job. At this point you could start, launch or invoke any technology. (java, php, c#, nodejs, etc) required to build the application
More details here:
- https://jrichardsz.github.io/devops/devops-with-git-and-jenkins-using-webhooks
- https://jrichardsz.github.io/devops/configure-webhooks-in-github-bitbucket-gitlab
Devops flow with open source
- git server: github, bitbucket, gitlab, etc
- ci,cd,devops server: jenkins, Harness CI,etc. Check https://harness.io/blog/continuous-delivery/best-jenkins-alternatives/ and https://devops.com/11-open-source-devops-tools-we-love-for-2021/
Devops flow with Azure
- git server: Azure Repos: https://azure.microsoft.com/en-us/services/devops/repos/
- ci,cd,devops server: Azure Devops: https://azure.microsoft.com/en-us/services/devops/ Azure Pipelines: https://azure.microsoft.com/en-us/services/devops/pipelines/
Steps
- Devops admin configure the pipeline trigger to connect the azure repos with the azure devops/pipeline sever: https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/azure-repos-git?view=azure-devops&tabs=yaml#ci-triggers
- Devops admin configure the azure-pipeline with steps required to build the application: https://github.com/bdellegrazie/vue-hello-world/blob/master/azure-pipelines.yml
- Developer push some source code (java, php, c#, nodejs, etc)
- Azure repos detects this event and perform an http post request to Azure Devops sending it a json payload with important information related to detected event.
- Azure Devops server receives the http post request and starts the interpretation of azure-pipeline.yml
- Azure Devops server launches all the steps preconfigured in the azure pipeline, in your case: npm install, npm run build and npm run start
Docker
I advice you Docker to skip the azure-pipeline.yml creation. With docker you app will be deployable on any server (gcp,aws,digital ocena, azure, bare metal, etc) in the galaxy. With azure-pipeline.yml just on Azure. Check this:
https://stackoverflow.com/questions/60604539/how-to-use-docker-in-the-development-phase-of-a-devops-life-cycle/60780840#60780840
Kubernetes
If you achieve the previous steps, you could start the use of kubernetes
Enterprises environments
If your company has the recommended environments like: staging, testing, uat, pre-prod, etc you will need a configuration management. Check this:
https://stackoverflow.com/questions/54220775/how-to-use-variable-substitution-in-frontend-js-applications-like-backend-applic/54271114#54271114