I.1 Java Spring Boot
Nadaje się do budowy systemów mikroserwisowych
- Korzystanie ze strony Spring Project Bootstrap pozwala zbudować projekt w kilka sekund
- Jest wygodne eksportować różne formy usług, takich jak REST API, WebSocket, Web, Streaming oraz Tasks
- Bardzo zwięzła integracja polityki bezpieczeństwa
- Obsługiwane są bazy danych relacyjne i nierelacyjne
- Wspieranie wbudowanych kontenerów podczas działania, takich jak Tomcat i Jetty
- Potężny pakiet programistyczny z obsługą hot bootu
- Automatyczne zarządzanie zależnościami
- Wbudowane monitorowanie aplikacji
- Obsługuje różne IED, takie jak IntelliJ IDEA, NetBeans
Inne języki: .net core, Go itd
I.2 Jenkins
Zautomatyzowane procedury CI dla ciągłej integracji
- Open source i wolne
- Wieloplatformowe, wspiera wszystkie platformy (zainstalowałem na Ubuntu 14.04, ale obraz Jenkins Docker nie powiódł się)
- master/slave obsługuje rozproszone kompilacje
- Wizualna strona zarządzania w formie strony internetowej
- Montaż i konfiguracja są bardzo proste
- wskazówki Szybka i terminowa pomoc
- Setki wtyczek, które już istnieją
I.3 GitLab
- Repozytorium projektów Git hostowane samodzielnie, do którego można uzyskać dostęp przez interfejs webowy dla instalacji projektów publicznych lub prywatnych.
- Ma podobną funkcjonalność do GitHuba, umożliwiając nawigację po kodzie źródłowym, zarządzanie błędami i komentarzami. Możliwe jest zarządzanie dostępem zespołu do repozytorium, bardzo łatwo jest przeglądać przesłane wersje i udostępnia bibliotekę historii plików.
- Członkowie zespołu mogą komunikować się za pomocą wbudowanego prostego programu czatu (Wall). Oferuje także funkcję zbierania fragmentów kodu, która umożliwia łatwe ponowne użycie kodu i łatwe znalezienie później, gdy zajdzie taka potrzeba.
- Dokcer
- Docker to silnik open-source, który ułatwia stworzenie lekkiego, przenośnego i samowystarczalnego kontenera do dowolnej aplikacji. Kontenery, które deweloperzy kompilują i testują na notebookach, mogą być wdrażane w partiach w środowiskach produkcyjnych, w tym w maszynach wirtualnych, klastrzach bare metal, klastrzach OpenStack i innych platformach aplikacyjnych.
- Docker jest powszechnie używany w następujących scenariuszach:
- automatyczne pakowanie i publikowanie aplikacji internetowych;
- automatyczne testowanie i ciągła integracja, wydawanie;
- Wdrażanie i dostosowywanie baz danych lub innych aplikacji tła w środowisku zorientowanym na usługi;
- Zbuduj własne środowisko PaaS, kompilując lub rozszerzając istniejącą platformę OpenShift lub Cloud Foundry od podstaw.
I.4 Kubernetes
- Kubernetes to system zarządzania klastrami kontenerowymi oraz platforma open-source, która może realizować funkcje takie jak automatyczne wdrażanie, automatyczne skalowanie oraz utrzymanie klastrów kontenerowych.
- Dzięki Kubernetes możesz:
- Szybkie wdrażanie aplikacji
- Szybko skaluj swoje aplikacje
- Bezproblemowa integracja z nowymi funkcjami aplikacyjnymi
- Oszczędzaj zasoby i optymalizuj wykorzystanie zasobów sprzętowych
I.5 MQ
Gdy czynniki takie jak szybkość czy stabilność "produkcji" i "konsumpcji" są niespójne w systemie, kolejki wiadomości są potrzebne jako warstwa abstrakcji, aby zniwelować różnice między obiema stronami. Wiadomość to jednostka danych przesyłana między dwoma komputerami. Wiadomości mogą być bardzo proste, na przykład zawierać tylko ciągi tekstowe; Może być też bardziej złożona i zawierać osadzone obiekty. Wiadomości są wysyłane do kolejek, czyli kontenerów przechowujących wiadomości podczas transmisji.
- Rozłączeni
- Redundancja
- Skalowalność
- Elastyczność i szczytowa przepustowość
- Możliwość odzyskania
- Gwarancja dostawy
- Gwarantowane sortowanie
- Buforowanie
- Zrozumienie przepływów danych
- Komunikacja asynchroniczna
I.6 SQL DB
- Baza danych to magazyn zbudowany na komputerowych urządzeniach magazynowych, który organizuje, przechowuje i zarządza danymi zgodnie ze strukturą danych.
- Mówiąc prosto, można go traktować jako elektroniczną szafkę na dokumenty – miejsce, gdzie przechowywane są pliki elektroniczne, a użytkownicy mogą dodawać, przechwytywać, aktualizować, usuwać i inne operacje nad danymi zawartymi w pliku.
- W codziennej pracy zarządzania gospodarką często konieczne jest umieszczenie odpowiednich danych w takim "magazynie" i przetwarzanie ich zgodnie z potrzebami zarządu.
MySQL/PostgreSQL jest reprezentatywnym dla tradycyjnych relacyjnych baz danych.
HBase jest reprezentantem technologii Big Tables (indeksowanie wierszy, przechowywanie kolumn).
Neo4j(http://www.neo4j.org/) to reprezentatywna baza danych grafów używana do przechowywania złożonych i wielowymiarowych danych o strukturze grafów.
Redis to przedstawiciel NoSQL oparty na Key-Value, a także Redis-to-go do świadczenia usług przechowywania danych.
MongoDB/CouchDB to przedstawiciel NoSQL oparty na Document, a Couchbase to połączenie technologii Document/Key-Value.
VoltDB jest reprezentantem NewSQL, z spójnością danych i dobrą skalowalnością, a jego wydajność jest dziesiątki razy wyższa niż MySQL.
TiDB to rozproszona baza danych SQL opracowana przez krajowy zespół PingCAP. Zainspirowany kluczem Google F1 i Google, TiDB obsługuje funkcje takie jak tradycyjny RDBMS i NoSQL.
I.7 TICK stack
InfluxDB
Narzędzia do bazy danych szeregów czasowych.
Telegraf
jest narzędziem do zbierania i przechowywania danych. Zapewnia wiele wtyczek wejściowych i wyjściowych, takich jak zbieranie lokalnego CPU, obciążenia, ruchu sieciowego itp., a następnie zapisywanie ich do InfluxDB lub Kafki.
Chronograf
Narzędzia do rysowania
Kapacitor
Kapacitor to narzędzie alarmowe firmy InfluxData, które odczytuje dane z InfluxDB i konfiguruje TickScript zgodnie z typem DLS do alertów.
I.8 Utrzymując paliwo
Keepalived to oprogramowanie usługowe w zarządzaniu klastrami, które zapewnia wysoką dostępność klastra, podobnie jak Heartbeat, aby zapobiec pojedynczym punktom awarii.
keepalilived opiera się na protokole VRRP, który oznacza Virtual Router Redundancy Protocol, czyli protokół redundancji wirtualnego routingu.
Protokół redundancji wirtualnej trasy, który można uznać za protokół umożliwiający osiągnięcie wysokiej dostępności routerów, czyli N routerów o tych samych funkcjach tworzy grupę routerów, która ma mastera i wiele kopii zapasowych, a na masterze jest VIP, który świadczy usługi dla świata zewnętrznego (domyślną trasą innych maszyn w LAN, gdzie znajduje się router, jest VIP), master wysyła multicast, a gdy kopia zapasowa nie może otrzymać pakietu VRRP, uważa się, że master jest niedostępny. Na ten moment musisz wybrać kopię zapasową jako główną kartę zgodnie z priorytetem VRRP. To zapewni wysoką dostępność routera.
Keepalived składa się z trzech głównych modułów: Core, Check i VRRP. Moduł rdzeniowy jest rdzeniem keepalived, który odpowiada za uruchamianie i utrzymanie głównego procesu, a także za ładowanie i analizę globalnych plików konfiguracyjnych. Kontrola kontrolna odpowiada za badania zdrowotne, w tym różne powszechne metody badania. Moduł VRRP został zaprojektowany do implementacji protokołu VRRP
Port I.9
Harbor to serwer rejestrów klasy korporacyjnej do przechowywania i dystrybucji obrazów Docker.
I.10 Ignite / Redis
Apache Ignite In-Memory Data Organization Framework to wysokowydajna, zintegrowana i rozproszona platforma obliczeń i transakcyjnych w pamięci do przetwarzania dużych zbiorów danych o wyższej wydajności niż tradycyjne technologie oparte na dyskach lub flash, a także zapewnia wysokowydajne, rozproszone zarządzanie organizacją danych w pamięci pomiędzy aplikacjami a różnymi źródłami danych.
| Numer seryjny | Porównaj projekty | Apache Ignite | Redis | | 1 | JCache (JSR 107) | Ignite jest w pełni kompatybilny ze specyfikacją buforowania JCache (JSR107) | Brak poparcia | | 2 | Transakcje ACID | Ignite w pełni obsługuje transakcje ACID, w tym optymistyczne i pesymistyczne modele współbieżności, a także poziomy izolacji READ_COMMITTED, REPEATABLE_READ i SERIALIZABLE. | Redis oferuje ograniczone wsparcie dla optymistycznych transakcji po stronie klienta, które wymagają ręcznego ponownego wykonania transakcji w przypadku równoczesnych aktualizacji. | | 3 | Partycjonowanie danych | Ignite obsługuje bufor partycjonowane, podobne do rozproszonego hasha, gdzie każdy węzeł w klastrze przechowuje część danych, a Ignite automatycznie równoważy dane w przypadku zmiany topologii. | Redis nie zapewnia partycjonowania, ale umożliwia dzielenie replik, co jest bardzo sztywne w użyciu i wymaga serii dość złożonych ręcznych kroków za każdym razem, gdy topologia się zmienia, zarówno od klienta, jak i serwera. | | 4 | Pełna kopia | Ignite obsługuje replikację w pamięci podręcznej, wspieraną przez każdą parę klucz-wartość dla każdego węzła w klastrze. | Redis nie zapewnia bezpośredniego wsparcia dla pełnej replikacji. | | 5 | Obiekt natywny | Ignite pozwala użytkownikom korzystać z własnego modelu obiektu domenowego i zapewnia natywne wsparcie dla dowolnego typu danych (obiektu) Java/Scala, C++ oraz .NET/C#, umożliwiając użytkownikom łatwe przechowywanie dowolnego programu i obiektu domeny w pamięci podręcznej Ignite. | Redis nie pozwala użytkownikom na używanie niestandardowych typów danych, obsługuje jedynie zdefiniowane zbiory podstawowych struktur danych, takich jak Set, List, Array i kilka innych. | | 6 | Pamięć podręczna po stronie klienta (niemal niedaleko) | Ignite zapewnia bezpośrednie wsparcie dla buforowania danych po stronie klienta. | Brak poparcia | | 7 | (po stronie serwera) Zestawienie | Ignite obsługuje bezpośrednie wykonywanie dowolnego kodu Java, C++ i .NET/C# w sposób towarzyszący blisko danych po stronie serwera. | Redis zazwyczaj nie posiada możliwości kolokacji, a strona serwera obsługuje praktycznie jedynie język skryptowy LUA, a strona serwera nie obsługuje bezpośrednio wykonywania kodu Java, .NET ani C++. | | 8 | Zapytania SQL | Ignite obsługuje pełną składnię SQL (ANSI-99) do zapytań danych w pamięci. | Redis nie obsługuje żadnego języka zapytań, a jedynie API buforowania po stronie klienta. | | 9 | Ciągłe badanie | Ignite obsługuje zarówno zapytania trwałe po stronie klienta, jak i serwera, a użytkownicy mogą ustawić filtry po stronie serwera, aby zmniejszyć i zmniejszyć liczbę zdarzeń przesyłanych do klienta. | Redis obsługuje powiadomienia o zdarzeniach opartych na kluczach po stronie klienta, ale nie zapewnia filtrów po stronie serwera, co skutkuje znacznym wzrostem ruchu sieciowego w celu aktualizacji powiadomień zarówno po stronie klienta, jak i serwera. | | 10 | Integracja z bazą danych | Ignite może automatycznie integrować zewnętrzne bazy danych – RDBMS, NoSQL i HDFS. | Redis nie może być zintegrowany z zewnętrznymi bazami danych. |
I.11 ELK
ELK składa się z trzech komponentów: Elasticsearch, Logstash i Kibana;
Elasticsearch to otwartoźródłowa rozproszona wyszukiwarka oferująca rozproszone, zero-konfiguracyjne, automatyczne odkrywanie, automatyczne fragmentowanie indeksów, mechanizm repliki indeksu, interfejs w stylu restfull, wiele źródeł danych oraz automatyczne wyszukiwanie.
Logstash to całkowicie otwarte narzędzie, które zbiera, analizuje i przechowuje Twoje logi do późniejszego wykorzystania
Kibana to otwartoźródłowe i bezpłatne narzędzie, które zapewnia Logstash i ElasticSearch przyjazny dla analityki logów interfejs internetowy, pomagający agregować, analizować i przeszukiwać ważne logi danych.
I.12 Kong (Nginx)
Kong to bardzo dostępny, łatwy do rozszerzenia projekt API napisany na Nginx_Lua modułach i jest open source firmy Mashape. Ponieważ Kong opiera się na Nginx, może skalować wiele serwerów Kong poziomo i równomiernie rozdzielać żądania na każdy serwer poprzez konfigurację frontload, aby obsłużyć dużą liczbę żądań sieciowych.
Kong składa się z trzech głównych składników:
KongServer: Serwer oparty na nginx, który odbiera żądania API.
ApacheCassandra/PostgreSQL: Używany do przechowywania danych operacyjnych.
Kongdashboard: Oficjalnie polecane narzędzie do zarządzania UI, oczywiście możesz też używać restfull do zarządzania adminapi.
Kong wykorzystuje mechanizm wtyczek do funkcjonalnej personalizacji, gdzie zestaw wtyczek (które mogą mieć 0 lub n) jest wykonywany podczas cyklu życia pętli odpowiedzi na żądania API. Wtyczka jest napisana w Lua i obecnie posiada kilka podstawowych funkcji: podstawową autoryzację HTTP, uwierzytelnianie kluczy, CORS (Cross-originResourceSharing), TCP, UDP, logowanie plików, ograniczanie żądań API, przekierowanie żądań oraz monitorowanie nginx.
I.13 Openstack
OpenStack+KVM
OpenStack: Projekt zarządzania open source
OpenStack to projekt open source, którego celem jest dostarczanie oprogramowania do budowy i zarządzania chmurami publicznymi i prywatnymi. To nie jest oprogramowanie, lecz połączenie kilku głównych komponentów, które mają wykonać konkretną pracę. OpenStack składa się z następujących pięciu stosunkowo niezależnych komponentów:
OpenStackCompute (Nova) to zestaw kontrolerów używanych do obliczeń maszyn wirtualnych lub do uruchamiania instancji maszyny wirtualnej za pomocą grup;
OpenStack Image Service (Glance) to system wyszukiwania i pobierania obrazów maszyn wirtualnych, który realizuje zarządzanie obrazami maszyn wirtualnych.
OpenStack Object Storage (Swift) to system pamięci masowej oparty na obiektach dla dużych systemów z wbudowaną redundancją i odpornością na błędy, podobny do Amazon S3.
OpenStackKeystone do usług tożsamości użytkownika i zarządzania zasobami, a także
OpenStackHorizon, interfejs dashboardowy oparty na Django, to graficzny front-end do zarządzania.
Pierwotnie opracowany przez NASA i Rackspace pod koniec 2010 roku, ten projekt open-source ma na celu stworzenie łatwej we wdrażaniu, bogatej w funkcje i skalowalnej platformy chmurowej. Pierwszym zadaniem projektu OpenStack jest uproszczenie procesu wdrożenia chmury i zapewnienie jej dobrej skalowalności, w próbie stania się systemem operacyjnym centrum danych, czyli systemem operacyjnym chmury.
KVM: Otwarta technologia wirtualizacji
KVM (VirtualMachine oparta na jądrze) to otwarty moduł wirtualizacji systemów, który wymaga wsparcia sprzętowego, takiego jak technologia IntelVT lub AMDV, w pełni zwirtualizowany na podstawie sprzętu i w pełni wbudowany w Linuksa.
W 2008 roku Red Hat przejął Qumranet, aby pozyskać technologię KVM i promować ją jako część swojej strategii wirtualizacji, wspierając KVM jako jedyny hipernadzorca po premierze RHEL 6 w 2011 roku. KVM koncentruje się na wysokiej wydajności, skalowalności, wysokim bezpieczeństwie i niskich kosztach.
I.14 Disconf
Koncentrując się na różnych "wspólnych komponentach" i "wspólnych platformach" "rozproszonego zarządzania konfiguracją systemów", oferujemy zunifikowane "usługi zarządzania konfiguracją".
I.15 Apollo
Apollo to platforma zarządzania konfiguracją opracowana przez dział frameworkowy Ctrip, która może centralnie zarządzać konfiguracją różnych środowisk i klastrów aplikacji, a po modyfikacji konfiguracji może być przesyłana na stronę aplikacji w czasie rzeczywistym po modyfikacji konfiguracji, posiada ustandaryzowane uprawnienia, zarządzanie procesami i inne cechy.
Serwer jest opracowany w oparciu o SpringBoot i SpringCloud i może być uruchamiany bezpośrednio po zapakowaniu bez konieczności instalowania dodatkowych kontenerów aplikacji, takich jak Tomcat.
I.16 gRPC
gRPC to wysokowydajny, otwartoźródłowy i wszechstronny framework RPC przeznaczony do projektowania mobilnego i HTTP/2. Obecnie dostępne są wersje językowe C, Java i Go, mianowicie: grpc, grpc-Java i grpc-go. Wersja C obsługuje C, C++, Node.js, Python, Ruby, Objective-C, PHP oraz C#.
gRPC został zaprojektowany na bazie standardu HTTP/2, oferując funkcje takie jak przepływ dwukierunkowy, kontrola przepływu, kompresja głowicy oraz multipleksowanie żądań na jednym połączeniu TCP. Dzięki tym funkcjam działa lepiej na urządzeniach mobilnych, oszczędzając energię i miejsce.
Kanał I.17
canal to projekt open source działający w ramach Alibaba, tworzący wyłącznie w Javie. Opierając się na przyrostowym parsowaniu logów bazy danych, oferuje subskrypcję i konsumpcję danych inkrementalnych, a obecnie głównie wspiera MySQL (obsługuje także mariaDB).
Usługi oparte na logowaniu subskrypcji i wsparciu konsumpcyjnego:
- Lustrzane odbicie baz danych
- Kopia zapasowa w czasie rzeczywistym
- Indeksowanie wielopoziomowe (indeksy sprzedające i kupujące oddzielnie)
- searchbuild
- Odświeżanie pamięci podręcznej serwisowej
- Ważne wiadomości biznesowe, takie jak zmiany cen
I.18 Sparkstreaming
SparkStreaming to rozszerzenie rdzeniowego API Spark, które umożliwia wysokoprzepustowe, odporne na błędy przetwarzanie danych strumieniowych w czasie rzeczywistym. Obsługa akwizycji danych z różnych źródeł, w tym Kafk, Flume, Twitter, ZeroMQ, Kinesis i TCPsockets, a po pobieraniu danych ze źródeł danych można przetwarzać złożone algorytmy za pomocą zaawansowanych funkcji, takich jak mapowanie, redukcja, łączenie i window.
I.19 SonarQube
Sonar to otwartoźródłowa platforma do zarządzania jakością kodu, służąca do zarządzania jakością kodu źródłowego i wykrywania jakości kodu z siedmiu wymiarów
Dzięki wtyczkom może wspierać zarządzanie jakością i wykrywanie kodu w ponad 20 językach programowania, w tym w java, C#, C/C++, PL/SQL, Cobol, JavaScrip, Groovy i innych
I.20 DataX
DataX to narzędzie do synchronizacji offline dla heterogenicznych źródeł danych, dedykowane stabilnej i efektywnej synchronizacji danych między różnymi heterogenicznymi źródłami danych, w tym relacyjnymi bazami danych (MySQL, Oracle itp.), HDFS, Hive, ODPS, HBase, FTP i innymi.
I.21 Zarządzanie Zen/Jira
Funkcja zen 1) Zarządzanie produktami: produktami, wymaganiami, planami, wydaniami, mapami drogowymi i innymi funkcjami. 2) Zarządzanie projektami: projekty, zadania, zespoły, buildy, wykresy burndownów i inne funkcje. 3) Zarządzanie jakością: błędy, przypadki testowe, zadania testowe, wyniki testów i inne funkcje. 4) Zarządzanie dokumentami: biblioteka dokumentów produktowych, biblioteka dokumentów projektowych, niestandardowa biblioteka dokumentów oraz inne funkcje. 5) Zarządzanie transakcjami: zarządzanie zadaniami, funkcje zarządzania sprawami osobistymi, takie jak Moje zadania, Moje błędy, Moje potrzeby i Moje projekty. 6) Organizacja i zarządzanie: działy, użytkownicy, grupy, uprawnienia i inne funkcje. 7) Funkcja statystyczna: bogata tabela statystyczna. 8) Funkcja wyszukiwania: Znajdź odpowiednie dane poprzez wyszukiwanie.
Funkcje JIRA 1) Śledzenie i zarządzanie problemami (typy problemów to NewFeature, Bug, Task i Improvement); 2) Raport analityczny dotyczący obserwacji problemu; 3) Funkcja zarządzania kategoriami projektów; 4) funkcję lidera komponentów/modułów; 5) Funkcja adresów e-mail projektu; 6) Nieograniczone przepływy pracy.
I.22 XXJOB
XXL-JOB to lekki, rozproszony framework do planowania zadań, którego podstawowe cele projektowe to szybkie rozwijanie, proste uczenie, lekka i łatwa skala.
- Proste: Wspieraj działanie CRUD przy zadaniach na stronach internetowych, prosta operacja, minuta na rozpoczęcie;
- Dynamiczna: Obsługuje dynamiczną modyfikację statusu zadania, wstrzymanie/wznowienie zadań oraz zakończenie wykonywanych zadań, które wchodzą w życie natychmiast.
- Centrum Dyspozytorskie HA (scentralizowane): Harmonogram jest zaprojektowany centralnie, a "Centrum Dyspozytorskie" opiera się na klastrze Quartz i wspiera wdrażanie klastra, co zapewnia HA centrum dyspozytorskiego.
- Wykonawca HA (rozproszony): Zadania są wykonywane w sposób rozproszony, a "wykonawca" zadania wspiera wdrożenie klastra, aby zapewnić wykonanie zadań w trybie HA.
- Rejestr: Wykonawca automatycznie będzie rejestrował zadania okresowo, a Centrum Dyspozytorskie automatycznie wykrywa zarejestrowane zadania i uruchamia ich wykonanie. Jednocześnie obsługuje także ręczne wprowadzanie adresów siłowników;
- Elastyczne skalowanie: Gdy nowa maszyna wykonawcza zostanie uruchomiona lub offline, zadanie zostanie ponownie przypisane podczas kolejnego harmonogramowania.
- Strategie routowania: Zapewnia bogate strategie routingu podczas wdrażania klastra wykonawczego, w tym: pierwszy, ostatni, polling, losowy, spójny HASH, najmniej używany, ostatnio nieużywany, failover, transfer zajęty itd.
- Failover: Jeśli wybrane zostanie Failover dla polityki routingu zadań, a maszyna w klastrze egzekutorów zawiedzie, system automatycznie przełącza się na normalny wykonawcę, aby wysłać żądanie harmonogramowania.
- strategię radzenia sobie z awariami; Polityki obsługi niepowodzeń planowania obejmują: alarm awarii (domyślny), próbę powtórki z błędem;
- Nieudana próba: Gdy centrum dyspozytorskie zaplanuje niepowodzenie i polityka Nieudana próba jest włączona, system automatycznie próbuje ponownie. Jeśli wykonawca nie wykona i odwołanie nie powróci do stanu, również zostanie ono automatycznie spróbowane.
- Strategia blokowania przetwarzania: strategia przetwarzania, gdy harmonogram jest zbyt gęsty, by wykonawca mógł go przetworzyć, w tym pojedyncza maszyna szeregowa (domyślnie), odrzucanie kolejnych harmonogramów oraz nadpisywanie wcześniejszego harmonogramowania;
- Zadanie rozgłoszenia odłamków: Gdy klaster wykonawczy jest wdrażany, jeśli polityka routingu zadań zostanie wybrana jako "Broadcast Shard", harmonogram zadań wywoła rozgłoszenie, aby wywołać wykonanie zadania przez wszystkie wykonawcy w klastrze, a zadanie shardingu może być rozwijane zgodnie z parametrami shardingu.
- Dynamiczne shardowanie: Zadanie broadcast w shardach jest dzielone na shardy w zależności od wymiaru wykonawcy i wspiera dynamiczną ekspansję klastra wykonawczego w celu dynamicznego zwiększenia liczby shardów oraz współpracy przy przetwarzaniu biznesowym. Wykonywanie operacji biznesowych o dużych objętościach danych może znacząco poprawić pojemność i szybkość przetwarzania zadań.
- Wyzwalanie zdarzeń: Oprócz metody cron oraz trybu zależnego od zadania do wyzwalania zadań, obsługiwane są metody wyzwalania zdarzeń. Centrum dyspozytorskie oferuje usługi API, które wywołują pojedyncze wykonanie zadań, które mogą być elastyczne w zależności od zdarzeń biznesowych.
- Monitorowanie postępów zadań: Wsparcie monitorowania postępów w czasie rzeczywistym;
- Rolling log w czasie rzeczywistym: umożliwia przeglądanie wyników harmonogramu online oraz umożliwia przegląd całego dziennika wykonania wykonawcy w czasie rzeczywistym w trybie ruchomym.
- GLUE: Zapewnia WebIDE, które wspiera online tworzenie kodu logicznego zadań, dynamiczne wydawanie, kompilację w czasie rzeczywistym oraz efektywność, eliminując proces wdrażania i uruchamiania. Wspieraj 30 wersji historycznej wersji od tyłu.
- Zadania skryptowe: Wspierają tworzenie i uruchamianie zadań skryptowych w trybie GLUE, w tym Shell, Python, NodeJS i innych skryptów.
- Zależności zadań: Wspiera konfigurację zależności podzadań, gdy zadanie nadrzędne zostanie wykonane i wykonanie zakończy się sukcesem, aktywnie uruchamiane zostanie wykonanie podzadania, a wiele podzadań będzie rozdzielonych przecinkami.
- Spójność: Centrum Planowania zapewnia spójność rozproszonego harmonogramowania klastrowego poprzez blokady bazy danych, a tylko jedno planowanie zadań wywoła jedno wykonanie.
- Niestandardowe parametry zadania: Obsługa konfiguracji online parametrów harmonogramowania zadań, które wchodzą w życie natychmiast;
- Pula wątków planowania: System harmonogramowania uruchamia operację planowania z wieloma wątkami, aby zapewnić dokładne wykonanie harmonogramu i brak blokady.
- Szyfrowanie danych: Komunikacja między centrum dyspozytorskim a wykonawcą jest szyfrowana, aby poprawić bezpieczeństwo informacji dyspozytorskiej.
- Alarm e-mailowy: Wspieraj alarm e-mail, gdy zadanie się nie powiedzie, oraz wsparcie konfigurowania wielu adresów e-mail do masowego wysyłania alarmowych e-maili.
- Centralne repozytorium Push maven: Najnowsza stabilna wersja zostanie przeniesiona do centralnego repozytorium maven, aby ułatwić dostęp i korzystanie z nich przez użytkowników.
- Raport uruchomienia: Obsługuje przegląd bieżących danych, takich jak liczba zadań, liczba harmonogramów, liczba wykonawców itp. oraz raporty harmonogramowe, takie jak wykres rozkładu dat harmonogramu, mapa sukcesu rozkładu harmonogramów itp.;
- Pełna asynchronia: Dolna warstwa systemu realizuje pełną asynchroniczność, a redukcja szczytów ruchu jest wykonywana dla gęstego harmonogramowania, co teoretycznie wspiera działanie zadań o dowolnym czasie trwania.
I.23 Stos soli
Nowy sposób zarządzania infrastrukturą, łatwy do wdrożenia, działający w kilka minut, dobra skalowalność, łatwy w zarządzaniu dziesiątkami tysięcy serwerów, wystarczająco szybki, komunikacja między serwerami w kilka sekund.
Podstawowa warstwa soli przyjmuje dynamiczną magistralę połączeniową, która może być wykorzystywana do orkiestracji, zdalnego wykonywania, zarządzania konfiguracją itp.
I.24 Istio
Jako nowoczesny projekt zarządzania warstwami agregacji usług mikroserwisowych, Istio jest pierwszym wspólnym projektem open source Google, IBM i Lyft (zagranicznej firmy ridesharingowej i rywalem Ubera), oferującym zunifikowane rozwiązanie, bezpieczeństwo, zarządzanie i monitorowanie mikroserwisów.
Pierwsza beta dotyczy obecnie środowisk Kubernetes, a społeczność twierdzi, że w najbliższych miesiącach zostanie dodane wsparcie dla maszyn wirtualnych i innych środowisk, takich jak CloudFoundry. Istio dodaje zarządzanie ruchem do mikroserwisów i tworzy podstawę dla funkcji o wartości dodanej, takich jak bezpieczeństwo, monitorowanie, routing, zarządzanie połączeniami oraz polityki.
- automatyczne równoważenie obciążenia dla ruchu sieciowego HTTP, gRPC i TCP;
- Zapewnia bogate reguły routingu, aby zapewnić precyzyjną kontrolę zachowania ruchu sieciowego.
- szyfrowanie ruchu, uwierzytelnianie między usługami oraz silne roszczenia tożsamości;
- egzekwowanie polityki na całej flocie;
- Głęboka telemetria i raportowanie.
Architektura
Bezpieczeństwo
Podstawy
Salt Stack + OpenStack + KVM + Kubernetes + Istio
|