This commit is contained in:
2026-02-19 15:57:19 +00:00
commit 4299febec3
11 changed files with 289 additions and 0 deletions
+88
View File
@@ -0,0 +1,88 @@
# **🦩Flamingo Home Assignment - DevOps Engineer**
## Wed like to get a sense of how you approach cloud infrastructure, containerization, and deployment automation. This assignment is not tied to Flamingos 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**](https://fleetdm.com/) 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 chart
- `make 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 db` on fresh install
## **📌 Theoretical Part** **Architectural Design Document for “Company Inc.”**
**Objective**
1. A **12 page, well-structured architectural design document** (PDF or similar).
2. 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\! 🦩**