Day 1 Challenge: Creating a CMS Site
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
- Knowledge of popular CMS (Content Management System) available in the market
- 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
- Storage and Networking Services on Azure
- Knowledge of available database providers such as
- MSSQL
- MYSQL
- PostgreSQL
- NoSQL
- Document based
- Key Value based
- *enough for now*
- Domain name management and setting up of DNS Records such as
- cname
- TXT
- A Records
- Setting up of Application Servers (not to be confused with compute servers) such as
- Nginx
- Apache
- IIS
- Other relevant application server compatible with your CMS, which might be written perl, python, RoR, and other languages
- Knowledge of Windows or Linux based operating systems
- 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.
- Is this setup mission critical?
- How much downtime can you afford? 1 second, 1 minute, 15 minute, 1 hour etc…..
- 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?
- Canonical to point 3, would downtime be directly associated with loss / churn of customers to my competitors?
- Would I prefer to work on
- Single Box infrastructure for cost optimization (Web Application, Database in the same box)
- N-Tier Architecture (usually for separation concerns)
- Micro-Services / Serverless Architecture (for scalability and development agility)
- Whats my operating budget?
- Whats my stretch operating budget, if the (cost of downtime > the cost of redundancy + man hours).
- How much time do a I have to spare for patching and maintenance of compute?
- What are the platform and languages which I’m familiar with?