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

Bartosz Ratajczyk
Bartosz RatajczykDatabase developer
Zautomatyzuj swój proces wdrażania projektów SSIS
Bartosz Ratajczyk
SQL Server Consultant, 7N
b.ratajczyk@gmail.com
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ą
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
Zautomatyzuj swój proces wdrażania projektów SSIS
1 of 39

Recommended

Zrób dobrze swojej komórce - programowanie urządzeń mobilnych z wykorzystanie... by
Zrób dobrze swojej komórce - programowanie urządzeń mobilnych z wykorzystanie...Zrób dobrze swojej komórce - programowanie urządzeń mobilnych z wykorzystanie...
Zrób dobrze swojej komórce - programowanie urządzeń mobilnych z wykorzystanie...Sages
284 views40 slides
SQL Server + docker - pierwsze kroki by
SQL Server + docker - pierwsze krokiSQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze krokiBartosz Ratajczyk
364 views21 slides
REvolution, czyli o bardziej obiektowym podejściu w Railsach by
REvolution, czyli o bardziej obiektowym podejściu w RailsachREvolution, czyli o bardziej obiektowym podejściu w Railsach
REvolution, czyli o bardziej obiektowym podejściu w RailsachThe Software House
1.5K views63 slides
Prezentacja "Praca z Gitem" - Dawid Cieszyński OLMUG 22.01.14 by
Prezentacja "Praca z Gitem" - Dawid Cieszyński OLMUG 22.01.14Prezentacja "Praca z Gitem" - Dawid Cieszyński OLMUG 22.01.14
Prezentacja "Praca z Gitem" - Dawid Cieszyński OLMUG 22.01.14Sagittario
1.1K views32 slides
Microsoft Business Intelligence w 2017 roku by
Microsoft Business Intelligence w 2017 rokuMicrosoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 rokuHighWheelSoftware
101 views53 slides

More Related Content

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

Maintenance_Plans_Zupełnie_Znienacka by
Maintenance_Plans_Zupełnie_ZnienackaMaintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_ZnienackaTobias Koprowski
779 views22 slides
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and Analytics by
20060416   Azure Boot Camp 2016- Azure Data Lake Storage and Analytics20060416   Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and AnalyticsŁukasz Grala
664 views38 slides
Microsoft SQL Server 2005. Podręcznik programisty by
Microsoft SQL Server 2005. Podręcznik programistyMicrosoft SQL Server 2005. Podręcznik programisty
Microsoft SQL Server 2005. Podręcznik programistyWydawnictwo Helion
527 views25 slides
Citrix NetScaler Gateway i Azure MFA by
Citrix NetScaler Gateway i Azure MFACitrix NetScaler Gateway i Azure MFA
Citrix NetScaler Gateway i Azure MFAPawel Serwan
3.8K views17 slides
Visual Basic .NET. Encyklopedia by
Visual Basic .NET. EncyklopediaVisual Basic .NET. Encyklopedia
Visual Basic .NET. EncyklopediaWydawnictwo Helion
5.8K views57 slides
Visual Basic .NET. Księga eksperta by
Visual Basic .NET. Księga ekspertaVisual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaWydawnictwo Helion
673 views58 slides

Similar to Zautomatyzuj swój proces wdrażania projektów SSIS(20)

