This blog is about exploring Azure cloud native development from scratch, focusing on setting up infrastructure, development, DevOps, monitoring, and security
- The journey begins
- Setting up Azure DevOps
- Infrastructure as Code with ARM Templates
- Creating our web service
- Adding automation testing
- Monitoring with Application Insights
- Security, with Key Vault and CredScan
- Setting up our database and integrating it with our web service
- Data Migration with Azure Data Factory (Part 1/2)
- Data Migration with Logic Apps and Azure Functions (Part 2/2)
- Creating our own NuGet package with Azure Artifacts
- Putting the pieces together to create a basic website
- Adding documentation to our web service with Swagger
- Shifting left with IntelliCode and Editor Config files
- Using a Redis cache to optimize our data access
- Addressing recommendations in Azure Advisor
- Implementing dynamic access policies in a shared key vault
- Dynamic and Pull Request deployments to new environments
- Storage optimizations with a CDN
- Security with HTTPS and Let’s Encrypt
- Learning about multi-stage YAML pipelines
- Integrating multi-stage YAML pipelines into our project
- Code Analysis with SonarCloud
- Migrating classic Azure alerts to new alerts
- Customizing SonarCloud rule sets
- Using the Bing image search cognitive service
- Enhancing our search with the analyze image cognitive service
- Adding authentication with a Microsoft account
- Adding authentication with Google, Twitter, and Facebook accounts
- Troubleshooting web jobs and Let’s Encrypt
- Learning about Feature Flags
- Implementing Feature Flags
- Versioning in .NET Core
- Upgrading our projects to .NET Core 3.0
- Comparing our upgraded .NET Core 3.0 projects to new 3.0 projects
- Creating and refining your automated test strategy
- Managing open source software with WhiteSource Bolt
- Moving code to GitHub
- Using GitHub Actions
- Automating upgrades with GitHub DependaBot
- Troubleshooting ASP.NET Core 500.30/502.5 errors
- Approvals in environments with multi-stage YAML pipelines
- Using Parallel jobs in Azure Pipelines
- Parallel jobs in PowerShell
- Creating a dynamic Pull Request environment
- Creating a webhook to extend our pull requests
- Automating GoDaddy CNAME creation with PowerShell
- Reviewing unneeded Azure Advisor recommendations
- Increasing deployment frequency to improve pipeline resiliency
- Resolving resource group deployment quota limits
- Availability tests
- High performing DevOps metrics
- Using secrets safely in development with .NET Core
- Cleaning up secrets in Git
- High availability with Azure Front Door
- Azure DevOps audit log streaming with Event Grid
- Dependabot updates to code
- Splitting up our ARM Templates with Azure CLI to improve our infrastructure deployment reliability
- Passing arrays and using loops in ARM templates
- Upgrading our .NET Core 3.1 project to .NET 5
- Using what-if to optimize ARM template deployments
- Using free managed certificates in Azure web apps
- Revisiting versioning with GitHub
- Code coverage in GitHub with .NET Core
- Measuring code performance with Benchmark.Net
- Parallel jobs with automated testing
- Cleaning up all git merged local branches
- Publishing a NuGet package to GitHub Packages
- Consuming a NuGet package from GitHub Packages
- Dynamic PR environments in GitHub
- Dependabot and GitHub Actions
- Creating GitHub Actions with .NET
Browse the output of this blog: https://samlearnsazure.com.