zautomatyzuj swój proces wdrażania projektów ssis
TRANSCRIPT
Zautomatyzuj swój proces wdrażania projektów SSIS
Bartosz RatajczykSQL Server Consultant, 7N
SQLDay 2017
O czym będzie?
• O ułatwianiu sobie życia, czyli jak pozbyć się nudnej pracy
• Wdrażanie projektów jednym skryptem
– lub jednym/dwoma krokami w TFS
• O tym jak przygotować sobie wszystkie konfiguracje
• O różnych opcjach i przeszkodach które nas czekają
SQLDay 2017
O czym nie będzie?
• O wdrażaniu pojedynczych pakietów
• O dobrych praktykach
• O DevOps jako takim
SQLDay 2017
Bartosz Ratajczyk
• SQL Server Consultant – 7N
• Trener – CBSG, Stacja.IT
• Prelegent na konferencjach, spotkaniach grup PLSSUG
• MCSE, MCT
http://bartekr.net [email protected]
SQLDay 2017
Z jakich kroków może się składać wdrożenie?
1. Kompilacja projektu
2. Utworzenie folderu dla projektu
3. Wdrożenie na serwer
4. Utworzenie środowiska
5. Ustawienie referencji środowisko – projekt
6. Utworzenie zmiennych środowiskowych
7. Konfiguracja projektu
8. Uruchomienie walidacji
9. Weryfikacja walidacji
10. Uruchomienie testowe
• Testowanie (NBi, LegiTest)
• Sprawdzanie zgodności ze standardami (Jamie Thomson)
SQLDay 2017
Podnosimy poziom trudności
• Kontrola wersji
–Gałąź DEV, TEST, PROD
• Kilka środowisk
– Serwer DEV, TEST, PREPROD, PROD
• Różne konfiguracje
– Ścieżki do katalogów na różnych serwerach
–Połączenia do różnych baz danych
• Wdrażamy na raz po kilka projektów
USPRAWNIAMY PRACĘ
No to do roboty
SQLDay 2017
SQLDay 2017
Kompilacja projektu – pierwsze kroki
SQLDay 2017
Problemy z kompilacją
SQLDay 2017
• EncryptAllWithPassword, EncryptSensitiveWithPassword
– wymaga ręcznego podania hasła
• Potrafi się zawiesić
SQLDay 2017
Przygotowanie ręczne
SQLDay 2017
MSBuild
SQLDay 2017
SSISMSBuild
• Dedykowane zadania kompilacji i wdrażania
–DeploymentFileCompilerTask
–DeployProjectToCatalogTask
• Kod źródłowy do samodzielnej kompilacji
http://sqlsrvintegrationsrv.codeplex.com
SQLDay 2017
Kompilacja: Build.proj
SQLDay 2017
Wdrożenie – IsDeploymentWizard
• IsDeploymentWizard.exe
• /Silent
SQLDay 2017
IsDeploymentWizard /Silent
• /Silent == fire and forget
• Zdarzają się przypadki, gdzie /Silent nie działa poprawnie *
SQLDay 2017
Znowu MSBuild
DEMO
Kompilacja i wdrożenie
SQLDay 2017
SQLDay 2017
Inne sposoby kompilacji/wdrożenia projektu
• Skrypt Powershell z użyciem SMO
• SSISBuild – Roman Tumaykin
• PowerShell Continuous Integration (PSCI) – ObjectivityLtd
• ISDeploymentCmd
SQLDay 2017
Potencjalne problemy kompilacji i wdrożenia
SQLDay 2017
Kompilacja: Build.proj (podejście 2)
SQLDay 2017
Obsługa środowisk (Environments)
• Visual Studio Configuration Manager
• Powershell + SMO
–Array
–CSV
–Baza danych
– JSON
SQLDay 2017
Configuration Manager
SQLDay 2017
Configuration Manager - wykorzystanie
• Różne wartości parametrów dla różnych konfiguracji• Przechowywanie danych w plikach .dtproj• Można wykorzystać jako konfiguracje projektu w
środowiskach• Brak jednolitego podglądu
SQLDay 2017
SQLDay 2017
Utworzenie środowiska
SQLDay 2017
Referencja do środowiska
SQLDay 2017
Konfiguracja projektu
SQLDay 2017
Problemy przy automatyzacji środowiska
• Zmienne typu Sensitive
DEMO
Tworzenie środowiska i konfiguracja projektu
SQLDay 2017
SQLDay 2017
Sprawdzanie poprawności
• Uruchomienie walidacji to proces asynchroniczny
• Zlecamy zadanie do wykonania i możemy śledzić postęp
SQLDay 2017
I jeszcze sprawdzanie poprawności
::UseAllReferences::SpecifyReference, $reference
SQLDay 2017
Testowe uruchomienie
DEMO
Walidacja i test wykonania
SQLDay 2017
SQLDay 2017
Co by tu jeszcze można?
• Testy NBi
• Weryfikacja zgodności z konwencją Jamie Thomsona
SQLDay 2017
A jak z tym TFS?
• Własny proces budowania/wdrażania w TFS
• Można rozbudować o kroki PowerShell do zarządzania środowiskami, walidacją, …
DEMO
Proces automatyczny w TFS
SQLDay 2017
SQLDay 2017
Takie to proste!
• Praca nadal jest nudna, ale to komputer ją wykonuje
• Do automatyzacji wykorzystaj
–MSBuild
– Powershell
– SMO
• Zaangażuj dodatkowe oprogramowanie do CI/CD