14
Czyli jak Docker pozwala dostarczać środowisko testowe razem z aplikacją. BUILD FAILUJE? PRZECIEŻ U MNIE DZIAŁAŁO. Rafał Sumisławski NetworkedAssets Atlassian User Group Lower Silesia 25.03.2015

Atlassian User Group Lower Silesia BUILDFAILUJE? PRZECIEŻ U MNIE DZIAŁAŁO

Embed Size (px)

Citation preview

Czyli jak Docker pozwala dostarczać środowisko testowe razem z aplikacją.

BUILD FAILUJE? PRZECIEŻ U MNIE DZIAŁAŁO.

Rafał Sumisławski – NetworkedAssetsAtlassian User Group Lower Silesia 25.03.2015

25.03.2015 2AUG Lower Silesia

2.8.15

1.7.0_17

8.0.11

6.0

2.8.15

1.7.0_17

8.0.11

6.0

2.8.15

1.7.0_17

8.0.11

6.0

Środowisko działania aplikacji

25.03.2015 3AUG Lower Silesia

2.8.19

1.8.0_40

8.0.20

14.04.2

2.6.21

1.7.0_48

8.0.17

14.04.2

2.8.15

1.7.0_17

8.0.11

6.0

Środowisko działania aplikacji

25.03.2015 4

Anywhere

AUG Lower Silesia

Build, Ship, Run,and

Any App

• Zarzadzanie w stylu gita• Docker Hub

• Git Hub?

• Zarządzanie Dockerami• Dockerfile

Zarządzanie kerami•

Zarządzanie Dockerami

Virtual Machine Docker

keramiZarządzanie DockeramiZarządzanie •

keramiZarządzanie Dockerami• Dockerfile

••

Docker•

gita•Docker•

• Zarzadzanie w stylu Docker Hub• Git Hub?

stylu gitagitaFROM java:openjdk-8-jdk

ENV MAVEN_VERSION 3.2.5RUN curl -sSL http://archive.apache.org/dist/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz \| tar xzf - -C /usr/share \&& mv /usr/share/apache-maven-$MAVEN_VERSION /usr/share/maven \&& ln -s /usr/share/maven/bin/mvn /usr/bin/mvnENV MAVEN_HOME /usr/share/maven

CMD ["mvn", "--version"]

• Docker Engine• namespaces + cgroups – izolacja zasobów• union file system

25.03.2015 5AUG Lower Silesia

Czym jest Docker?

Operating-system-level Virtualization

25.03.2015 6AUG Lower Silesia

1 Docker – 1 Proces

Proces główny• PID 1• Czas życia kontenera taki sam jak procesu głównego• Std I/O Dockera = Std I/O procesu

Zalety:• Łatwiejsze zarządzanie• Separacja

Wady:• Separacja ;)• Dużo Dockerów

25.03.2015 7AUG Lower Silesia

Wystarczą dwa lata żeby napełnić ocean

25.03.2015 8AUG Lower Silesia

Bamboo i Docker

Bamboo 5.8Docker Task – Uruchamianie Dockerówpodczas buildu

Bamboo 5.7Uruchamianie Agentów Bamboo na Dockerze

25.03.2015 9AUG Lower Silesia

Bamboo Docker Task

• Build a Docker image• Run a Docker container

• Forground• Background

• Push a Docker image to Docker Registry

Dockerfile może być pobierany z VCS lub wpisany w Bamboo

25.03.2015 10AUG Lower Silesia

Przykładowa konfiguracja

25.03.2015 11AUG Lower Silesia

Docker w CI (Bamboo)

Zalety:• Nie potrzeba niczego poza Dockerem• Reset środowiska po każdym buildzie• Środowisko identyczne z deweloperski i produkcyjnym• Łatwa modyfikacja i powielanie środowiska testowego

Wady:• Koszt stworzenia Dockerów• Dodatkowa warstwa• Braki w Docker Task

25.03.2015 12AUG Lower Silesia

Agenci Bamboo jakokontenery Dockera (Bamboo 5.7)

Obrazy:• atlassian/bamboo-base-agent• atlassian/bamboo-java-agent

docker run -e HOME=/root/ -e BAMBOO_SERVER=http://192.168.16.11:8085 -i -t atlassian/bamboo-java-agent:5.6.1

Żeby szybko tworzyć i aktualizować agentów Bamboo

Po co?

25.03.2015 13AUG Lower Silesia

Podsumowanie

Możliwość dostarczania aplikacji razem ze środowiskiem

• Izolacja od czynników zewnętrznych• Małe narzuty• Dockerfile – tekstowy opis środowiska• Mechanizmy dystrybucji obrazów• Kompatybilność z Bamboo

„Works on my machine”„Works on THE machine”„Works everywhere”

ul. Legnicka 5054-204 Wrocławtel +48 71 358 26 79fax +48 71 358 26 78

www.networkedassets.pl

Dziękuję za uwagę!

Rafał Sumisł[email protected]