docker
Docker Playground
Ostatni meetup Docker Global Mentor Week spowodował, że wracam do tematów około docker’owych.
Znalazłem świetne miejsce do ćwiczeń: Docker Playground – na 4h można uruchomić do 5ciu instancji Ubuntu.
Polecam filmik Building a $0 Docker Swarm in seconds with play-with-docker
Docker Global Mentor Week
Wczoraj uczestniczyłem w meetup’ie Docker Warsaw #1 – Docker Global Mentor Week.
Rewelacja. Było tłumnie, przez chwilę tłoczno, ale wrażenia bardzo pozytywne. Miło widzieć że społeczność wokół Docker’owa się integruje i wspiera.
Spotkanie miało formę warsztatu. Dostaliśmy do przejścia, z pomocą mentorów, kursy dla początkujących i średnio-zaawansowanych. Świetna forma przyswajania wiedzy. Bez wizji praktycznego zastosowania ciężko jest cokolwiek i czegokolwiek się nauczyć. Formy warsztatowe są w tym względzie nieocenione.
Na DOCKER TRAINING znajdziecie sporo materiału do nauki.
Docker Toolbox
Do dzisiaj z docker’a korzystałem w jego natywnym środowisku czyli pod linux’em. Z pewnych względów, które dokładniej opiszę w niedalekiej przyszłości, przeprosiłem się z Windows’em. Docker Toolbox przychodzi z pomocą.
Instalacja i konfiguracja docker’a pod Windows jest niezwykle prosta, pod warunkiem, że skorzystamy z Docker Toolbox . W sumie to nie wiem, czy dzisiaj da się go jakoś inaczej zainstalować.
Pozwala on na instalację i automatyczną konfigurację:
- Docker Engine
- Compose
- Machine
- Kitematic
InfluxDB i Grafana
InfluxDB jest open-source’ową bazą danych time-series świetnie zastępującą bazę whisper w rozwiązaniach wykorzystujących protokół graphite (opis tutaj).
Aplikację Graphite zastąpmy produktem Grafana i mamy super środowisko do wizualizacji danych.
Oczywiście w https://registry.hub.docker.com mamy oficjalny obraz Grafana oraz 'prawie' oficjalny obraz influxDB. Mamy też obrazy zawierające komplet komponentów wraz z carbon’em.
Łatwo i szybko możemy zbudować sobie środowisko do monitorowania w czasie rzeczywistym przebiegu testów wydajnościowych czy to z jmeter’em czy to z Gatling’iem.
Konfiguracja dla Gatling.
Konfiguracja dla jmeter.
Wizualizacja danych 'czasowych'
Trochę dziwny tytuł, ale myślę, że dobrze oddaje sens tego co chcę dzisiaj przedstawić.
Chciałbym w kilku kolejnych wpisach przybliżyć narzędzia, które pomogą zwizualizować dane, które najprościej mówiąc, na osi X mają czas, a dokładniej timestamp.
ELK, robi mniej więcej to samo, ale w opisanym wcześniej przypadku konfiguracja opiera się ściśle na pliku csv z raportem. Niekoniecznie wizualizacja danych w czasie rzeczywistym wymaga pracy z plikiem. Continue reading „Wizualizacja danych 'czasowych'”
VM z Windows’em
Mimo, że mam i wykorzystuję docker’a czasami trzeba coś przetestować na windows’ie. Gorzej: trzeba coś przetestować wykorzystując różne wersje IE i jeszcze gorzej: na różnych wersjach OS.
Microsoft przychodzi nam z pomocą dostarczając za darmo VM z Windows’em.
Z https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ można pobrać maszyny wirtualne dla kombinacji IE vs. OS.
Obrazy maszyn dostępne są dla wszystkich popularnych platform wirtualizacyjnych. Dostajemy ograniczone czasowo Windows’y, na których możemy robić co nam się podoba 🙂
Gatling, Docker i spółka
Potrzebowałem szybko wystawić wynik testu z gatling 'a, żeby omówić je z klientem. Mógłbym te wyniki spakować i wysłać mail’em, ale robienie tego po każdej iteracji wydało mi się mało optymalne.
Nie chciałem instalować sobie żadnego serwera http na moim komputerze. Z pomocą przyszedł Docker.
Wystarczy wejść do folderu z plikami raportu (raport zapisywany jest jako niewielka witryna web) i wykonać poniższe:
$ docker pull httpd $ docker run -it --rm --name my-apache-app -v "$PWD":/usr/local/apache2/htdocs/ -p 80:80 httpd
Co powyższym zrobiłem? Ano pobrałem obraz maszyny z apache’m. Uruchomiłem z opcją zamapowania bieżącego folderu hosta na folder /usr/local/apach2/htdocs/ uruchamianej maszyny i zamapowania portu 80 hosta na port 80 uruchamianej maszyny i ….tadaaaa: po adresem http://127.0.0.1 mam wystawiony raport 🙂
Jeszcze tylko trzeba było grzebnąć w routerze, żeby wrzucić mój komputer do DMZ i raport stał się widoczny pod moim publicznym adresem ip 🙂
Następnym razem mogę pominąć pierwszy i ostatni krok, ponieważ mam już httpd lokalnie, a router zostawiam tak jak jest.
Gatling
Gatling jest narzędziem do przygotowania i wykonania testów wydajnościowych aplikacji i stron webowych.
Gatling napisany jest w języku scala. Dzięki temu jesteśmy w stanie maksymalnie wykorzystać maszyny generujące obciążenie, ponieważ jak wiadomo scala świetnie wykorzystuje dostępną moc CPU. Continue reading „Gatling”
sitespeed.io
Sitespeed.io jest open source’owym narzędziem do badania i analizy szybkości i wydajności stron WWW. Analiza jest przeprowadzana w oparciu o najlepsze praktyki budowania wydajnych stron internetowych.
A i tak najważniejsze jest to, że można to uruchomić z wykorzystaniem gotowego obrazu docker’a LOL
$ docker run --privileged --rm -v "$(pwd)":/sitespeed.io sitespeedio/sitespeed.io sitespeed.io -u http://www.sitespeed.io -b chrome