3.7 KiB
3.7 KiB
🦩Flamingo Home Assignment - DevOps Engineer
We’d like to get a sense of how you approach cloud infrastructure, containerization, and deployment automation. This assignment is not tied to Flamingo’s domain; feel free to use any lightweight setup or example application that makes it easier for you to demonstrate your skills. 📌 Practical Part
Objective
Package and deploy FleetDM to a local Kubernetes cluster using Helm.
1. Helm Chart
Create a public Helm chart that deploys:
- FleetDM Server
- MySQL
- Redis
2. Local cluster
Include a Makefile with the following targets:
make cluster— create local cluster (Minikube or Kind)make install— install the Helm chartmake uninstall— remove all deployed resources
3. Documentation
Provide a README.md that includes:
- Installation & teardown instructions
- Verification steps to confirm FleetDM, MySQL, and Redis are operational
4. Enhancements
- Set up a basic CI pipeline to release new Helm chart versions.
- Expose the FleetDM UI and ensure that FleetDM is reachable by
agents - Automatically run
fleet prepare dbon fresh install
📌 Theoretical Part Architectural Design Document for “Company Inc.”
Objective
- A 1–2 page, well-structured architectural design document (PDF or similar).
- A High-Level Diagram (HLD) of the architecture (using draw.io, Lucidchart, etc.) illustrating the overall infrastructure design.
Task Overview
Company Inc. is a small startup developing a web application and planning to deploy it on a major cloud provider (AWS or GCP). They have limited cloud experience and seek expertise to design a robust, scalable, secure, and cost-effective infrastructure. They are particularly interested in leveraging managed Kubernetes and following best practices.
Application Details
- Type: Web application with a REST API backend and a single-page application (SPA) frontend.
- Technology Stack: Backend: Python/Flask; Frontend: React; Database: MongoDB.
- Traffic: Initially low (a few hundred users/day), but expected to grow rapidly to millions of users.
- Data: Sensitive user data is handled, requiring strong security measures.
- Deployment Frequency: Continuous Integration and Continuous Delivery (CI/CD) is required.
Assignment Requirements
1. Cloud Environment Structure
- Recommend the optimal number and purpose of AWS accounts / GCP projects for Innovate Inc., considering best practices for isolation, billing, and management.
- Justify the choice of provider and the environmental structure.
2. Network Design
- Design the Virtual Private Cloud (VPC) architecture.
- Describe how the network will be secured (firewalls, security groups, private/public subnets, etc.).
3. Compute Platform
- Detail how managed Kubernetes Service (EKS for AWS / GKE for GCP) will be leveraged to deploy and manage the application.
- Describe the approach to node groups, scaling policies (horizontal & vertical), and resource allocation within the cluster.
- Explain the containerization strategy, including:
- Image building process
- Container registry management
- Deployment pipelines (CI/CD integration)
4. Database
- Recommend the appropriate managed MongoDB service and justify the choice.
- Outline the approach to:
- Automated backups
- High availability (multi-AZ/replicas)
- Disaster recovery strategy
We value your time and want to gain a clear understanding of how you approach DevOps tasks in a clean, thoughtful, and structured manner.
Good luck, and happy deploying! 🦩