39
Zautomatyzuj swój proces wdrażania projektów SSIS Bartosz Ratajczyk SQL Server Consultant, 7N [email protected]

Zautomatyzuj swój proces wdrażania projektów SSIS

Embed Size (px)

Citation preview

Page 1: Zautomatyzuj swój proces wdrażania projektów SSIS

Zautomatyzuj swój proces wdrażania projektów SSIS

Bartosz RatajczykSQL Server Consultant, 7N

[email protected]

Page 2: Zautomatyzuj swój proces wdrażania projektów SSIS
Page 3: Zautomatyzuj swój proces wdrażania projektów SSIS

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ą

Page 4: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

O czym nie będzie?

• O wdrażaniu pojedynczych pakietów

• O dobrych praktykach

• O DevOps jako takim

Page 5: Zautomatyzuj swój proces wdrażania projektów SSIS

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]

Page 6: Zautomatyzuj swój proces wdrażania projektów SSIS

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)

Page 7: Zautomatyzuj swój proces wdrażania projektów SSIS

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

Page 8: Zautomatyzuj swój proces wdrażania projektów SSIS

USPRAWNIAMY PRACĘ

No to do roboty

SQLDay 2017

Page 9: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Kompilacja projektu – pierwsze kroki

Page 10: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Problemy z kompilacją

SQLDay 2017

• EncryptAllWithPassword, EncryptSensitiveWithPassword

– wymaga ręcznego podania hasła

• Potrafi się zawiesić

Page 11: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Przygotowanie ręczne

Page 12: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

MSBuild

Page 13: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

SSISMSBuild

• Dedykowane zadania kompilacji i wdrażania

–DeploymentFileCompilerTask

–DeployProjectToCatalogTask

• Kod źródłowy do samodzielnej kompilacji

http://sqlsrvintegrationsrv.codeplex.com

Page 14: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Kompilacja: Build.proj

Page 15: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Wdrożenie – IsDeploymentWizard

• IsDeploymentWizard.exe

• /Silent

Page 16: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

IsDeploymentWizard /Silent

• /Silent == fire and forget

• Zdarzają się przypadki, gdzie /Silent nie działa poprawnie *

Page 17: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Znowu MSBuild

Page 18: Zautomatyzuj swój proces wdrażania projektów SSIS

DEMO

Kompilacja i wdrożenie

SQLDay 2017

Page 19: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Inne sposoby kompilacji/wdrożenia projektu

• Skrypt Powershell z użyciem SMO

• SSISBuild – Roman Tumaykin

• PowerShell Continuous Integration (PSCI) – ObjectivityLtd

• ISDeploymentCmd

Page 20: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Potencjalne problemy kompilacji i wdrożenia

Page 21: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Kompilacja: Build.proj (podejście 2)

Page 22: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Obsługa środowisk (Environments)

• Visual Studio Configuration Manager

• Powershell + SMO

–Array

–CSV

–Baza danych

– JSON

Page 23: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Configuration Manager

Page 24: Zautomatyzuj swój proces wdrażania projektów SSIS

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

Page 25: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Page 26: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Utworzenie środowiska

Page 27: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Referencja do środowiska

Page 28: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Konfiguracja projektu

Page 29: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Problemy przy automatyzacji środowiska

• Zmienne typu Sensitive

Page 30: Zautomatyzuj swój proces wdrażania projektów SSIS

DEMO

Tworzenie środowiska i konfiguracja projektu

SQLDay 2017

Page 31: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Sprawdzanie poprawności

• Uruchomienie walidacji to proces asynchroniczny

• Zlecamy zadanie do wykonania i możemy śledzić postęp

Page 32: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

I jeszcze sprawdzanie poprawności

::UseAllReferences::SpecifyReference, $reference

Page 33: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Testowe uruchomienie

Page 34: Zautomatyzuj swój proces wdrażania projektów SSIS

DEMO

Walidacja i test wykonania

SQLDay 2017

Page 35: Zautomatyzuj swój proces wdrażania projektów SSIS

SQLDay 2017

Co by tu jeszcze można?

• Testy NBi

• Weryfikacja zgodności z konwencją Jamie Thomsona

Page 36: Zautomatyzuj swój proces wdrażania projektów SSIS

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ą, …

Page 37: Zautomatyzuj swój proces wdrażania projektów SSIS

DEMO

Proces automatyczny w TFS

SQLDay 2017

Page 38: Zautomatyzuj swój proces wdrażania projektów SSIS

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

Page 39: Zautomatyzuj swój proces wdrażania projektów SSIS