Maintenance_Plans_Zupełnie_Znienacka by Tobias Koprowski
Maintenance_Plans_Zupełnie_ZnienackaMaintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_Znienacka
Tobias Koprowski779 views
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and Analytics by Łukasz Grala
20060416   Azure Boot Camp 2016- Azure Data Lake Storage and Analytics20060416   Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
Łukasz Grala664 views
Microsoft SQL Server 2005. Podręcznik programisty by Wydawnictwo Helion
Microsoft SQL Server 2005. Podręcznik programistyMicrosoft SQL Server 2005. Podręcznik programisty
Microsoft SQL Server 2005. Podręcznik programisty
Wydawnictwo Helion527 views
Citrix NetScaler Gateway i Azure MFA by Pawel Serwan
Citrix NetScaler Gateway i Azure MFACitrix NetScaler Gateway i Azure MFA
Citrix NetScaler Gateway i Azure MFA
Pawel Serwan3.8K views
Using Red Gate SQL Doc for database documentation by Mariusz Koprowski
Using Red Gate SQL Doc for database documentationUsing Red Gate SQL Doc for database documentation
Using Red Gate SQL Doc for database documentation
Mariusz Koprowski418 views
Websites vs Cloud Services - OLMUG by Bart Zaremba
Websites vs Cloud Services - OLMUGWebsites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUG
Bart Zaremba337 views
Patterns for organic architecture by Jaroslaw Palka
Patterns for organic architecturePatterns for organic architecture
Patterns for organic architecture
Jaroslaw Palka3.2K views
Codeception - jak zacząć pisać automatyczne testy do Drupala [PL] by Droptica
Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]
Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]
Droptica130 views
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf by SeeQuality.net
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdfSQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
SeeQuality.net580 views
HYC - Angular stań się kanciastym by Dariusz Jagieło
HYC - Angular stań się kanciastymHYC - Angular stań się kanciastym
HYC - Angular stań się kanciastym
Dariusz Jagieło2.4K views
Produkcja aplikacji internetowych by Tomasz Borowski
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
Tomasz Borowski997 views
ITAD BB 2014 - ASP.NET 5 - What's new? by Michał Dudak
ITAD BB 2014 - ASP.NET 5 - What's new?ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?
Michał Dudak658 views
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016) by Dariusz Kacban
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Dariusz Kacban158 views
SQL Server 2008 Tips & tricks administracji by SQLExpert.pl
SQL Server 2008 Tips & tricks administracjiSQL Server 2008 Tips & tricks administracji
SQL Server 2008 Tips & tricks administracji
SQLExpert.pl981 views

More from Bartosz Ratajczyk

OLE DB - kiedy FastLoad nie jest takie fast by
OLE DB - kiedy FastLoad nie jest takie fastOLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fastBartosz Ratajczyk
125 views10 slides
Jak działa rekurencyjne CTE? by
Jak działa rekurencyjne CTE?Jak działa rekurencyjne CTE?
Jak działa rekurencyjne CTE?Bartosz Ratajczyk
229 views29 slides
SqlSaturday Denmark 2017 - Automate your SSIS deployment process by
SqlSaturday Denmark 2017 - Automate your SSIS deployment processSqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment processBartosz Ratajczyk
470 views39 slides
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534 by
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534Bartosz Ratajczyk
172 views24 slides
Szkolenia i certyfikacjesqlserver2016_plssug99 by
Szkolenia i certyfikacjesqlserver2016_plssug99Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99Bartosz Ratajczyk
282 views18 slides
XML w SQL Server w praktyce by
XML w SQL Server w praktyceXML w SQL Server w praktyce
XML w SQL Server w praktyceBartosz Ratajczyk
1K views34 slides

More from Bartosz Ratajczyk(13)

OLE DB - kiedy FastLoad nie jest takie fast by Bartosz Ratajczyk
OLE DB - kiedy FastLoad nie jest takie fastOLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fast
Bartosz Ratajczyk125 views
SqlSaturday Denmark 2017 - Automate your SSIS deployment process by Bartosz Ratajczyk
SqlSaturday Denmark 2017 - Automate your SSIS deployment processSqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
Bartosz Ratajczyk470 views
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534 by Bartosz Ratajczyk
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
Bartosz Ratajczyk172 views
Szkolenia i certyfikacjesqlserver2016_plssug99 by Bartosz Ratajczyk
Szkolenia i certyfikacjesqlserver2016_plssug99Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99
Bartosz Ratajczyk282 views
Jak szybko przetwarzasz hurtowe ilości XML? by Bartosz Ratajczyk
Jak szybko przetwarzasz hurtowe ilości XML?Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?
Bartosz Ratajczyk321 views

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

