Ένα πείραμα για τη χρήση των GitHub Actions ως επίπεδο ελέγχου για ένα PaaS | Mewayz Blog Skip to main content
Hacker News

Ένα πείραμα για τη χρήση των GitHub Actions ως επίπεδο ελέγχου για ένα PaaS

Σχόλια

6 min read

Mewayz Team

Editorial Team

Hacker News

Μια απροσδόκητη ένωση: Git and the Platform

Ο κόσμος των DevOps βασίζεται στην αυτοματοποίηση. Αναπτύσσουμε σενάρια, διαχειριζόμαστε την υποδομή ως κώδικα και προσπαθούμε να κάνουμε κάθε διαδικασία επαναλήψιμη και αξιόπιστη. Στο επίκεντρο αυτού για αμέτρητες ομάδες ανάπτυξης βρίσκεται το GitHub, η πανταχού παρούσα πλατφόρμα για τη συνεργασία κώδικα. Τι θα γινόταν όμως αν η ισχύς του μπορούσε να επεκταθεί πέρα ​​από τον έλεγχο έκδοσης και το CI/CD; Αυτή είναι η ιστορία ενός πειράματος για να ωθήσει τα όρια των GitHub Actions, μετατρέποντάς το από έναν ενορχηστρωτή κατασκευής και δοκιμής στο κεντρικό νευρικό σύστημα - το επίπεδο ελέγχου - για μια ολόκληρη Πλατφόρμα ως Υπηρεσία (PaaS).

Επαναπροσδιορισμός του επιπέδου ελέγχου

Παραδοσιακά, ένα αεροπλάνο ελέγχου PaaS είναι ένα πολύπλοκο, προσαρμοσμένο λογισμικό. Είναι μια κεντρική αρχή που λαμβάνει εντολές (αναπτύξτε αυτό, κλιμακώστε το) και ενορχηστρώνει την υποκείμενη υποδομή για να το πραγματοποιήσει. Χειρίζεται την παροχή, τη δικτύωση, την ασφάλεια και τη διαχείριση του κύκλου ζωής. Η κατασκευή ενός είναι ένα σημαντικό εγχείρημα μηχανικής. Η υπόθεση του πειράματός μας ήταν απλή: θα μπορούσαμε να αξιοποιήσουμε την υπάρχουσα, ισχυρή και οικεία ροή εργασίας του GitHub Actions για να εκτελέσουμε αυτά τα ίδια καθήκοντα; Αντί να γράψουμε ένα μονολιθικό επίπεδο ελέγχου, θα χρησιμοποιούσαμε αρχεία YAML, αιτήματα έλξης και το ισχυρό οικοσύστημα του GitHub που βασίζεται σε συμβάντα για τη διαχείριση της πλατφόρμας μας.

"Το πιο ισχυρό εργαλείο είναι αυτό που ξέρει ήδη πώς να χρησιμοποιεί η ομάδα σας. Χρησιμοποιώντας το GitHub Actions ως επίπεδο ελέγχου, δεν χρειάστηκε να δημιουργήσουμε μια διεπαφή χρήστη ή να διδάξουμε νέες έννοιες. Επεκτείναμε την υπάρχουσα ροή εργασίας με επίκεντρο το Git που αγαπούν οι προγραμματιστές."

Αρχιτεκτονική του GitHub-Driven PaaS

Η αρχιτεκτονική επικεντρώθηκε στην αντιμετώπιση των δηλώσεων υποδομής και των διαμορφώσεων εφαρμογών ως κώδικα μέσα σε ένα αποθετήριο. Η ροή εργασίας ενός προγραμματιστή για την ανάπτυξη μιας νέας microservice, για παράδειγμα, θα μοιάζει με αυτό:

Ένας προγραμματιστής δημιουργεί έναν νέο κατάλογο για την υπηρεσία του και προσθέτει ένα αρχείο `mewayz.app.yaml` καθορίζοντας τις ανάγκες του: CPU, μνήμη, μεταβλητές περιβάλλοντος και τομέας.

Δεσμεύουν αυτό το αρχείο και ανοίγουν ένα αίτημα έλξης. Η ίδια η πράξη του ανοίγματος του PR ενεργοποιεί μια ροή εργασίας GitHub Actions.

Η ροή εργασίας, που λειτουργεί ως επίπεδο ελέγχου, αναλύει το αρχείο YAML, επικυρώνει τη διαμόρφωση και εκτελεί μια ξηρή εκτέλεση των αλλαγών υποδομής.

Μόλις συγχωνευθεί το PR, ενεργοποιείται μια ξεχωριστή ροή εργασιών ανάπτυξης. Αυτή η ροή εργασίας περιέχει τη λογική επικοινωνίας με διάφορα API cloud (Kubernetes, AWS, κ.λπ.) για την παροχή των απαραίτητων πόρων και την ανάπτυξη της υπηρεσίας.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Στη συνέχεια, η ροή εργασίας σχολιάζει τη δέσμευση με μια ζωντανή σύνδεση με τη νέα υπηρεσία που έχει αναπτυχθεί, ολοκληρώνοντας τον βρόχο.

