You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
7.5 KiB

5 years ago
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Welcome file</title>
<link rel="stylesheet" href="https://stackedit.io/style.css" />
</head>
<body class="stackedit">
<div class="stackedit__html"><h1 id="node.js-vlab">Node.js Vlab!</h1>
<p>Αναλάβαμε σαν ομάδα το ανωτέρο project (Node.js) στο εργαστηριακό μάθημα <a href="https://eclass.uniwa.gr/courses/ICE326/"><strong>Υπολογιστική Νέφους και Υπηρεσίες</strong></a> και το υλοποιήσαμε σύμφωνα με τις προϋποθέσεις που έχουν τεθεί για το vlab.<br>
Πιό συγκεκριμένα :</p>
<ul>
<li>δικό του δίκτυο</li>
<li>web περιβάλλον για προβολή των αποτελεσμάτων και δυνατότητα download <a href="https://83.212.77.30:9443/minio/login">Minio Browser</a></li>
<li>χώρο αποθήκευσης</li>
<li>Αυτόματη διαδικασία εκτέλεσης των υπηρεσιών μέσω <em>make</em></li>
<li>μία υπηρεσία ανά container</li>
<li>replicated mode</li>
<li>Containers/Replica θα “τρέχουν” μόνο σε workers</li>
<li>resource config για Out Of Memory Exceptions</li>
</ul>
<blockquote>
<p>Αναφορικά με τα παραπάνω,<br>
η <strong>λειτουργία</strong> της υπηρεσίας είναι μέσα απο ενα Web περιβάλλον ο χρήστης να ανεβάζει το node.js κώδικα του, να αποθηκεύεται σε ένα χώρο αποθήκευσης, να γίνεται download τοπικά,</p>
</blockquote>
<h2 id="swarm">Swarm</h2>
<p><strong>Στη συνέχεια δημηουργούμε :</strong></p>
<blockquote>
<ul>
<li>1 <a href="https://83.212.77.30:9443/minio/login">manager</a></li>
<li>3 workers</li>
</ul>
<blockquote>
<ul>
<li><a href="https://83.212.77.59:9443/minio/login">w1</a></li>
<li><a href="https://83.212.77.50:9443/minio/login">w1</a></li>
<li><a href="https://83.212.77.113:9443/minio/login">w1</a></li>
</ul>
</blockquote>
</blockquote>
<p>Δημιουργούνται επίσης οι υπηρεσίες</p>
<blockquote>
<ol>
<li>minio_stack</li>
<li>node_stack</li>
</ol>
</blockquote>
<p>Μέσα απο τον manager και τους workers, <strong>στη πόρτα 9443</strong>, μπορούμε να έχουμε πρόσβαση στο Minio Browser και να ακολουθήσει η παραπάνω λειτουργία.</p>
<p>Αφου γίνει αποθήκευση του project μέσα απο τους workers και <strong>μόνο</strong> και στην πόρτα <strong>3000</strong> ανεβαίνει η υπηρεσία που έχει γίνει deploy, και βλέπουμε το αποτέλεσμα στον browser. Αυτό σημβαίνει κάθε προκαθορισμένο χρονικό διάστημα οριζόμενο απο εμάς.</p>
<blockquote>
<h2 id="πιο-αναλυτικά.....-"><span class="katex--display"><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi mathvariant="normal">Π</mi><mi>ι</mi><mi>ο</mi></mrow><annotation encoding="application/x-tex">Πιο</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 0.68333em; vertical-align: 0em;"></span><span class="mord">Π</span><span class="mord mathdefault">ι</span><span class="mord mathdefault">ο</span></span></span></span></span></span> <span class="katex--display"><span class="katex-display"><span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>α</mi><mi>ν</mi><mi>α</mi><mi>λ</mi><mi>υ</mi><mi>τ</mi><mi>ι</mi><mi>κ</mi><mover accent="true"><mi>α</mi><mo>ˊ</mo></mover><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi><mi mathvariant="normal">.</mi></mrow><annotation encoding="application/x-tex">αναλυτικά..... </annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height: 0.69444em; vertical-align: 0em;"></span><span class="mord mathdefault" style="margin-right: 0.0037em;">α</span><span class="mord mathdefault" style="margin-right: 0.06366em;">ν</span><span class="mord mathdefault" style="margin-right: 0.0037em;">α</span><span class="mord mathdefault">λ</span><span class="mord mathdefault" style="margin-right: 0.03588em;">υ</span><span class="mord mathdefault" style="margin-right: 0.1132em;">τ</span><span class="mord mathdefault">ι</span><span class="mord mathdefault">κ</span><span class="mord accent"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height: 0.69444em;"><span class="" style="top: -3em;"><span class="pstrut" style="height: 3em;"></span><span class="mord mathdefault" style="margin-right: 0.0037em;">α</span></span><span class="" style="top: -3em;"><span class="pstrut" style="height: 3em;"></span><span class="accent-body" style="left: -0.22222em;">ˊ</span></span></span></span></span></span><span class="mord">.</span><span class="mord">.</span><span class="mord">.</span><span class="mord">.</span><span class="mord">.</span></span></span></span></span></span></h2>
</blockquote>
<h2 id="miniobucket">Minio/Bucket</h2>
<p>To Bucket είναι ένας χώρος αποθήκευσης που δημιουργούμε στο Minio ,όπου ο κάθε χρήστης μπορεί να ανεβάσει εκεί τα αρχεία του.</p>
<ul>
<li><strong>Αρχικά</strong> δημιουργούνται 4 υπηρεσίες Minio ( Minio1-Minio2-Minio3-Minio4) , μια για τον κάθε ένα node απο το swarm.</li>
<li>Η σύνδεση στην υπηρεσία γίνεται με χρήση <strong>key</strong> και <strong>secret</strong></li>
<li>Μέσα απο το καθορισμένο bucket στη συνέχεια αποθηκεύουμε τα αρχεία μεσω της δωθήσας υπηρεσίας <strong>aws s3</strong> στο localdir του μηχανήματος μας.</li>
<li>Έπειτα δημιουργούνται τα <strong>replicas</strong>
<blockquote>
<p><strong>Τέσσερα</strong> αρχικα, ( ένα για κάθε node {1,2,3,4})<br>
<strong>Δύο</strong> ακόμη για webUI που τρέχει η υπηρεσία για το γραφικό περιβάλλον του Minio</p>
</blockquote>
</li>
<li>Τέλος δημιουργείται η εφαρμογή που είναι ουσιαστικά μια υπηρεσία στο Minio με <strong>9 replicas</strong>.</li>
</ul>
<h2 id="cron">CRON</h2>
<p>Tέλος, εκτελείτε η υπηρεσία <strong>Cron</strong>, όπου ανα προκαθορισμένο χρόνο μέσω του αρχείου <strong>Makefile</strong> “τραβάμε” τα περιεχόμενα από το bucket που έχουμε δημιουργήσει και τα αποθηκεύουμε στο localdir. Τα κάνουμε <em><strong>build</strong></em> και στη συνέχεια <em><strong>deploy</strong></em> στο stack όπου εκτελείτε η υπηρεσία στους workers και τα αποτελέσματα εμφανίζονται με τη διεύθυνση του κάθε worker στη πόρτα <a href="http://83.212.77.59:3000/"><strong>:3000</strong></a>.</p>
<pre><code></code></pre>
</div>
</body>
</html>