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

Post on 22-Jan-2018

60 views 2 download

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

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

Bartosz RatajczykSQL Server Consultant, 7N

b.ratajczyk@gmail.com

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 b.ratajczyk@gmail.com

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