1 पॉइंट द्वारा GN⁺ 2024-08-10 | 1 टिप्पणियां | WhatsApp पर शेयर करें

कुकी सेटिंग्स और न्यूज़लेटर सदस्यता

  • यह वेबसाइट performance, personalization, marketing उद्देश्यों के लिए cookies, pixel tags, local storage का उपयोग करती है।
  • डिफ़ॉल्ट रूप से केवल आवश्यक cookies ही सक्रिय हैं।
  • न्यूज़लेटर की सदस्यता ली जा सकती है।

Figma का Kubernetes पर माइग्रेशन

  • लेखक: Ian VonSeggern, Figma Software Engineering Manager
  • विषय: Figma ने 12 महीनों के भीतर Kubernetes पर कैसे और क्यों माइग्रेट किया

Figma का computing platform

  • 2023 की शुरुआत में, सभी services को containers में चलाने का काम पूरा किया गया।
  • AWS के Elastic Container Service(ECS) का उपयोग करके containerized workloads को तेज़ी से शुरू किया गया।
  • लंबे समय के दृष्टिकोण से computing platform के next-generation version पर विचार किया जाने लगा।

Kubernetes सुविधाओं की कमी

  • ECS की कुछ सीमाओं के कारण engineering का काफ़ी समय खर्च हुआ।
  • Kubernetes की StatefulSets सुविधा ECS में नहीं थी, जिससे etcd cluster चलाने में कठिनाई हुई।
  • Helm charts के माध्यम से service definitions के समर्थन की कमी थी।
  • ECS पर EC2 चलाते समय किसी एकल EC2 machine को terminate करना कठिन था।

Cloud Native Computing Foundation ecosystem तक पहुंच

  • ECS का उपयोग करने पर CNCF ecosystem की open source technologies का लाभ नहीं मिल पाता।
  • Kubernetes ecosystem में auto-scaling क्षमताएँ बेहतर हैं।
  • service mesh अपनाने की संभावना पर भी विचार किया गया।

लोकप्रिय platform के फायदे

  • Kubernetes का उपयोग कई बड़ी कंपनियाँ करती हैं, इसलिए इसकी स्थिरता प्रमाणित है।
  • vendor lock-in से बचा जा सकता है।
  • Kubernetes अनुभव वाले engineers को hire करना आसान है।

माइग्रेशन के दायरे का निर्धारण

  • सुरक्षित माइग्रेशन के लिए core systems में बदलाव को न्यूनतम रखा गया।
  • EKS पर जाने को लक्ष्य बनाया गया।
  • कुछ सुधारों को भी माइग्रेशन के दायरे में शामिल किया गया।

माइग्रेशन में शामिल सुधार

  • developer experience: service definitions और deployment process को सरल बनाया गया।
  • reliability improvement: तीन EKS clusters का उपयोग करके services की reliability बढ़ाई गई।
  • cost efficiency: node auto-scaling का समर्थन देकर लागत घटाई गई।

दायरे से बाहर रखे गए काम

  • log pipeline की जटिलता को हल करने का काम शामिल नहीं किया गया।
  • pod-level auto-scaling का काम भी शामिल नहीं किया गया।

सुरक्षित माइग्रेशन करना

  • load testing: cluster के performance को समझने के लिए load testing की गई।
  • gradual rollout mechanism: weighted DNS entries का उपयोग करके traffic को धीरे-धीरे स्थानांतरित किया गया।
  • वास्तविक services चलाना: staging environment में वास्तविक services चलाकर समस्याएँ जल्दी पकड़ी गईं।
  • custom YAML को न्यूनतम रखना: users के लिए भ्रम पैदा कर सकने वाली YAML definitions को न्यूनतम रखा गया।
  • service owners के साथ नज़दीकी सहयोग: monitoring और alerts को अपडेट करने के लिए service owners के साथ मिलकर काम किया गया।
  • उचित staffing: अप्रत्याशित समस्याओं को हल कर सकने वाली टीम बनाई गई।

माइग्रेशन का परिणाम

  • जनवरी 2024 तक प्रमुख services को EKS clusters पर माइग्रेट कर दिया गया।
  • लागत में कमी, reliability में सुधार, और developer experience में बेहतरी जैसे लाभ मिले।

