achieveit DevOps Exercise

What am I to do?

  1. Design the architecture for a SaaS web application which is deployed to Azure.

  2. React Web App

  3. .NET API

  4. Node JS Cron Job

  5. Database

  6. Design and highlight Logging and Monitoring solution to be implemented.

  7. Create a YAML file to represent the pipeline to deploy both the React App and the .NET API.

What are some assuptions I am going to make?

  1. The infrastructure is deployed and is not managed by these pipelines
  2. I am in GitHub and am part of an organization. There are different repos listed below here.
  3. some-app-infra
  4. some-app-tf
  5. some-app-react
  6. some-app-node
  7. some-app-dot-net
  8. github-actions
  9. github-workflows

What are questions I have?

  1. Can I deploy containers directly to Azure? Yes, using Azure Container Instances.
  2. Can I deploy containers that run on a schedule?
  3. Can I build a .NET container with Docker?
  4. What database should I use?
  5. Should I show the multi-tenant structure?
  6. Should I do a multi-resource-group structure? No, this is a single application made of multiple services, so it should be held together.

What am I explicitly leaving out?

  1. Lifecycle environments - Depending on needs, you could achieve this with resource groups, subscriptions, management groups, or tenants. However, this is probably more effort than what is needed to show the skills in this example. As a note, I would look at having three environments; DEV, STAGE, and PROD. I would also include an OPS environment which would host things like the DNS, Monitoring, and Container Registry, so there is one location where all of that lives and the environments can remain relatively sanitary.