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.
 
 
 
 

8.6 KiB

Project Υπολογιστικής Νέφους και Υπηρεσιών

Ναθαναήλ Αντώνιος

cs151098

Εξάμηνο: 12ο

Αρχική παρουσίαση εφαρμογών

  • Tυχαία υπηρεσία δημιουργίας τυχαίων αριθμών και απαρίθμηση αυτών (θύρα 800).

  • Υπηρεσία CRUD για έναν χρήστη: Δημιουργία, Ανάγνωση, Ενημέρωση και αποσύνδεση λειτουργιών σε μια συλλογή χρηστών (θύρα 81)

  • Μηχανή αναζήτησης πλήρους κειμένου υποστηριζόμενη από ευρετήριο της MongoDb (θύρα 82)

  • Μια επίδειξη με μεταφορτώσεις φωτογραφικών αρχείων, hash search και χρήση docker volumes. Επίσης θα είναι διαθέσιμη μια αναζήτηση μέσω API εικόνας (θύρα 85)

  • Μια εικονική βιβλιοθήκη, διαθέτει μεθόδους API για μηχανισμούς διαχείρισης και δανεισμού βιβλίων. Οι χρήστες πρέπει να έχουν δημιουργήσει "προφίλ" χρησιμοποιώντας την υπηρεσία User CRUD. (θύρα 86)

  • Grafana με αποθηκευτικό χώρο InfluxDb. Για εμφάνιση γραφημάτων σε αισθητήρες. Συνδέεται με την υπηρεσία MQTT. Κάθε σημείο δεδομένων που περνά μέσω της υπηρεσίας MQTT θα αποθηκεύεται στο InfluxDb και θα εμφανίζεται σε Grafana. (θύρα 3000) Τα προεπιλεγμένα διαπιστευτήρια είναι: admin / admin (Εγκατάσταση της MQTT: sudo apt-get install mosquitto-clients)

Έλεγχος θυρών και εγκατάσταση curl

cd docker-flask-mongodb-example ./check_ports.sh

port 800 is free port 81 is free port 82 is free port 85 is free port 86 is free port 3000 is free

sudo apt-get install curl

Έναρξη microservices

cd docker-flask-mongodb-example docker-compose build docker-compose up

Εφαρμογή 1:

Αυτή η υπηρεσία δημιουργεί τυχαίους αριθμούς και τους αποθηκεύει σε έναν συγκεκριμένο πίνακα (5 από αυτούς). Επίσης μπορεί να δημιουργήσει και να επιστρέψει έναν τυχαίο αριθμό.

Εφαρμογή 2

CRUD σημαίνει create, read, update και delete. Ένας χρήστης έχει ένα id, email και ένα όνομα

Εφαρμογή 3:

Χρησιμοποιείται μία REST API για την εισαγωγή ενός κειμένου σε μία βάση πλήρους κειμένου, ενώ επανακτά τις 10 τελευταίες εισαγωγές.

  • Προσθήκη νέας έκφρασης:

    curl -u admin:changeme -X PUT -d expression="Magical Educational Institute of Athens" http://localhost:82/fulltext

  • Εμφάνιση αποθηκευμένων κειμένων που περιέχουν τη λέξη "of":

    curl -u admin:changeme -i "http://localhost:82/search/of"

Εφαρμογή 4:

Εργαλεία προς εργασία σχετική με αρχεία εικόνας. Upload, Delete, resize, rotate, brightness και αναζήτηση με βάση την ανεβασμένη εικόνα.

Εφαρμογή 5:

Οι λογαριασμοί των χρηστών της βιβλιοθήκης δημιουργήθηκαν στην εφαρμογή 2.

  • Προσθήκη βιβλίου

    curl -X PUT "http://localhost:86/book/978-1607965503" -H "accept: application/json" -H "Content-Type: application/json" -d "{ "isbn": "978-1607965503", "name": "Lincoln the Unknown", "author": "Dale Carnegie", "publisher": "snowballpublishing", "nr_available": 5}"

  • Εμφάνιση βιβλίου

    curl -i "curl -X GET "http://localhost:86/book/978-1607965503" -H "accept: application/json""

  • Εμφάνιση όλων των βιβλίων

    curl -X GET "http://localhost:86/book?limit=5&offset=0" -H "accept: application/json"

  • Διαγραφή βιβλίου

    curl -X DELETE "http://localhost:86/book/1" -H "accept: application/json"

  • Δανεισμός βιβλίου

    curl -X PUT "http://localhost:5000/borrow/1" -H "accept: application/json" -H "Content-Type: application/json" -d "{ "id": "1", "userid": 4, "isbn": "978-1607965503", "borrow_date": "2019-12-12T09:32:51.715Z", "return_date": "2020-02-12T09:32:51.715Z"}"

  • Εμφάνιση λίστας δανεισμών

    curl -X GET "http://localhost:86/borrow?limit=2&offset=0" -H "accept: application/json"

  • Επιστροφή βιβλίου

    curl -X PUT "http://localhost:86/borrow/return/16" -H "accept: application/json" -H "Content-Type: application/json" -d "{ "id": "16", "return_date": "2019-12-13T08:48:47.899Z"}"

Εφαρμογή 6:

Grafana με υλοποίηση Influx Db για την εμφάνιση δεδομένων αισθητήρων.

Η docker εικόνα του Grafana δημιουργεί ένα dashboard που ονομάζεται "SensorMetrics", οπότε στο interface επιλέγουμε "Home".

  • Προσθήκη υγρασίας με τιμή 74 κατευθείαν στην βάση δεδομένων InfluxDb:

    curl -i -XPOST 'http://localhost:8086/write?db=influx' --data-binary 'humidity value=74'

  • Προσθήκη υγρασίας με τιμή 74 χρησιμοποιώντας MQTT:

    mosquitto_pub -h localhost -u some_user -P some_pass -p 1883 -d -t sensors -m "{"sensor_id": "humidity", "sensor_value": 74}"

Έπειτα, μπορούν να εμφανιστούν τα γραφήματα.

  • Επιλογή του SensorMetrics
  • Άνω δεξιά, επιλογή "Last 5 minutes"
  • Επιλογή κατηγορίας που προστέθηκαν εγγραφές (εν προκειμένω humidity)
  • Σύνδεση με την τοπική InfluxDb

docker ps

  • Έναρξη του influx shell, αλλάζοντας το 035124f1b665 με το προσωπικό container id

    docker exec -it 035124f1b665 influx

  • Τώρα υπάρχει πρόσβαση στο influx shell, όπου υπάρχει η δυνατότητα των παρακάτω εντολών:

SHOW DATABASES -- Εμφάνιση όλων των βάσεων δεδομένων USE influx -- επιλογή "influx" βάσης δεδομένων SHOW MEASUREMENTS -- εμφάνιση τρεχόντων μετρήσεων, όπως humidity, temperature κλπ. SELECT * from "humidity" -- Εμφάνιση όλων των εγγραφών που αφορούν το humidity

  • List item