Αυτή η προσέγγιση ενσωματώθηκε άψογα με τη φιλοσοφία της Mewayz για αρθρωτή και εμπειρία προγραμματιστή. Ολόκληρη η κατάσταση της πλατφόρμας ήταν ελεγχόμενη από έκδοση, ελεγχόμενη και ακολουθούσε την ίδια διαδικασία συνεργατικού ελέγχου με τον ίδιο τον κώδικα εφαρμογής.

Μαθήματα από τα σύνορα

Το πείραμα ήταν μια τρομερή επιτυχία στην απόδειξη της σκοπιμότητας. Πετύχαμε ένα πλήρως λειτουργικό PaaS με γνώμονα το Git-ops, όπου κάθε αλλαγή ήταν ανιχνεύσιμη και αναστρέψιμη. Ωστόσο, αποκάλυψε επίσης σημαντικές εκτιμήσεις. Η σύνθετη διαχείριση κατάστασης μερικές φορές ωθούσε τα όρια αυτού που ήταν κομψό σε ένα αρχείο YAML. Ενώ το GitHub Actions είναι απίστευτα επεκτάσιμο, για πλατφόρμες μεγάλης κλίμακας, η ουρά και ο χρόνος εκτέλεσης των ροών εργασίας θα μπορούσε να γίνει εμπόδιο σε σύγκριση με ένα ειδικό API επιπέδου ελέγχου χαμηλής καθυστέρησης. Η ασφάλεια ήταν πρωταρχικής σημασίας. έπρεπε να διαχειριστούμε σχολαστικά τα μυστικά και τις άδειες για να διασφαλίσουμε ότι ο δρομέας του GitHub Action είχε την ακριβή ελάχιστη πρόσβαση που απαιτείται για την εκτέλεση των καθηκόντων του—μια ιδέα απόλυτα ευθυγραμμισμένη με τις αρχές ασφαλούς σχεδιασμού της Mewayz.

Μια ματιά σε ένα Git-Centric Future

Αυτό το πείραμα δείχνει ότι τα εργαλεία που χρησιμοποιούμε για τη συνεργασία και το CI/CD είναι αρκετά ισχυρά ώστε να επανατοποθετηθούν στην ίδια τη βάση των πλατφορμών μας. Θολώνει τη γραμμή μεταξύ της ανάπτυξης μιας εφαρμογής και της διαχείρισης του περιβάλλοντος στο οποίο εκτελείται, ενοποιώντας τα κάτω από ένα μονό

Frequently Asked Questions

An Unexpected Union: Git and the Platform

The world of DevOps is built on automation. We script deployments, manage infrastructure as code, and strive to make every process repeatable and reliable. At the heart of this for countless development teams is GitHub, the ubiquitous platform for code collaboration. But what if its power could be extended beyond version control and CI/CD? This is the story of an experiment to push the boundaries of GitHub Actions, transforming it from a build-and-test orchestrator into the central nervous system—the control plane—for an entire Platform as a Service (PaaS).

Redefining the Control Plane

Traditionally, a PaaS control plane is a complex, bespoke piece of software. It's a central authority that receives commands (deploy this, scale that) and orchestrates the underlying infrastructure to make it happen. It handles provisioning, networking, security, and lifecycle management. Building one is a significant engineering undertaking. The hypothesis of our experiment was simple: could we leverage the existing, powerful, and familiar workflow of GitHub Actions to perform these same duties? Instead of writing a monolithic control plane, we would use YAML files, pull requests, and GitHub's robust event-driven ecosystem to manage our platform.

Architecting the GitHub-Driven PaaS

The architecture centered on treating infrastructure declarations and application configurations as code within a repository. A developer's workflow to deploy a new microservice, for instance, would look like this:

Lessons from the Frontier

The experiment was a resounding success in proving feasibility. We achieved a fully functional, Git-ops driven PaaS where every change was traceable and reversible. However, it also revealed important considerations. Complex state management sometimes pushed the boundaries of what was elegant in a YAML file. While GitHub Actions is incredibly scalable, for massive-scale platforms, the queueing and execution time of workflows could become a bottleneck compared to a dedicated, low-latency control plane API. Security was paramount; we had to meticulously manage secrets and permissions to ensure the GitHub Action runner had the exact minimum access required to perform its duties—a concept perfectly aligned with Mewayz's secure-by-design principles.

A Glimpse into a Git-Centric Future

This experiment demonstrates that the tools we use for collaboration and CI/CD are powerful enough to be repurposed into the very foundation of our platforms. It blurs the line between developing an application and managing the environment it runs on, unifying them under a single, Git-based workflow. For companies like Mewayz, which are building the next generation of business OS platforms, this exploration is invaluable. It challenges conventional architecture and opens doors to incredibly intuitive and integrated developer experiences. While it may not replace every custom control plane, it stands as a powerful testament to the idea that the best solution might already be in your toolkit.

All Your Business Tools in One Place

Stop juggling multiple apps. Mewayz combines 208 tools for just $49/month — from inventory to HR, booking to analytics. No credit card required to start.

Try Mewayz Free →

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 6,202+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 6,202+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime