Μετάβαση στο περιεχόμενο

Πώς δημιουργήθηκε αυτός ο ιστότοπος

Πώς δημιουργήθηκε αυτός ο ιστότοπος

Χρησιμοποιήσαμε ένα εργαλείο ανοιχτού κώδικα που ονομάζεται MkDocs.

Το MkDocs είναι ένας γρήγορος, απλός και απολύτως όμορφος στατικός γεννήτορας ιστότοπων που έχει σχεδιαστεί ειδικά για την κατασκευή τεκμηρίωσης έργων. Αλλά δεν αφορά μόνο την τεκμηρίωση — μπορούν να γίνουν φοβερά πράγματα με το MkDocs!

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

Για να απλοποιήσουμε τη διαδικασία ανάπτυξής μας, εφαρμόσαμε μια διαδικασία CI/CD (Συνεχής Ενοποίηση/Συνεχής Ανάπτυξη). Αυτό μας επιτρέπει να αναπτύσσουμε τις ενημερώσεις μας απευθείας στο GitHub, διασφαλίζοντας ότι ο ιστότοπός μας είναι πάντα ενημερωμένος με τις τελευταίες αλλαγές.

Ελάτε μαζί μας σε αυτό το ταξίδι καθώς εξερευνούμε τις απεριόριστες δυνατότητες του MkDocs!

CI/CD

Τι είναι το CI/CD;

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

Συνεχής Ενοποίηση (CI)
  • Αυτοματοποιημένες Δοκιμές: Οι προγραμματιστές ενσωματώνουν συχνά αλλαγές κώδικα σε ένα κοινό αποθετήριο, όπου εκτελούνται αυτοματοποιημένες δοκιμές για να επαληθεύσουν τη λειτουργικότητα του νέου κώδικα και να διασφαλίσουν ότι δεν σπάει υπάρχουσες δυνατότητες.
  • Έγκαιρη Ανίχνευση Προβλημάτων: Ενσωματώνοντας τον κώδικα συχνά, οι ομάδες μπορούν να εντοπίσουν και να διορθώσουν σφάλματα νωρίς στη διαδικασία ανάπτυξης, μειώνοντας το κόστος και την πολυπλοκότητα της επίλυσης προβλημάτων αργότερα.
Συνεχής Ανάπτυξη (CD)
  • Αυτοματοποιημένη Ανάπτυξη: Μόλις οι αλλαγές κώδικα περάσουν τις αυτοματοποιημένες δοκιμές, αναπτύσσονται αυτόματα σε παραγωγικά περιβάλλοντα. Αυτό σημαίνει ότι οι ενημερώσεις μπορούν να φτάσουν στους χρήστες γρήγορα και αξιόπιστα.
  • Ταχύτερος Χρόνος στην Αγορά: Με το CD, νέα χαρακτηριστικά, διορθώσεις σφαλμάτων και βελτιώσεις μπορούν να παραδίδονται στους χρήστες πιο συχνά, διατηρώντας το λογισμικό σχετικό και βελτιώνοντας την ικανοποίηση των χρηστών.
Η Διαδικασία CI/CD μας
  1. Επεξεργασία Τοπικά: Επεξεργάζομαι τη σελίδα στον τοπικό υπολογιστή μου.
  2. Ανέβασμα στο GitHub: Ανεβάζουμε τις αλλαγές στο GitHub με μια εντολή git push.
  3. Docker Provisioning: Το Docker Provisioning αναφέρεται στη διαδικασία δημιουργίας και ρύθμισης κοντέινερ Docker, τα οποία περιέχουν όλα τα απαραίτητα στοιχεία για την εκτέλεση μιας εφαρμογής ή υπηρεσίας. Αυτή η διαδικασία περιλαμβάνει τα εξής βήματα:

  4. Δημιουργία Εικόνας (Image Creation): Ξεκινάμε με τη δημιουργία μιας εικόνας Docker, η οποία είναι ένα ελαφρύ, αυτοτελές πακέτο που περιλαμβάνει τον κώδικα της εφαρμογής, τις βιβλιοθήκες, τις εξαρτήσεις και τις ρυθμίσεις που απαιτούνται για τη λειτουργία της.

  5. Ρύθμιση Κοντέινερ (Container Setup): Αφού δημιουργηθεί η εικόνα, μπορούμε να δημιουργήσουμε κοντέινερ από αυτήν. Ένα κοντέινερ είναι μια εκτελέσιμη μονάδα που περιέχει την εφαρμογή και τρέχει σε ένα απομονωμένο περιβάλλον.
  6. Αυτοματοποίηση Διαδικασίας (Automating the Process): Χρησιμοποιώντας εργαλεία CI/CD, η διαδικασία provisioning μπορεί να αυτοματοποιηθεί. Αυτό σημαίνει ότι κάθε φορά που γίνονται αλλαγές στον κώδικα, το σύστημα μπορεί αυτόματα να δημιουργήσει μια νέα εικόνα, να ρυθμίσει ένα κοντέινερ και να το αναπτύξει χωρίς ανθρώπινη παρέμβαση.
  7. Απλούστευση της Ανάπτυξης (Simplifying Deployment): Το Docker provisioning διευκολύνει την ανάπτυξη εφαρμογών σε διάφορα περιβάλλοντα, καθώς εξασφαλίζει ότι η εφαρμογή θα λειτουργεί με τον ίδιο τρόπο ανεξάρτητα από την υποδομή που χρησιμοποιείται.
  8. Δημιουργία με MkDocs: Ο ιστότοπος κατασκευάζεται χρησιμοποιώντας το MkDocs μέσα σε αυτήν την εικόνα Docker.

  9. Μεταφόρτωση του Αποτελέσματος: Η τελική κατασκευή μεταφορτώνεται στον server.

  10. Καθαρισμός: Το Docker κοντέινερ αφαιρείται στη συνέχεια για να ελευθερώσει πόρους.

Αυτή η αυτοματοποιημένη διαδικασία διασφαλίζει ότι ο ιστότοπός μας παραμένει συνεπής και ενημερωμένος, επιτρέποντάς μας να επικεντρωθούμε σε αυτό που κάνουμε καλύτερα—να αναπτύσσουμε και να τεκμηριώνουμε!

Κάντε μας μια ερώτηση πως ενα ci/cd pipeline θα καταργήσει τις παροχημένες διαδικασίες σας