Confluent Platform - dystrybucja Big Data której sercem jest Apache Kafka
Artykuł poświęcony Confluent Platform 7 której sercem jest Apache Kafka 3
Apache Kafka stała się bazą wielu systemów przetwarzających dane strumieniowe. Jednakże często potrzebujemy rozszerzyć jej możliwości dodatkowymi komponentami jak rejestr schematów, rest proxy, replikację danych, dodatkowe konektory i wiele innych. W takich sytuacjach z pomocą przychodzi nam Confluent Platform, czyli kompletna dystrybucja Big Data, której sercem jest Apache Kafka. Z platformy korzysta obecnie ponad 80% firm z zestawienia Fortune 100. W tym artykule przedstawię najważniejsze informacje dotyczące tej platformy.
Komponenty platformy
Sercem Confluent Platform jest Apache Kafka, oczywiście z uwzględnieniem wszystkich modułów, czyli:
- Kafka Core (broker)
- Kafka Connect
- Kafka Streams
Jednakże największą zaletą korzystania z platformy są dodatkowe komponenty jak:
- Confluent Schema Registry — rejestr schematów, który znacząco ułatwia pracę z komunikatami Avro, JSON lub Protobuf
- Confluent Clients — biblioteki dostępowe dla języków programowania spoza środowiska JVM jak C/C++, Python, Go, .NET
- Confluent REST Proxy — REST API przydatne do pracy, gdy nie możemy skorzystać z natywnych bibliotek klienckich
- Confluent Connectors to Kafka — dodatkowe pluginy dla Kafka Connect
- ksqlDB — narzędzie umożliwiające strumieniowe przetwarzanie danych oraz budowanie przepływu danych za pomocą języka SQL, bazuje na Kafka Streams oraz Kafka Connect, wcześniejsza nazwa to KSQL
- Confluent CLI — dodatkowe narzędzia konsolowe do codziennej pracy z platformą i jej składowymi
- Confluent Control Center — narzędzie UI do zarządzania naszym klastrem
- Confluent Replicator — narzędzie do replikacji danych pomiędzy klastrami
- Confluent Cluster Linking — narzędzie do synchronizacji danych pomiędzy klastrami Apache Kafka (binarnie)
- Confluent Auto Data Balancer / Self-Balancing Clusters — narzędzie umożliwiające automatyczne równomierne rozkładanie ruchu na Kafce, wykrywanie awarii oraz automatyczną naprawę klastra
- Tiered Storage — optymalizacja kosztów w chmurze przez trzymanie starszych danych np. w Amazon S3, Google Cloud Storage lub MinIO
- Confluent JMS Client — Klient JMS dla Kafki
- Confluent MQTT Proxy — Możliwość komunikacji z Kafką za pomocą protokołu MQTT (np. RabbitMQ go używa)
- Confluent Security Plugins — Dodatkowe pluginy zwiększające bezpieczeństwo
Jak widać, platforma znacząco zwiększa możliwości, jakie oferuje Apache Kafka.
Możliwość wdrożenia
Jeśli chcielibyśmy wypróbować Confluent Platform, najlepszym rozwiązaniem jest skorzystanie z kontenerów dostępnych w Docker Hub.
Gdy przyjdzie nam skorzystać z Confluent Platform produkcyjnie, mamy trzy ścieżki do wyboru
- Klasyczna instalacja oparta o maszyny fizyczne (Bare metal) lub wirtualne
- Confluent for Kubernetes (CFK) — możliwość instalacji na dowolnym klastrze Kubernetes
- Confluent Cloud — gotowy serwis umożliwiający pracę z Confluent Platform w chmurze AWS, GCP lub Azure. Umożliwia on także pracę z Apache Kafka jako serverless.
W przypadku pierwszej wersji, czyli samodzielnej instalacji, można ją przeprowadzić ręcznie za pomocą gotowych paczek ZIP/TAR lub repozytoriów Linux dla systemów Debian, Ubuntu, Red Hat oraz CentOS. Dużo jednak lepszym i wygodniejszym rozwiązaniem jest skorzystanie z gotowych Ansible playbooks.
Licencja i cennik
Confluent Platform korzysta z trzech rodzajów licencji:
- Apache 2.0 License — Apache Kafka, Kafka Streams, Kafka Connect, Kafka Clients, Serializers, Community Connectors
- Confluent Community License — REST Proxy, Schema Registry, ksqlDB, Confluent Connectors
- Confluent Enterprise License — Control Center, Replicator, Auto Data Balancer, Enterprise Connectors
Z narzędzi dostępnych na licencji Apache 2.0 może skorzystać każda firma. Jeśli jesteśmy firmą, która chce wykorzystać Confluent Platform do własnego użytku, to najprawdopodobniej możemy skorzystać za darmo także z rozwiązań objętych licencją community (szczegóły w treści licencji). Firmy chcące skorzystać ze wszystkich możliwości, jakie oferuje Confluent Platform, muszą liczyć się z koniecznością zakupu pełnej komercyjnej licencji, wraz z którą otrzymują wsparcie firmy Confluent. Cennik nie jest publicznie dostępny, dlatego w przypadku zainteresowania proszę o kontakt z przedstawicielami firmy.
W przypadku wersji chmurowej mamy możliwość pracy z platformą w modelu płatności za użycie, zaś cennik jest publicznie dostępny na stronie Confluent Cloud.
Dodatkowe informacje
W kolejnych artykułach przyjrzymy się bliżej możliwościom, jakie oferuje Confluent Platform.
Więcej informacji można także znaleźć pod poniższymi adresami:
- https://docs.confluent.io/platform/current/platform.html
- https://docs.confluent.io/platform/current/overview.html
- https://docs.confluent.io/operator/current/overview.html
- https://docs.confluent.io/ansible/current/overview.html
- https://www.confluent.io/confluent-cloud/
- https://www.confluent.io/fr-fr/blog/license-changes-confluent-platform/