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.
2. ● 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 devops
Izzet Mustafayev@EPAM Systems
@webdizz webdizz izzetmustafaiev
http://webdizz.name
3. Agenda
● what is docker?
● concepts
● how to
● dev env
● demo time
● what’s next
● summary
● q&a
4.
5. 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
21. Docker Hub
● User accounts and Authentication
● Public namespaces
● Automated builds
● Registry for images with checksums
● Meta-data store (comments, stars, list public
repositories)
35. Monitoring
● Failures and Outages are expected for
distributed apps
● Business aware metrics matters
Tools
● Dropwizard Metrics
● Netflix Servo
● cAdvisor
36. Logging
● Critical for operation
● Even more critical for distributed operation
● Remains critical with operation in Docker
Tools
● Elasticsearch Logstash Kibana
● Elasticsearch Fluentd Kibana
37. 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
38. 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*