4. Our experiences using Docker_
4
Build/Test/Deployment
Infrastructure
Getting Started with Docker
JBoss / Java EE
Standardization, Conformity, Compliance
(Security)
Dashboard
Microservices, Lightweight, Technology
Flexibility
Greenfield Enterprise Speed, Flexibility, Duplicated Environments
20 % Learning / using new technologies
5. Our experiences using Docker_
5
Build/Test/Deployment
Infrastructure
Getting Started with Docker
JBoss / Java EE
Standardization, Conformity, Compliance
(Security)
Dashboard
Microservices, Lightweight, Technology
Flexibility
Greenfield Enterprise Speed, Flexibility, Duplicated Environments
20 % Learning / using new technologies
6. JBoss / Java EE_
CI/CD Pipeline
Jenkins GitLab SonarQube Nexus SeleniumHub
Backend
DB2
ERP
LDAP
IMS
Applications
JBoss EE JBoss EEJBoss EE JBoss EE JBoss EE
JBoss EE JBoss EEJBoss EE JBoss EE JBoss EE
JBoss EE JBoss EEJBoss EE JBoss EE JBoss EE
JBoss EE JBoss EEJBoss EE JBoss EE JBoss EE
Platform
VMWareVagrant
7. Our experiences using Docker_
7
Build/Test/Deployment
Infrastructure
Getting Started with Docker
JBoss / Java EE
Standardization, Conformity, Compliance
(Security)
Dashboard
Microservices, Lightweight, Technology
Flexibility
Greenfield Enterprise Speed, Flexibility, Duplicated Environments
20 % Learning / using new technologies
8. Platform
CI/CD Pipeline
Jenkins
GitHub EE
SonarQube Nexus SeleniumHub
Backend
JIRA
WordPress
Xing
IMS
OpenStack
Dashboard_
Application
ReactJS Spring Boot Cassandra Spring Boot
AngularJS Scala Postgres Spring Boot
Static HTML NodeJS SpringBatch Keycloak
Neo4J JBoss EE NginxReactJS
9. Our experiences using Docker_
9
Build/Test/Deployment
Infrastructure
Getting Started with Docker
JBoss / Java EE
Standardization, Conformity, Compliance
(Security)
Dashboard
Microservices, Lightweight, Technology
Flexibility
Greenfield Enterprise Speed, Flexibility, Duplicated Environments
20 % Learning / using new technologies
10. Greenfield Enterprise_
Application
ReactJS Spring Boot DB2
SpringBatch
PostgresNginx
HSQL
SpringBatch
SpringBatch
SpringBatch
SpringBatch
SpringBatch
SpringBatch
SpringBatch
Spring Boot
Spring Boot
Admin
Platform
OpenStack
Backend
WebServices
Oracle
SAP
LDAP
Vagrant VMWare
CI/CD Pipeline
Jenkins
GitHub EE
SonarQube Nexus SeleniumHub
27. Software Development Process_
27
Developer
GitLab Jenkins
SonarQube
Nexus
Build and Release
SeleniumHub
Docker Registry
Deployment
Jenkins
GitLab
Staging
Spring Boot
Test
Spring Boot
Prod
Spring Boot
Dev
Spring Boot
40. •Everything is in version control
•Use Ansible inventory for environment specific information
•Use Ansible Vault for secure storage for passwords
•Generate Jenkins Jobs automatically via Job DSL
• GitLab REST API
•One Click Release & Deployments
Best practices_
40
Automate Everything
41. •All application run in Docker container
•Environment independent Docker images
•Use latest OS version (recent Kernel)
•Use fixed Docker / Ansible versions
•Have a clone of every system for testing new versions
• incl. CI/CD Pipeline
•Create User / Group (uid/gid) per Application Type
• required for volume mount permissions
•Do not run Docker Container under root!
Docker_
41
Stable Docker Setup
45. “Thanks for your attention.”
45
Marcel Birkner,
Software-Consultant
codecentric AG
Hochstraße 11
42697 Solingen, Deutschland
marcel.birkner@codecentric.de
www.codecentric.de
blog.codecentric.de
marcelbirkner
Senior IT-Consultant
codecentric AG
Hochstraße 11
42697 Solingen, Deutschland
dennis.schulte@codecentric.de
www.codecentric.de
blog.codecentric.de
denschu
Dennis Schulte,