Editor's Notes

  1. EncryptAllWithPassword, EncryptSensitiveWithPassword wymaga ręcznego podania hasła przy kompilacji devenv.com
  2. Plik .ispac to po prostu .zip z innym rozszerzeniem. Zawiera pliki pakietów, managerów połączeń, parametrów projektu – dokładnie te same co w naszym projekcie. Dodatkowo zawiera dwa pliki – manifest i informacje o typach danych poszczególnych elementów. Nie zawiera plików, które mamy w sekcji Miscellaneous, bo one nie są serwerowi potrzebne do szczęścia
  3. MSBuild domyślnie nie wie co to za typ projektu i musimy mu trochę pomóc
  4. Jak skompilować samodzielnie: https://www.simple-talk.com/sql/ssis/deployment-automation-for-sql-server-integration-services-ssis/ https://seddryck.wordpress.com/2016/12/27/building-the-msbuild-tasks-for-ssis-2016/
  5. Trzy / cztery elementy do napisania: Project, UsingTask, Target i opcjonalnie parametryzacja – ItemGroup, ParamGroup. Ponieważ plik Build.proj umieszczam w tym samym katalogu co projekt SSIS podaję tylko nazwę pliku projektu – będzie pobrana jako ścieżka względna. Tutaj wybrano ItemGroup, ale PropertyGroup też będzie dobre, może nawet lepsze, bo Property w ramach PropertyGroup ma jedną wartość, a Item w ramach ItemGroup może mieć kilka (jak tablica)
  6. * - jest w internecie kilka zgłoszonych przypadków, kiedy wdrażanie z poziomu VS działało bez zarzutu, natomiast wdrażanie tego samego przez /Silent powodowało błedy
  7. Tym razem zamiast ItemGroup jest PropertyGroup; ogólnie nie ma to większego znaczenie, jeśli nie chcemy nadpisywać wartościami z zewnątrz; jeśli chcemy, to PropertyGroup
  8. Demo 01: Kompilacja za pomocą pliku Build.proj (z linii komend) Demo 02: Wdrożenie za pomocą pliku Deploy.proj (z linii komend)
  9. SMO http://muxtonmumbles.blogspot.com/2013/11/ssis-project-deployment-and-visual.html SSISBuild https://www.nuget.org/packages/SSISBuild/ https://github.com/rtumaykin/ssis-build/ PowerShell cmdlets + cmd tools Nie wymaga żadnych dodatkowych bibliotek czy instalacji, nie zależy od VS PSCI https://github.com/ObjectivityLtd/PSCI Zależy od VS IsDeploymentCmd https://github.com/tkwj/ISDeploymentCmd
  10. Jeśli nazwa projektu zawiera kropki, to podczas tworzenia pliku ispac ostatni człon nazwy po kropce jest ignorowany – zarówno w kompilacji z poziomu Visual Studio jak i przez SSISMSBuild Podejście z SMO i PowerShell jest wrażliwe na wersję assembly, np. w moim przypadku dla SSIS 2012 bibliotekę ManagedDTS 11.0 miałem tylko w wersji 32 bit i kompilacja musiała być wykonywana w PowerShell 32bit
  11. Żeby obejść problem z kropkami w nazwie bez konieczności dostosowywania kodu SSISMSBuild możemy dopisać krok, który zmieni nazwę wygenerowanego pliku .ispac
  12. Skrypty Powershell + SSIS – Joost van Rossum http://microsoft-ssis.blogspot.com/p/powershell.html JSON: http://microsoft-ssis.blogspot.com/2017/05/import-and-export-ssis-catalog.html
  13. Przykłady – Koen Veerbeck: http://blogs.lessthandot.com/index.php/datamgmt/dbadmin/mssqlserveradmin/ssis-deployment-with-powershell-adding/ Hans Michiels – wszystko w T-SQL: https://www.hansmichiels.com/2016/11/04/how-to-automate-your-ssis-package-deployment-and-configuration-ssis-series/#step4
  14. https://twitter.com/scottcurrie/status/779033445817278464
  15. $project.Validate() [Microsoft.SqlServer.Management.IntegrationServices.ProjectInfo+ReferenceUsage]::UseAllReferences [Microsoft.SqlServer.Management.IntegrationServices.ProjectInfo+ReferenceUsage]::SpecifyReference, $reference)
  16. http://microsoft-ssis.blogspot.com/2016/12/ssis-naming-conventions.html