Ολοκλήρωση εφαρμογών: ERP, CRM και e-shop χωρίς «μακαρονάδα»
Πρακτικός οδηγός για την ολοκλήρωση εφαρμογών: δομικά στοιχεία, πότε χρειάζεστε πλατφόρμα, συνηθισμένα λάθη και σύγκριση εργαλείων όπως Boomi, Logic Apps, MuleSoft και Workato.
Μια τυπική εταιρεία που μεγαλώνει έχει ERP για τιμολόγηση και αποθήκη, CRM για τις πωλήσεις, ένα e-shop, την πλατφόρμα της courier και ένα λογιστικό γραφείο που ζητά exports κάθε μήνα. Κάθε σύστημα μόνο του δουλεύει μια χαρά. Το πρόβλημα είναι ανάμεσά τους: παραγγελίες που ξαναπληκτρολογούνται από το e-shop στο ERP, πελάτες που υπάρχουν με τρεις διαφορετικές ορθογραφίες, προϊόντα «διαθέσιμα» online αλλά εξαντλημένα στην αποθήκη.
Ολοκλήρωση εφαρμογών (application integration) είναι η δουλειά του να ανταλλάσσουν αυτά τα συστήματα δεδομένα αξιόπιστα, χωρίς ανθρώπους στη μέση. Σε αυτόν τον οδηγό εξετάζουμε τα δομικά στοιχεία, πώς καταλαβαίνετε αν αρκεί ένα script ή χρειάζεστε πλατφόρμα, τα λάθη που βλέπουμε συχνότερα και πώς να συγκρίνετε τα εργαλεία. Αν οι πλατφόρμες integration είναι κάτι καινούργιο για εσάς, ξεκινήστε από την εισαγωγή μας Τι είναι το iPaaS.
Από τη «μακαρονάδα» σε ένα οργανωμένο επίπεδο integration
Οι περισσότερες εταιρείες ξεκινούν με συνδέσεις point-to-point. Το plugin του e-shop γράφει τις παραγγελίες κατευθείαν στη βάση του ERP. Ένα script εξάγει πελάτες από το CRM κάθε βράδυ. Μια μακροεντολή στο Excel ανεβάζει τιμοκαταλόγους. Κάθε σύνδεση ήταν λογική απόφαση τη στιγμή που πάρθηκε.
Το πρόβλημα είναι το σύνολο. Με πέντε συστήματα μπορεί να καταλήξετε με δέκα ή περισσότερες συνδέσεις, η καθεμία φτιαγμένη αλλιώς, με δικά της διαπιστευτήρια, δικό της logging (ή κανένα) και δική της συμπεριφορά όταν κάτι αποτύχει. Όταν αναβαθμίζεται το ERP, κανείς δεν ξέρει σίγουρα ποια θα «σπάσει». Όταν χάνεται μια παραγγελία, κανείς δεν ξέρει πού να ψάξει.
Ένα επίπεδο integration αλλάζει την εικόνα. Τα συστήματα συνδέονται σε ένα σημείο, η λογική κάθε ροής βρίσκεται εκεί, και η παρακολούθηση, τα σφάλματα και τα διαπιστευτήρια αντιμετωπίζονται με ενιαίο τρόπο. Αυτό το επίπεδο μπορεί να είναι μια πλατφόρμα integration, ένα σύνολο υπηρεσιών cloud ή καλά οργανωμένος custom κώδικας. Σημασία έχει να είναι ένα επίπεδο με ένα σύνολο κανόνων.
Τα δομικά στοιχεία
Όποιο εργαλείο κι αν χρησιμοποιήσετε, κάθε ροή integration αποτελείται από τα ίδια κομμάτια.
1. Συνδεσιμότητα
Πώς μπαίνουν και βγαίνουν δεδομένα από κάθε σύστημα: REST και SOAP APIs, συνδέσεις σε βάσεις, αρχεία σε SFTP, email ή ένας ειδικός connector για το ERP ή το CRM. Οι καλοί connectors γλιτώνουν εβδομάδες, γιατί ήδη ξέρουν πώς το σύστημα χειρίζεται την ταυτοποίηση, τη σελιδοποίηση (paging) και τις ιδιαιτερότητές του.
2. Triggers
Τι ξεκινά μια ροή. Μπορεί να είναι ένα χρονοπρόγραμμα (κάθε πέντε λεπτά, κάθε βράδυ), ένα γεγονός (ένα webhook από το e-shop όταν μπαίνει παραγγελία) ή ένα αίτημα (μια κλήση API που θέλει απάντηση τώρα). Το trigger καθορίζει μεγάλο μέρος του σχεδιασμού, γιατί ένα νυχτερινό batch και ένα webhook σε πραγματικό χρόνο αποτυγχάνουν με πολύ διαφορετικούς τρόπους.
3. Μετασχηματισμός και mapping
Το e-shop το λέει billing.vat_number, το ERP το λέει AFM και το CRM το κρατά σε ένα custom πεδίο. Το mapping
μετατρέπει τα δεδομένα ενός συστήματος στη μορφή και στους κωδικούς που περιμένει ένα άλλο: ονόματα πεδίων, μορφές,
μονάδες, κατηγορίες ΦΠΑ, τρόπους πληρωμής. Συνήθως εδώ βρίσκεται το μεγαλύτερο μέρος της επιχειρηματικής λογικής.
4. Ενορχήστρωση και δρομολόγηση
Οι πραγματικές ροές έχουν βήματα και αποφάσεις. Έλεγξε αν υπάρχει ο πελάτης, δημιούργησέ τον αν όχι, μετά φτιάξε την παραγγελία, μετά δέσμευσε απόθεμα. Στείλε τις B2B παραγγελίες σε μία σειρά παραστατικών του ERP και τις λιανικής σε άλλη. Ενορχήστρωση (orchestration) είναι η λογική που δένει αυτά τα βήματα με τη σωστή σειρά.
5. Διαχείριση σφαλμάτων
Τα συστήματα κλείνουν για συντήρηση, τα APIs κάνουν timeout, ένας κωδικός προϊόντος δεν υπάρχει στο ERP. Μια ροή παραγωγής χρειάζεται σχέδιο για κάθε περίπτωση: ξαναδοκίμασε ό,τι είναι προσωρινό, κράτησε στην άκρη ό,τι θέλει άνθρωπο, και ενημέρωσε κάποιον. Το αναλύουμε στο Διαχείριση σφαλμάτων και retries στο Boomi.
6. Παρακολούθηση και λειτουργία
Πρέπει να ξέρετε τι έτρεξε, τι απέτυχε και γιατί, χωρίς να διαβάζετε log αρχεία σε κάποιον server. Dashboards, ειδοποιήσεις, δυνατότητα να ξανατρέξει ένα έγγραφο που απέτυχε, και ιστορικό του τι στάλθηκε πού.
Χρειάζεστε πλατφόρμα;
Μάλλον ναι, αν ισχύουν αρκετά από τα παρακάτω:
- Έχετε πάνω από τρία-τέσσερα συστήματα που πρέπει να μοιράζονται δεδομένα, ή σκοπεύετε να προσθέσετε κι άλλα.
- Τα integrations είναι κρίσιμα: παραγγελίες, τιμολόγια, αποθέματα ή πληρωμές εξαρτώνται από αυτά.
- Αυτός που έγραψε τα σημερινά scripts έχει φύγει, ή θα ήθελε να φύγει.
- Μαθαίνετε για τις αποτυχίες από πελάτες ή από το λογιστήριο, όχι από μια ειδοποίηση.
- Πρέπει να συνδέσετε εφαρμογές cloud με συστήματα που τρέχουν on-premises.
Μάλλον όχι ακόμη, αν έχετε μία-δύο απλές συνδέσεις με μικρό όγκο που σπάνια αλλάζουν, ή αν ένας έτοιμος connector ανάμεσα στις δύο εφαρμογές (για παράδειγμα το plugin e-shop του ίδιου του κατασκευαστή του ERP) ήδη κάνει ό,τι χρειάζεστε και υποστηρίζεται. Σε αυτή την περίπτωση κρατήστε τον, τεκμηριώστε τον και φροντίστε να ειδοποιείται κάποιος όταν αποτυγχάνει.
Συνηθισμένα λάθη
- Εγγραφή κατευθείαν στη βάση του ERP. Δουλεύει μέχρι η επόμενη αναβάθμιση να αλλάξει έναν πίνακα, ή μέχρι να παρακαμφθούν οι κανόνες του ίδιου του ERP (αρίθμηση, δεσμεύσεις αποθέματος, ΦΠΑ). Χρησιμοποιήστε το API του ERP ή τον μηχανισμό εισαγωγής του.
- Χωρίς idempotency. Αν μια ροή ξανατρέξει μετά από timeout και δημιουργήσει την ίδια παραγγελία δύο φορές, έχετε χειρότερο πρόβλημα από την αρχική αποτυχία. Κάθε δημιουργία χρειάζεται τρόπο να αναγνωρίζει ότι «αυτό το έχω ήδη κάνει». Δείτε ένα παράδειγμα στο Συγχρονισμός παραγγελιών από το e-shop στο ERP με το Boomi.
- Σιωπηλές αποτυχίες. Μια ροή που γράφει ένα σφάλμα στο log και συνεχίζει, χωρίς να το βλέπει κανείς, είναι ένα πρόβλημα ποιότητας δεδομένων που περιμένει να ανακαλυφθεί στο κλείσιμο του μήνα.
- Επιχειρηματική λογική παντού. Λίγη λογική στο plugin του e-shop, λίγη σε ένα script, λίγη σε ένα trigger του ERP. Αποφασίστε πού ζει κάθε κανόνας και κρατήστε τη λογική του integration στο επίπεδο integration.
- Χωρίς κοινούς κωδικούς. Αν κάθε ροή εφευρίσκει το δικό της mapping για τρόπους πληρωμής ή κατηγορίες ΦΠΑ, με τον καιρό θα αποκλίνουν. Κρατήστε τις λίστες κωδικών σε ένα σημείο.
- Αγνόηση του όγκου. Μια ροή που αντέχει 50 παραγγελίες τη μέρα μπορεί να καταρρεύσει τη Black Friday. Δοκιμάστε με ρεαλιστικές αιχμές.
Πώς να συγκρίνετε εργαλεία
Πριν δείτε προϊόντα, απαντήστε σε αυτές τις ερωτήσεις:
- Ποια συστήματα πρέπει να συνδέσετε; Γράψτε τα, με εκδόσεις. Ελέγξτε για υποστηριζόμενους connectors για το ERP, το CRM και το e-shop σας, ειδικά για ελληνικά ή λιγότερο διαδεδομένα ERP.
- Πού τρέχουν; Αν κάποια συστήματα είναι on-premises, χρειάζεστε runtime που να τα φτάνει χωρίς να ανοίξετε το firewall στο internet.
- Ποιος θα φτιάχνει και θα συντηρεί τις ροές; Developers, IT γενικών καθηκόντων ή χρήστες της επιχείρησης. Τα low-code εργαλεία διευρύνουν τον κύκλο όσων μπορούν να βοηθήσουν, αλλά οι σύνθετες ροές θέλουν ακόμη γνώσεις integration.
- Πόσο κρίσιμη και πόσο μεγάλη είναι η κίνηση; Μερικές εκατοντάδες εγγραφές τη μέρα ή εκατοντάδες χιλιάδες. Πραγματικός χρόνος ή batch.
- Πώς αντιμετωπίζονται τα σφάλματα και η παρακολούθηση; Ζητήστε να δείτε μια εκτέλεση που απέτυχε, πώς αναφέρεται και πώς ξανατρέχει.
- Ποιο είναι το μοντέλο τιμολόγησης; Ανά σύνδεση, ανά ροή, ανά task, ανά runtime ή ανά όγκο. Υπολογίστε το με τα δικά σας νούμερα, μαζί με την ανάπτυξη.
- Τι άλλο θα χρειαστείτε σύντομα; APIs, EDI με συνεργάτες, κύρια δεδομένα, ροές εργασιών. Μία πλατφόρμα που καλύπτει και το επόμενο βήμα μπορεί να σας γλιτώσει από ένα migration αργότερα.
Τα εργαλεία της αγοράς
Δεν υπάρχει ένα καλύτερο εργαλείο, μόνο αυτό που ταιριάζει καλύτερα σε κάθε περίπτωση. Αυτές είναι οι επιλογές που συναντάμε συχνότερα, με αλφαβητική σειρά.
- Azure Logic Apps. Η υπηρεσία integration της Microsoft με βάση ροές εργασιών, με μεγάλη βιβλιοθήκη connectors και επιλογές χρέωσης ανά χρήση ή αποκλειστικού hosting. Φυσική επιλογή για οργανισμούς που ήδη χρησιμοποιούν Azure και Microsoft 365, ειδικά σε συνδυασμό με άλλες υπηρεσίες Azure όπως Service Bus και API Management.
- Boomi. Πλατφόρμα integration low-code όπου οι ροές σχεδιάζονται οπτικά ως processes και τρέχουν σε runtime που μπορεί να φιλοξενείται από το Boomi ή να εγκατασταθεί on-premises, κάτι χρήσιμο όταν το ERP είναι μέσα στο δίκτυο της εταιρείας. Πέρα από το application integration καλύπτει APIs, EDI, κύρια δεδομένα και ροές εργασιών στην ίδια πλατφόρμα. Ταιριάζει καλύτερα όταν έχετε μείγμα συστημάτων cloud και on-premises και θέλετε ένα σημείο για να φτιάχνετε και να παρακολουθείτε τα πάντα.
- Custom κώδικας. Scripts ή μικρές υπηρεσίες σε Python, .NET, Node.js ή κάτι παρόμοιο. Πλήρης έλεγχος και κανένα κόστος άδειας, και κάποιες φορές η σωστή απάντηση για μία-δύο καλά ορισμένες συνδέσεις. Το κόστος φαίνεται αργότερα, στην παρακολούθηση, στη διαχείριση σφαλμάτων και στη συντήρηση, που πρέπει να τα φτιάξετε μόνοι σας.
- MuleSoft Anypoint. Δυνατή πλατφόρμα που συνδυάζει integration και API management, με προσέγγιση API-led και εργαλεία προσανατολισμένα σε developers. Δημοφιλής σε μεγάλες επιχειρήσεις και συνήθως τοποθετείται στο ακριβότερο άκρο της αγοράς.
- Workato. Πλατφόρμα integration και αυτοματοποίησης με «συνταγές» (recipes), φιλική προς χρήστες της επιχείρησης, και μεγάλη βιβλιοθήκη connectors. Επιλέγεται συχνά όταν ομάδες της επιχείρησης και του IT φτιάχνουν αυτοματοποιήσεις μαζί.
- Zapier και Make. Εύκολα και οικονομικά εργαλεία για απλές αυτοματοποιήσεις ανάμεσα σε εφαρμογές SaaS, όπως «νέα καταχώρηση φόρμας δημιουργεί επαφή στο CRM». Εξαιρετικά για μικρές περιπτώσεις. Συνήθως δεν είναι σχεδιασμένα για μεγάλους όγκους, ERP on-premises ή σύνθετη διαχείριση σφαλμάτων.
Αν ήδη χρησιμοποιείτε μία από αυτές τις πλατφόρμες για κάτι άλλο, ξεκινήστε την αξιολόγηση από εκεί. Και όποια κι αν διαλέξετε, τα patterns αυτού του οδηγού μετράνε περισσότερο από το προϊόν.
Επόμενα βήματα
Δύο πρακτικά άρθρα δείχνουν τα σημαντικότερα patterns αυτού του οδηγού, βήμα βήμα στο Boomi:
- Συγχρονισμός παραγγελιών από το e-shop στο ERP με το Boomi: σταδιακό polling με watermark, και πώς αποφεύγετε τις διπλές παραγγελίες στα retries.
- Διαχείριση σφαλμάτων και retries στο Boomi: προσωρινά και μόνιμα σφάλματα, retries με backoff, ουρά ελέγχου και ειδοποιήσεις.
Για τις σχεδιαστικές αποφάσεις πίσω από αυτά, δείτε και τον οδηγό μας Integration patterns που πρέπει να ξέρει κάθε ομάδα.
