Infrastructure Insights, Balancing Cube & OpenMQTTGateway


Summary of my bookmarked links and Github repositories from Feb 12th, 2024

Links

  • (Almost) Every infrastructure decision I endorse or regret after 4 years running infrastructure at a startup

    1. Picking AWS over Google Cloud 🟩 Endorse: After using both GCP and AWS, AWS stood out for its customer-focused support, stability, and integration with various services. While Google Cloud had its merits, AWS's support and reliability won us over.2. EKS 🟩 Endorse: EKS proves its worth unless penny-pinching, offering a well-integrated control plane. Kubernetes integrations around AWS services have made it a strong choice, especially with tools like external-dns and external-secrets.3. EKS Managed Addons 🟧 Regret: Initially opting for EKS managed addons faced customization challenges. Transitioning to Helm charts improved flexibility, aligning better with existing GitOps pipelines.4. RDS 🟩 Endorse: Emphasizes the critical role of data; RDS, or any managed database, is deemed worth the cost for safeguarding against company-ending data loss.5. Redis ElastiCache 🟩 Endorse: Redis is praised for its speed, simplicity, and versatility, making it an excellent choice for caching and beyond. Confidence in AWS's continued support due to widespread use.6. ECR 🟩 Endorse: Switching from quay.io to ECR improved stability, with deeper permissions integration enhancing the overall experience.7. AWS VPN 🟩 Endorse: Advocates for the simplicity of setting up a VPN, favoring it over complex alternatives for ease of use.8. AWS Premium Support 🟧 Regret: Deems AWS Premium Support expensive, possibly not justifying the cost, especially if in-house AWS knowledge is substantial.9. Control Tower Account Factory for Terraform 🟩 Endorse: Integration of AFT improved automation and account standardization, making account management more efficient.10. Automating Post-Mortem Process with a Slack Bot 🟩 Endorse: Recommends automating post-mortem processes with a Slack bot, streamlining communication and ensuring compliance with SEV and post-mortem procedures.11. Alerting 🟩 Endorse: Describes a phased approach to alerting prioritization and regular PagerDuty review meetings for critical and non-critical alerts.12. Monthly Cost Tracking Meetings 🟩 Endorse: Advocates for monthly meetings to review SaaS costs, suggesting a deeper dive into cost breakdown for better financial understanding.13. Not Using Function as a Service (FaaS) More πŸŸ₯ Regret: Acknowledges limitations of FaaS for GPU workloads but laments not leveraging it more for CPU workloads due to cost misconceptions.14. GitOps 🟩 Endorse: GitOps is praised for scalability despite some challenges in visualizing commit-to-deployment workflows. Its flexibility makes it a strong recommendation.15. Prioritizing Team Efficiency Over External Demands 🟩 Endorse: Prioritizing team efficiency over external demands is emphasized, highlighting the importance of investing time in automation and documentation.16. Multiple Applications Sharing a Database πŸŸ₯ Regret: Expresses regret over shared databases, citing issues of crud accumulation, performance challenges, and the lack of clear ownership.17. Not Adopting an Identity Platform Early On πŸŸ₯ Regret: Regrets not adopting Okta earlier for identity management, highlighting its flexibility, integrations, and compliance/security benefits.18. Notion 🟩 Endorse: Endorses Notion as an excellent choice for documentation, praising its ease of use and sophisticated organization capabilities.19. Slack 🟩 Endorse: Recommends Slack for communication, emphasizing efficient usage through threads, clear expectations, and public channels.20. Moving off JIRA onto Linear 🟩 Endorse: Prefers Linear over JIRA for its streamlined functionality, suggesting a more user-friendly experience.21. Not Using Terraform Cloud 🟩 No Regrets: Initial attempt to migrate to Terraform Cloud was hindered by cost concerns. Subsequently, using Atlantis and incorporating automation has proved effective.22. GitHub Actions for CI/CD 🟧 Endorse-ish: GitHub Actions is favored for CI/CD, but limited support for self-hosted workflows is noted, especially when using EKS.23. Datadog πŸŸ₯ Regret: Acknowledges Datadog's excellence but expresses concerns about its cost model, particularly for Kubernetes clusters and GPU-intensive workloads. Recommends PagerDuty as a well-priced alternative.24. Software Schema Migration by Diff 🟧 Endorse-ish: Recommends schema management via versioned Git commits but acknowledges the inherent difficulty of this task.25. Ubuntu for Dev Servers 🟩 Endorse: Prefers Ubuntu for development servers for its support and ease of use, deeming efforts to align it with production unnecessary.26. AppSmith 🟩 Endorse: Endorses AppSmith for simplifying automation processes with a user-friendly UI, especially valuable for internal engineers.27. Helm 🟩 Endorse: While Helm v2 had its issues, Helm v3 is endorsed for packaging and deploying versioned Kubernetes objects, despite some challenges in deploying CRDs.28. Prioritizing Team Efficiency Over External Demands 🟩 Endorse: Reiterates the importance of prioritizing team efficiency, recommending automation and documentation for a more productive team.29. Multiple Applications Sharing a Database πŸŸ₯ Regret: Expresses regret over the decision not to decide on multiple applications sharing a database, emphasizing the challenges it introduces and the importance of careful management.

  • Balancing cube

    The author presents an open-source balancing cube inspired by ETH ZΓΌrich's "Cubli." Through meticulous mechanical and electromechanical design, the cube achieves controlled rotation on its corner using reaction wheels. Notable improvements include reduced IMUs and a custom motherboard. High-quality components such as a 60W motor and 6S1P LiPo battery are chosen. The author details the circuit board assembly, controller design, and tuning process, resulting in a fully open-source cube with impressive balancing performance. Future plans include adding mechanical brakes for jump-up maneuvers. All project files are available on the GitHub repository. Total cost: approximately €2500.

Github repositories

  • 1technophile/OpenMQTTGateway

    OpenMQTTGateway: Unifying IoT TechnologiesOpenMQTTGateway is a firmware aiming to streamline diverse technologies under the MQTT protocol. By unifying various protocols, it reduces the need for multiple physical bridges. The documentation, upload options, and compatibility lists make it user-friendly. Products like Theengs Bridge and Theengs Plug, acting as BLE gateways, offer extended functionalities. The project supports multiple controllers like Home Assistant and OpenHAB. Contributors are appreciated, and support can be extended by helping in the community, contributing to code/documentation, purchasing compatible devices, or making donations. The project gained attention on Hackaday and CNX Software.