Challenge Statement

Create a content management system hosted on Azure, which you will be using to blog about your progress from Day 1 to Day 30 of your days of azure challenge.

Prerequisite and Requirements

  1. Knowledge of popular CMS (Content Management System) available in the market
  2. Understanding of different types of compute offering on Azure. This list is by no mean exhaustive and at the point of writing 7th Aug 2018,. the major ones are
    • Virtual Machines (VMs)
    • Azure App Service (Also loosely referred to as Azure Web Sites, Azure Web App, App Service Environment from previous naming conventions)
    • Container Services (this is a loose term referring to Docker based container hosting services)
    • Service Fabric
    • Cloud Services (also know as web & worker role)
    • Azure Functions
  3. Storage and Networking Services on Azure
  4. Knowledge of available database providers such as
    • MSSQL
    • MYSQL
    • PostgreSQL
    • NoSQL
      • Document based
      • Key Value based
    • *enough for now*
  5. Domain name management and setting up of DNS Records such as
    1. cname
    2. TXT
    3. A Records
  6. Setting up of Application Servers (not to be confused with compute servers) such as
    1. Nginx
    2. Apache
    3. IIS
    4. Other relevant application server compatible with your CMS, which might be written perl, python, RoR, and other languages
  7. Knowledge of Windows or Linux based operating systems
  8. Bonus: SSL Certificate for Domain Names

You do not need to know everything listed above, work with the technologies which you are familiar with.

Thought Process

There might be a tendency to think about cost first, my advice is go through the below points before you come to a decision point.

  1. Is this setup mission critical?
  2. How much downtime can you afford? 1 second, 1 minute, 15 minute, 1 hour etc…..
  3. Do you have an SLA which you need to provide to your customers, and are there liquidated damages incurred if the SLA is not matched?
  4. Canonical to point 3, would downtime be directly associated with loss / churn of customers to my competitors?
  5. Would I prefer to work on
    1. Single Box infrastructure for cost optimization (Web Application, Database in the same box)
    2. N-Tier Architecture (usually for separation concerns)
    3. Micro-Services / Serverless Architecture (for scalability and development agility)
  6. Whats my operating budget?
  7. Whats my stretch operating budget, if the (cost of downtime > the cost of redundancy + man hours).
  8. How much time do a I have to spare for patching and maintenance of compute?
  9. What are the platform and languages which I’m familiar with?