atlasgo.io - nowoczesne narzędzie do zarządzania schematami baz danych

 

Czy jest atlasgo.io

Atlasgo.io to nowoczesne narzędzie do zarządzania schematami baz danych i ich migracjami, zaprojektowane z myślą o integracji z DevOps i CI/CD. Umożliwia zarządzanie zmianami w bazach danych w sposób deklaratywny, co oznacza, że użytkownicy definiują pożądany stan bazy, a Atlas automatycznie generuje odpowiednie skrypty SQL, które wprowadzają te zmiany.

Proces Migracji

  1. Definiowanie Pożądanego Stanu

    • W Atlas użytkownicy definiują pożądany stan bazy danych, używając języka HCL (HashiCorp Configuration Language) lub plików SQL. Dzięki temu mogą określić, jak baza danych powinna wyglądać po wdrożeniu zmian.
    • Przykładowy plik schema.sql może wyglądać następująco:
      sql:

      CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP );
  2. Planowanie Migracji

    • Narzędzie Atlas CLI pozwala na zaplanowanie migracji, generując pliki z różnicami, które określają, jakie zmiany muszą zostać wprowadzone, aby osiągnąć pożądany stan bazy danych.
    • Przykładowa komenda:
      sh:
      atlas migrate diff --env local add_email_index
    • W wyniku powyższej komendy, Atlas tworzy plik SQL w katalogu migracji, zawierający instrukcje do wprowadzenia zmian w bazie danych.
  3. Automatyzacja i CI/CD

    • Po zatwierdzeniu zmian w repozytorium, uruchamiany jest proces CI/CD, który automatycznie uruchamia migracje. Atlas oferuje integracje z popularnymi narzędziami CI/CD, takimi jak GitHub Actions, GitLab CI oraz ArgoCD (dla Kubernetes).
    • Przykładowa konfiguracja .gitlab-ci.yml:
      yaml:
      image: ubuntu:latest stages: - lint - push before_script: - apt-get update -q && apt-get install -y curl - 'which atlas || (curl -sSf https://atlasgo.sh | sh)' - atlas login --token $ATLAS_CLOUD_TOKEN lint migrations: stage: lint script: - atlas migrate lint --base atlas://gitlab -w --dev-url "sqlite://demo?mode=memory"
  4. Wdrożenie Migracji

    • Gdy wszystkie testy przejdą pomyślnie, zmiany są wdrażane na środowiska docelowe (np. produkcyjne). Atlas Cloud może służyć jako centralny repozytorium dla migracji baz danych, podobnie jak DockerHub dla obrazów kontenerów.

Najlepsze Praktyki

  • Izolacja migracji: Uruchamiaj migracje jako osobny krok w procesie wdrożenia, przed aktualizacją aplikacji.
  • Obsługa błędów: W razie niepowodzenia migracji, cały proces wdrożenia powinien zostać przerwany, aby zapobiec niespójnościom.
  • Kontrola dostępu: Upewnij się, że tylko uprawnione osoby mogą uruchamiać migracje, a dostęp do narzędzi i kluczowych zasobów jest odpowiednio chroniony.

Ilustracje i Diagramy

  1. Schemat procesu CI/CD z Atlas

    • Ilustracja procesu obejmującego tworzenie gałęzi, planowanie zmian, testowanie, wdrażanie oraz monitorowanie


  1. Diagram architektury Atlas

    • Przedstawienie interakcji między Atlas CLI, Atlas Cloud, a bazą danych docelową, z uwzględnieniem narzędzi takich jak Kubernetes i ArgoCD.

Te praktyki i narzędzia pozwalają na efektywne i bezpieczne zarządzanie zmianami w bazach danych, minimalizując ryzyko błędów i niespójności. Dla bardziej szczegółowych informacji i dokumentacji, możesz odwiedzić stronę Atlas (Atlas)​​​.


Dokumentacja




Aby stworzyć dokumentację na podstawie danych z bazy w Atlas Go, musimy zrozumieć sposób, w jaki dane są przechowywane, zarządzane i migrowane. Oto podstawowe elementy, które można uwzględnić w takiej dokumentacji:

1. Struktura Bazy Danych

1.1. Tabela Users

  • id: INT, Auto Increment, Primary Key
  • name: VARCHAR(255), Not Null
  • email: VARCHAR(255), Not Null
  • created_at: TIMESTAMP, Not Null, Default CURRENT_TIMESTAMP

2. Zarządzanie Schematami z Atlas

Atlas Go oferuje kilka sposobów na zarządzanie schematami baz danych:

  • Deklaratywne zarządzanie schematami: Użytkownicy definiują pożądany stan bazy danych w plikach .sql lub za pomocą języka HCL (HashiCorp Configuration Language).
  • Generowanie migracji: Atlas CLI generuje pliki migracji na podstawie różnic między aktualnym a pożądanym stanem.

3. Proces Migracji

3.1. Przygotowanie Migracji

  1. Definiowanie zmian: Użytkownik definiuje zmiany w plikach schema.sql lub używa HCL.
  2. Planowanie: Użycie komendy atlas migrate diff, aby wygenerować pliki migracji.

3.2. Wdrażanie Migracji

  1. CI/CD: Konfiguracja CI/CD uruchamia procesy walidacji i wdrożenia migracji.
  2. Atlas Cloud: Przechowywanie i zarządzanie migracjami w Atlas Cloud.

4. Bezpieczeństwo i Praktyki

  • Kontrola dostępu: Ustalanie ról i uprawnień do uruchamiania migracji i modyfikacji schematów.
  • Bezpieczne przechowywanie kluczy API: Przechowywanie bot tokenów i innych kluczy w bezpiecznych lokalizacjach, takich jak tajne zasoby CI/CD.

5. Przykładowe Skrypty i Komendy

5.1. Przykładowy plik schema.sql

sql:

CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP );

5.2. Przykładowa komenda generująca migrację

sh:

atlas migrate diff --env local add_email_index

6. Dokumentacja Użytkownika

6.1. Instrukcje instalacji

  • Instalacja Atlas CLI za pomocą skryptu shellowego:
    sh:
    curl -sSf https://atlasgo.sh | sh

6.2. Uruchamianie migracji

  • Logowanie do Atlas Cloud:

    sh:

    atlas login --token $ATLAS_CLOUD_TOKEN
  • Przesyłanie migracji do Atlas Cloud:

    sh:
    atlas migrate push --env local atlasdemo

7. Przykłady integracji CI/CD

7.1. GitHub Actions

  • Użycie GitHub Actions do automatyzacji procesu migracji.

7.2. GitLab CI

  • Konfiguracja .gitlab-ci.yml do uruchamiania walidacji i wdrożenia migracji.
Jakbyś chciał więcej coś się dowiedzieć napisz w komentarzu. :)


Komentarze

Popularne posty z tego bloga

O mnie

Optymalizacja zapytań Oracle

Prefect.io: Narzędzie do Automatyzacji Przepływów Pracy