DevOps Engineer Assignment
Scenario: Setting up a serverless architecture with CI/CD integration.
Dept made a new hosting proposal for the current hosting environment of a company called ‘X’. What follows is a trimmed down layout of their current environment to give you an idea of what needs to be kept in mind for your platform of choice:
- CMS server (Umbraco).
- Web server – (companyx.com).
- Database server (SQL).
- Network file share (shared between CMS & Web for media storage).
- Content Delivery Network (CDN) – (Only the web server is behind the CDN).
Development is currently done in-house but the process is slow and tedious, the code is built on the local machine of the developer(s) and deployed manually using FTP. What makes it even worse is that they only have a production environment and all testing is done on the local machine of the respective developer. We proposed a test, acceptance and production environment for the new setup.
When the new serverless platform is ready there are some tasks that need to be taken care of before the old environment can be switched off. For example, the DNS needs to be switched over to the new environment.
A go-live plan (runbook) needs to be created to document all steps that will have to be taken in preparation for going live on the new platform with their website.
- Diagram a serverless architecture (SaaS) on a platform of your choice. Keep in mind that it needs to be able to support Umbraco and that the codebase is C# (.NET framework) elaborate on the diagram and why you’ve chosen the specific platform.
- Create a “go live plan” and document the steps that would have to be taken prior to going live on the new environment. Try to be as detailed as possible.
- Come up with a CI/CD strategy that integrates with the new SaaS platform. Elaborate on the chosen tool.
- With IaC (Infra as Code) in mind, propose a tool that can easily be integrated with your proposed environment.
- Diagram a serverless architecture with redundancy in mind (multi-region, clustered, etc).
- Aftercare: What monitoring tool would you use for the new environment and what metrics would you use? Explain why.