लॉन्च के बाद की अवधि

  • cluster और role की automatic inference के माध्यम से user access tools को बेहतर बनाया गया।
  • log pipeline को सरल बनाने, horizontal pod auto-scaling का समर्थन जोड़ने, और Graviton processors पर माइग्रेट करने जैसे कामों की योजना बनाई गई।

GN⁺ का सार

  • Figma ने ECS से Kubernetes पर माइग्रेशन के माध्यम से लागत में कमी, reliability में सुधार, और developer experience में बेहतरी हासिल की।
  • CNCF ecosystem की open source technologies का उपयोग करके auto-scaling और service mesh अपनाने की संभावना बढ़ाई।
  • माइग्रेशन प्रक्रिया में load testing, gradual rollout, और वास्तविक services चलाने जैसे सुरक्षित तरीकों का उपयोग किया गया।
  • लॉन्च के बाद user access tools में सुधार किया गया और अतिरिक्त optimization कार्यों की योजना बनाई गई।

1 टिप्पणियां

 
GN⁺ 2024-08-10
Hacker News राय
  • कुछ उपयोगकर्ताओं को k8s पसंद है

    • कई छोटे लेकिन जटिल कस्टम e-commerce स्टोर चलाते हैं
    • marketing, finance और customer service तक सब संभालते हैं
    • पहले dedicated server इस्तेमाल करते थे, लेकिन deployment एक बुरा सपना था
    • k8s पर जाने में एक महीना लगा
    • 25 अलग-अलग services चला रहे हैं
    • cluster configuration एक जगह इकट्ठा हो गई, जिससे service की स्थिति सही तरह से समझ में आने लगी
    • downtime के बिना rolling deployment संभव हो गया
    • यह जटिल है, लेकिन programmer होने के नाते जटिलता की आदत है
    • k8s architecture को समझ लें तो और बहुत कुछ सीखा जा सकता है
    • high availability (HA) बहुत उपयोगी है
    • hosting लागत लगभग $400 प्रति माह है
  • infra सुधार के लिए migration अच्छा है

    • Helm chart इस्तेमाल करने के लिए Terraform में convert न करना हैरान करता है
    • Helm chart को बिना modification के इस्तेमाल करना सुसंगत नहीं है
    • Helm maintain करना कठिन tool है
    • Terraform में फिर से लिखना बेहतर है
    • जानना चाहते हैं कि क्या Helm की समस्याएँ सुलझ गई हैं
  • HN पर इतना anti-k8s मत देखकर हैरानी हुई

    • संभव है कि कई commenters Heroku, Fly.io, Render.com जैसी services इस्तेमाल करते हों या VM पर app चलाने वाले developers हों
  • Terraform और ECS के साथ deployment management जरूरत से ज्यादा जटिल है

    • environment variable जोड़ना भी जटिल है
    • template generation वाला हिस्सा समझ में आता है, लेकिन कुल मिलाकर यह जटिल है
  • Kubernetes में migration में कई साल लगने वाली राय पर सवाल है

    • समझ नहीं आता कि कंपनियाँ ऐसी migration क्यों करने की कोशिश करती हैं
    • इससे customers को क्या फायदा होता है, इस पर सवाल है
    • क्या technical इच्छा पर आधारित फैसले users के लिए मायने रखते हैं, इस पर संदेह है
  • लगता है कि बड़े संगठनों के फैसले users या कंपनी की जरूरतों पर आधारित नहीं होते

    • Figma की पिछली database पोस्ट में भी ऐसा ही लगा था
    • क्या technical इच्छा पर आधारित फैसले users के लिए मायने रखते हैं, इस पर संदेह है
  • जानना चाहते हैं कि क्या किसी modern system या service में 1 साल के भीतर की migration ऐसी है जिस पर गर्व किया जा सके

  • field reports पढ़ना पसंद है

    • हमेशा कुछ नया सीखने को मिलता है
    • इसे साझा करने के लिए धन्यवाद
  • यह लेख Kubernetes के फायदों को स्पष्ट रूप से समझाता है

    • बहुत से लोग फायदे जाने बिना ही Kubernetes पर switch कर जाते हैं
    • यहाँ दिए गए कारण अच्छे हैं
  • जानना चाहते हैं कि migration को वापस रोकने में कितना समय लगेगा