
Wysyłanie listów to czynność, którą można i warto zautomatyzować.
Założona w 1558 roku Poczta Polska jest jedną z najstarszych usług pocztowych na świecie. Aby umożliwić klientom zaoszczędzenie czasu związanego z zarządzaniem wysyłką korespondencji, spółka podjęła wyzwanie digitalizacji i automatyzacji wysyłania listów.

Wyzwanie
Dość szybko po uruchomieniu usługi Envelo pozyskało dużego klienta. W normalnych okolicznościach byłby to powód do świętowania, ale Poczta Polska znalazła się w trudnej sytuacji.
Wyzwanie biznesowe polegało na tym, że ogromny wzrost zapotrzebowania na wysyłki spowodowany przez nowego klienta zwiększyłby koszt abonamentu za oprogramowanie na którym zbudowano system.
Zespół kierowniczy Poczty Polskiej poszukiwał rozwiązania. Potrzebowali nowoczesnej, skalowalnej i opłacalnej platformy Envelo, która mogłaby zapewnić niezbędną niezawodność i skalowalność przy rozsądnych kosztach operacyjnych.
Rozwiązanie:
Oprogramowanie open source
Często firmy obawiają się wdrożenia open source. Są ku temu dobre powody (pisaliśmy o tym na blogu o zaletach i wadach open source w biznesie). Jednak przy odpowiednim doradztwie i wiedzy, open source może stać się niezawodną i oszczędną alternatywą dla modeli własnościowych i opartych na subskrypcji.
Przedstawiliśmy plan modernizacji starego systemu Poczty Polskiej i wprowadzenia w jego miejsce nowego. Składałby się on z kilku bloków konstrukcyjnych, z których każdy byłby napisany na zamówienie w Javie lub złożony z komponentów open source. Rysunek 1 pokazuje ostateczny rezultat.
Fig. 1.: The new system for Poczta Polska
System opiera się na mikroserwisach, niezależnych programach, które są osadzone i działają w kontenerach. Kontener jest wirtualnym środowiskiem uruchomieniowym, skonfigurowanym tak, aby zawierał wszystkie zależności wymagane do wykonania mikroserwisu wewnątrz niego
W naszym projekcie każdy kontener uruchamia mikroserwis odpowiedzialny za inne zadanie: wysyłanie i śledzenie paczek, zarządzanie listami, generowanie PDF-ów itd. Kubernetes (w skrócie k8s), nowoczesna platforma orkiestracji od Google, przydziela i zarządza kontenerami automatycznie. Jeśli któryś z nich ulegnie awarii, Kubernetes restartuje go lub zastępuje klonem. Dzięki temu awaria systemu jest praktycznie niemożliwa. Skalowanie tego rozwiązania także jest bardzo proste. Wystarczy dodać sprzęt, a Kubernetes odpowiednio rozszerzy liczbę kontenerów.Mikroserwisy i ich role
Płynne aktualizacje
Nieuwzględnione na wykresie wdrożenie BlueGreen to podejście do aktualizacji, które zaimplementowaliśmy do systemu. Umożliwia ono bezproblemowe aktualizacje poprzez ciągłe naprzemienne korzystanie z dwóch identycznych kopii oprogramowania podczas jego aktualizacji.
Komunikacja mikroserwisów
Mikroserwisy muszą się komunikować, aby cały system działał prawidłowo. Aby mieć pewność, że każdy mikroserwis wie, co robi drugi, Apache Kafka i Zookeeper koordynują wymianę informacji między nimi, opóźniając ich dostarczenie do momentu, gdy serwis odbiorcy będzie gotowy je przyjąć.
Bezpieczeństwo danych
Keycloak obsługuje uwierzytelnianie. System jest szyfrowany symetrycznie i wymaga do wejścia dwuczęściowego klucza szyfrującego. Jedna część to główne hasło, druga jest losowo generowana dla każdego pliku i przechowywana w osobnej bazie danych. Tylko osoba, która może podać obie części, może odczytać pliki.
Zarządzanie przechowywaniem
Wszystkie pliki są przechowywane w S3 Object Storage. MinIO zarządza nimi i wykonuje regularne kopie zapasowe w celu szybkiego i łatwego odzyskania danych. Oprócz architektury mikroserwisów, która pochodzi z wbudowanymi zależnościami i możliwościami autofixingu kontenerów, jest to kolejna cecha, która zapewnia niezawodność systemu.
Zarządzanie logami
Każda aplikacja generuje ogromne ilości logów. Można je ignorować, ale tylko do momentu, gdy coś pójdzie nie tak. Wtedy rozwiązanie problemu często wymaga znalezienia właściwego loga. Elasticsearch, Filebeat i Kibana składają się na stos ELK, pakiet open source do łatwej agregacji, wizualizacji i wyszukiwania logów.
Korzyści
Całościowy wynik wszystkich wprowadzonych zmian to aż 60% niższe koszty utrzymania systemu. Drogi abonament został zastąpiony darmowymi i elastycznymi alternatywami open source, które nie są obciążone długiem technicznym. Architektura mikroserwisowa z Kubernetes na czele uprościła i zautomatyzowała skalowanie, co sprawia że żaden klient nigdy nie będzie za duży dla Poczty Polskiej. Z kolei wdrożenie BlueGreen znacznie skróciło czas aktualizacji, zwiększając dostępność systemu.
Wszystko to dzięki połączeniu dwóch czynników: eksperckiej wiedzy Clurgo oraz szeregu umiejętnie zestawionych aplikacji open source.
Potrzebujesz pomocy w zakresie usług rozwoju oprogramowania dla łańcucha dostaw?
Skontaktuj się z naszym ekspertemZobacz także
Porozmawiaj z naszym konsultantem
Clurgo posiada udokumentowane osiągnięcia, doświadczenie i wiedzę inżynierską w zakresie tworzenia oprogramowania dla łańcucha dostaw.
Poznaj możliwości naszych programistówSkontaktuj się z nami


