Files
Andriy Oblivantsev 33ebb4af89
Helm Chart CI & Release / Lint Helm Chart (push) Successful in 10s
Helm Chart CI & Release / Semantic Release (push) Successful in 2m7s
Minor fixes
2026-02-20 13:38:28 +00:00

3.7 KiB
Raw Permalink Blame History

🦩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 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! 🦩