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
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 );
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.
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"
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
Schemat procesu CI/CD z Atlas
- Ilustracja procesu obejmującego tworzenie gałęzi, planowanie zmian, testowanie, wdrażanie oraz monitorowanie
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, DefaultCURRENT_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
- Definiowanie zmian: Użytkownik definiuje zmiany w plikach
schema.sql
lub używa HCL. - Planowanie: Użycie komendy
atlas migrate diff
, aby wygenerować pliki migracji.
3.2. Wdrażanie Migracji
- CI/CD: Konfiguracja CI/CD uruchamia procesy walidacji i wdrożenia migracji.
- 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.
Komentarze
Prześlij komentarz