Wdrażanie umów dotyczących danych w GoCardless
W GoCardless używamy kontraktów na dane , aby poprawić jakość i niezawodność danych . Jesteśmy w tej podróży od prawie roku i chociaż mamy trochę nauki , robimy ogromne postępy.
Dzisiaj chcę opowiedzieć trochę o tym, jak wdrożyliśmy umowy dotyczące danych w GoCardless.
Krótkie wprowadzenie do kontraktów danych
Jeśli nie jesteś zaznajomiony z kontraktami danych, polecam najpierw przeczytać mój post z grudnia ubiegłego roku , w którym przedstawiłem tę koncepcję i co chcemy dzięki niej osiągnąć w GoCardless, ale krótko podsumowując, jest to sposób, w jaki generujemy, konsumujemy i zarządzamy nasze dane. Przechodzimy do modelu, w którym znacznie bardziej rozważnie podchodzimy do danych, które tworzymy do konsumpcji — chcemy, aby były one dobrej jakości, ze schematami, wersjami i dokumentacją.
Data Contract definiuje strukturę danych, ich właściwości i zapewnia interfejsy do interakcji z danymi — w naszym przypadku jest to zazwyczaj GCP Pub/Sub i/lub BigQuery . W rzeczywistości jest to interfejs API dla naszych danych .

Opierając się na naszej platformie infrastrukturalnej
W GoCardless mamy doskonałą samoobsługową platformę infrastrukturalną, którą nazywamy Utopią. W ten sposób zarządzamy naszymi zasobami GCP i wdrażamy usługi w naszym klastrze Kubernetes, mając na celu promowanie autonomii i własności. Każda konfiguracja w Utopii powinna być samoobsługowa, udokumentowana i weryfikowalna.

To doskonale pasuje do naszych celów dotyczących kontraktów danych! Zbudowanie naszej implementacji na bazie Utopii było więc oczywiste. Dało nam to również możliwość wdrożenia i zarządzania wszelkimi zasobami usług, których potrzebowaliśmy, aby pomóc naszym użytkownikom w zarządzaniu ich danymi. To skłoniło nas do myślenia… Mając umowę dotyczącą danych, która wystarczająco dokumentuje dane i ich właściwości, czy możemy skonfigurować i wdrożyć wszystko, czego potrzebujemy do zarządzania tymi danymi zgodnie z naszymi wymaganiami dotyczącymi użyteczności, bezpieczeństwa i prywatności? Po szybkim wzroście odpowiedź brzmiała: tak .
Aby uzyskać więcej informacji na temat Utopii, zobacz nasz samouczek „Pierwsze kroki” , który udostępniliśmy w zeszłym roku .
Definiowanie kontraktu danych
Tak wygląda umowa dotycząca danych w GoCardless:
{
contract: new() {
metadata+: {
name: 'bank_account_information',
description: 'Information on bank accounts used for ...',
},
schema+: {
versions: [
new_version('1', anonymisation_strategy.overwrite,
[
field(
'bank_account_id',
'Unique identifier for a specific bank account, following the standard GC ID format.',
data_types.string,
field_category.gocardless_internal,
is_personal_data.yes,
personal_data_identifier.indirect,
field_anonymisation_strategy.none,
required=true,
primary_key=true,
),
field(
'account_balance',
'Payer\'s account balance. May be positive or negative.',
data_types.double,
field_category.payer_confidential,
is_personal_data.yes,
personal_data_identifier.direct,
field_anonymisation_strategy.nilable
),
field(
'account_holder_name',
'Payer\'s account holder name, as entered by the payer.',
data_types.string,
field_category.payer_confidential,
is_personal_data.yes,
personal_data_identifier.direct,
field_anonymisation_strategy.hex
),
],
[ ddrSubject('bank_accounts', 'bank_account_id') ],
) + withPubSub() + withBigQuery(),
],
},
},
}
Wdrażanie kontraktu danych
Po scaleniu definicji kontraktu danych z repozytorium Git przez samych właścicieli danych tworzymy następujące zasoby, usługi i wdrożenia.

Wszystko to odbywa się w imieniu właścicieli danych. Zasoby GCP i usługi Kubernetes są oparte na kontrakcie dotyczącym danych, więc coś, co wpływa na jeden potok, nie wpłynie na inny.
Zasoby GCP znajdują się w ramach własnych projektów usług GCP, wyraźnie dając właścicielom danych autonomię zarządzania nimi i odpowiedzialność za to. Alerty z usług Kubernetes są kierowane do właścicieli danych, ponieważ zwykle są oni najlepiej przygotowani do ich obsługi. Jeśli nie, zespół ds. infrastruktury danych zawsze służy pomocą drugiej linii.
Nasze wdrażanie kontraktów dotyczących danych jest zaprojektowane tak, aby było elastyczne . Nie obchodzi nas struktura danych, o ile zawierają one wszystkie informacje potrzebne do tworzenia i wdrażania usług i zasobów używanych do zarządzania tymi danymi. Pozwalamy użytkownikom wybrać, jakich usług potrzebują, i stwierdziliśmy, że prawie jedna trzecia użytkowników zdecydowała się nie wdrażać Pub/Sub, a wielu nie chce tworzyć tabeli BigQuery, co sprawia, że dobrze nadaje się do użytku między usługami przypadki użycia komunikacji. To wszystko jest częścią tego, jak promujemy autonomię naszych generatorów danych.
Używamy również umowy i zawartych w niej metadanych do aktualizacji usług scentralizowanych, na przykład naszego katalogu danych. Co więcej, ponieważ korzystamy z narzędzi takich jak BigQuery i Looker, chociaż dane są segregowane w celu promowania własności i autonomii, nie są izolowane — możesz wyszukiwać dane z różnych projektów GCP bez żadnych kosztów ani ograniczeń, umożliwiając konsumentom dołączenie zestawów danych i uzyskuj szczegółowe informacje bez względu na to, kto jest właścicielem danych źródłowych i kto nimi zarządza.

Nie wszystko sprowadza się do wdrożenia
Ta realizacja jest oczywiście dla nas bardzo specyficzna. Tak się składa, że mamy doskonałą platformę infrastrukturalną, na której możemy budować, która idealnie pasowała do tego, co chcemy osiągnąć dzięki kontraktom danych. Pozwoliło nam to zbudować coś, co nazywamy naszą opartą na umowach infrastrukturą danych , w ramach której z umowy na dane możemy wdrożyć wszystkie narzędzia i usługi wymagane do generowania, zarządzania i wykorzystywania tych danych.
Ale wdrożenie nie jest najważniejszą częścią. Jak napisał niedawno Tristan Handy , liczy się „zidentyfikowanie problemu i uzgodnienie rodzajów gwarancji, które musimy zapewnić naszym systemom”.
Ostatecznie postrzegamy umowy dotyczące danych jako nasze narzędzie poprawy jakości danych w GoCardless. Zmieniamy kulturę danych w organizacji, wspieraną przez naszą najlepszą w swojej klasie infrastrukturę danych i gwarantowaną umową o dane.
Jeśli uważasz, że GoCardless przemawia do Ciebie i chcesz dowiedzieć się więcej o życiu w GoCardless, możesz znaleźć nasze posty na Twitterze , Instagramie iLinkedin .
Czy jesteś zainteresowany dołączeniem do GoCardless? Zobacz naszą tablicę ofert pracy tutaj .