Top Menu

Tag Archives OSS

I’m pleased to invite you to join us to the Azure OpenDev hack event!

This will be a challenge based hacking full day event based on building Open Source solutions in the Microsoft Azure cloud. We will focus on migrating and deploying Open Source applications to the Microsoft Azure cloud using DevOps practices. We will touch Open Source technologies like Java, Python, PHP, MySQL, PostgreSQL, Docker, Kubernetes, Git, Jenkins, and Linux.

Do you want more about OpenHack formula? Check my review form OpenHack in Amsterdam: My new learning experience – #OpenHack Amsterdam summary

Romania

Greece

Poland

IMPORTANT! This is Bring Your Own Device (BYOD) event, so do not forget your device! You can have Windows 10, Linux, or macOS with Docker on board.

Agenda

  • 08:30 – 09:00 Registration
  • 09:00 – 09:30 Event opening, explanation of the rules
  • 09:30 – 12:00 Hacking
  • 12:00 – 13:00 Lunch
  • 13:00 – 17:00 Hacking
  • 17:00 – 17:30 End of the event, awarding prizes

I am looking forward to seeing you there! 🙂

Wcześniej nie pisałem nigdy o naszym produkcie, który nazywa się Visual Studio Team Services. Nie będę się teraz o nim bardzo rozpisywał, bo nie o tym jest ten post, ale kilka zdań wprowadzenia postanowiłem napisać – szczególnie jeżeli nie miałeś styczność wcześniej.

Jeżeli wiesz co to jest VSTS /TFS przejdź od razu do sekcji MySQL.

VSTS / TFS

Visual Studio Team Services (VSTS) jest usługą chmurową, która wspomaga pełny proces zarządzania cyklem życia aplikacji – Application Lifecycle Management (ALM), w tym wspomaga proces dostarczenia praktyk DevOps.

Jest też analogiczny produkt, który można wdrożyć w lokalnej infrastrukturze Team Foundation Server (TFS).

Chcesz wiedzieć więcej o VSTS / TFS? Zapraszam na stronę produktową oraz do dokumentacji.

Agent

Niezależnie czy używasz VSTS czy TFS, cała siła wykonawcza narzędzia bazuje na agentach. Agent to nic innego jak maszyna wirtualna (lub fizyczna) z zainstalowanym zestawem narzędzi, które mają wykonać określone zadanie w procesie Build oraz Release.

Agent może być oparty o system Windows lub Linux, z czego dla platformy chmurowej VSTS można używać dzierżawionych maszyn (Hosted pool) tylko na proces wykonywania zadań. Hostowany agent oparty jest o system Windows i ma już zainstalowany pewien zestaw narzędzi (spacyfikacja w dokumentacji). Na dzień dzisiejszy są też hostowane agenty oparte o system Linux, lecz ich status jest na razie Preview.

Definicje Build / Release

Zadania, które ma wykonać agent opisane są w definicjach Build oraz Release. Sam VSTS / TFS ma wbudowaną kolekcję najróżniejszych zadań (Tasks), ale oczywiście to co jest out-of-box nie sprosta wymaganiom całego świata, dlatego VSTS / TFS można rozszerzać za po mocą dodatków, które publikowane są w Visual Studio Marketplace. Jest też opcja pisania własnych dodatków bez publikacji publicznej.

VSTS Release Definition

Jak pisać rozszerzenia VSTS / TFS? Zapraszam do dokumentacji.

MySQL Server

No to przejdźmy do właściwej części tego wpisu… Pracując z jednym partnerem, który wytwarza własne oprogramowanie i hostuje je na Microsoft Azure, podczas warsztatów z optymalizacji architektury wyszło, że jednym z elementów jest serwer baz danych MySQL. Celem na koniec dnia po za optymalizacją architektury było dostarczanie rozwiązania w ramach praktyk DevOps w tym zmian do struktury bazy danych MySQL.

VSTS nie posiada wbudowanych Tasks dla serwera MySQL. Rozwiązanie problemu w takim przypadku jest bardzo proste – agent musi zawierać zestaw narzędzi, które mogą być użyte w definicjach Build lub Release i pod zadanie należy podstawić własny skrypt, który to narzędzie użyje. Scenariusz ten jest bardzo popularny, natomiast wymaga w takiej sytuacji utrzymywania własnego agenta.

Partner jednak nie chciał utrzymywać własnych agentów dla VSTS, a korzystać z dzierżawionych w ramach chmury Microsoft Azure. Jak wspomniałem hostowane agenty (produkcyjne, nie Preview) oparte są o systemu Windows z określonym zestawem narzędzi, a w nim jest brak narzędzi dla serwera MySQL.

Korzystając z biblioteki MySQL Connector/Net, napisałem skrypt PowerShell, który wczytuje bibliotekę MySQL.Data.dll, a następnie już z poziomu PowerShell wykonywane są zapytania lub całe skrypty w bazie danych MySQL. Działa i na tym można by zakończyć temat, ale…

… ale idąc dalej, postanowiłem napisać rozszerzenie do VSTS / TFS, które wspomaga wykonywanie komend ad-hoc lub skryptów MySQL z poziomu hostowanych jak i prywatnych agentów opartych o system Windows.

Rozszerzenie zawiera 3 zadania, które są dostępne w Task catalog, w sekcji Utility.

Task catalog

  • Run MySQL command – zadanie to wykonuje zapytania ad-hoc.
  • Run MySQL script – zadanie wczytuje zawartość skryptu .sql i wykonuje je po stronie serwera.
  • Run MySQL scripts – zadanie wczytuje po kolei wszystkie skrypty .sql, które znajdują się w podanym katalogu i wykonuje je po stronie serwera.

Run MySQL Script

Rozszerzenie MySQL Toolkit for Windows możesz zainstalować bezpośrednio w VSTS za pomocą Visual Studio Marketplace (aka.ms/vstsmysqlwin) lub ściągnąć plik .vsix i wgrać go do swojego serwera TFS.

Cały projekt udostępniony jest w postaci kodu źródłowego na GitHub pod adresem aka.ms/vstsmysqlwinsrc.

Komentarze, błędy, pomysły na rozwój mile widziane 🙂 – najlepiej zgłaszaj je za pośrednictwem GitHub Issue Tracker.

Close