+ All Categories
Home > Software > Docker. Does it matter for Java developer ?

Docker. Does it matter for Java developer ?

Date post: 14-Jun-2015
Category:
Upload: izzet-mustafaiev
View: 3,889 times
Download: 2 times
Share this document with a friend
Description:
Do you know, being a Java dev, how to manage development environments with less effort? How to achieve continuous delivery using immutable server concept? How to manage set up a cloud within your workstation and many more? It might be the case you know, I bet it's much more easier to do with Docker.
Popular Tags:
41
Does it matter for Java Dev?
Transcript
Page 1: Docker. Does it matter for Java developer ?

Does it matter for Java Dev?

Page 2: Docker. Does it matter for Java developer ?

● just baked father

● SA at EPAM Systems

● primary skill is Java

● hands-on-coding with Groovy, Ruby

● trying to get in touch with Erlang/Elixir

● passionate about agile, clean code and devopsIzzet Mustafayev@EPAM Systems@webdizz webdizz izzetmustafaievhttp://webdizz.name

Page 3: Docker. Does it matter for Java developer ?

Agenda● what is docker?

● concepts

● how to

● dev env

● demo time

● what’s next

● summary

● q&a

Page 4: Docker. Does it matter for Java developer ?
Page 5: Docker. Does it matter for Java developer ?

Docker https://www.docker.com/

Docker - An open platform for

distributed applications for

developers and sysadmins.

● Develop an app with any language and any

toolchain

● Ship the “Dockerized” app and

dependencies anywhere

● Scale, move between data centers, update

with zero downtime and more

Page 6: Docker. Does it matter for Java developer ?

1.6.2released

Page 7: Docker. Does it matter for Java developer ?

Virtualization

Page 8: Docker. Does it matter for Java developer ?

Containerisation

Page 9: Docker. Does it matter for Java developer ?

Virtualization vs Containerisation

Page 10: Docker. Does it matter for Java developer ?

Container under the hood

Page 11: Docker. Does it matter for Java developer ?

Running containers

Page 12: Docker. Does it matter for Java developer ?

Concepts

Page 13: Docker. Does it matter for Java developer ?

Automation

● Build automation● Provisioning automation ● Configuration automation● Delivery Automation

Page 14: Docker. Does it matter for Java developer ?

● Environment as a code ● Prohibition of ad-hoc changes

Immutability

Page 15: Docker. Does it matter for Java developer ?

● Build● Run ● Destroy

Disposability

Page 16: Docker. Does it matter for Java developer ?

Containerisation

● Container as deployment artifact● Environment agnostic● New version - new container● All dependencies built in

Page 17: Docker. Does it matter for Java developer ?
Page 18: Docker. Does it matter for Java developer ?

Installation# apt-get update

# wget -qO- https://get.docker.com/ | sh

Assumption: Ubuntu

Page 19: Docker. Does it matter for Java developer ?

DockerfileFROM phusion/baseimage:0.9.12

RUN apt-get -y update \

&& apt-get -y install software-properties-common python-software-

properties \

&& add-apt-repository ppa:webupd8team/java \

&& apt-get clean

RUN apt-get -y update \

&& echo oracle-java8-installer shared/accepted-oracle-license-v1-1

select true | /usr/bin/debconf-set-selections \

&& apt-get -y install oracle-java8-installer \

&& apt-get clean \

&& update-alternatives --display java

ENV JAVA_HOME /usr/lib/jvm/java-8-oracle

1

3

4

5

Page 20: Docker. Does it matter for Java developer ?

Command Line$ docker build -t webdizz/baseimage-java8 .

$ docker images

$ docker run -d --name=java8 \

webdizz/baseimage-java8

$ docker ps

$ docker logs java8

$ docker stop java8

$ docker start java8

$ docker top java8

Page 21: Docker. Does it matter for Java developer ?

Docker Hub● User accounts and Authentication

● Public namespaces

● Automated builds

● Registry for images with checksums

● Meta-data store (comments, stars, list public

repositories)

Page 22: Docker. Does it matter for Java developer ?

Official images

Page 23: Docker. Does it matter for Java developer ?

Official images for Java

Page 24: Docker. Does it matter for Java developer ?

Official images for Java...

● Clojure● Tomcat● Jruby● Maven● Glassfish● Elasticsearch● Jenkins● SonarQube

● And more non-official

Page 25: Docker. Does it matter for Java developer ?

Dev Env

Page 26: Docker. Does it matter for Java developer ?

Perfect together

Page 27: Docker. Does it matter for Java developer ?

Routine is boring

Page 28: Docker. Does it matter for Java developer ?

Docker-compose is our way● YAML syntax

● Configuration inclusion/inheritance

● Comprehensive CLI

● Bash completion

Page 29: Docker. Does it matter for Java developer ?

Docker-compose YAML● image

● command

● links

● ports/expose

● volumes

● environment

● ...

Page 30: Docker. Does it matter for Java developer ?

Docker-compose CLI● build

● up

● logs

● ps

● run

● start/stop

● scale

● ...

Page 31: Docker. Does it matter for Java developer ?

Demo Time

Page 32: Docker. Does it matter for Java developer ?
Page 33: Docker. Does it matter for Java developer ?

Service Discovery

● Configuration registry

● DNS

● Health checking

Tools

● Consul

● Etcd

● Zookeeper

Page 34: Docker. Does it matter for Java developer ?

Resource Management

● Scheduling

● Task execution

● Auto scale

Tools

● Mesos

● Flynn

● Fleet

Page 35: Docker. Does it matter for Java developer ?

Monitoring

● Failures and Outages are expected for

distributed apps

● Business aware metrics matters

Tools

● Dropwizard Metrics

● Netflix Servo

● cAdvisor

Page 36: Docker. Does it matter for Java developer ?

Logging

● Critical for operation

● Even more critical for distributed operation

● Remains critical with operation in Docker

Tools

● Elasticsearch Logstash Kibana

● Elasticsearch Fluentd Kibana

Page 37: Docker. Does it matter for Java developer ?

Continuous Delivery

● Container as deployable artifact

● New container for new application version

● Start/stop proper version of container for proper

version of application

Tools

● Ansible

● Docker Swarm

Page 38: Docker. Does it matter for Java developer ?

Summary ● Easy and fast building of images

● Easy to share in your team

● Easy to scale

● Easy to work with new technologies

● Of course learning curve

● Production like dev env*

Page 40: Docker. Does it matter for Java developer ?

Q&A

Page 41: Docker. Does it matter for Java developer ?

Izzet Mustafayev@EPAM Systems@webdizz webdizz izzetmustafaievhttp://webdizz.name


Recommended