3. What you can expect
1. Software Trends
2. Infrastructure As Code
3. Virtualization
4. Docker Overview
5. Continuous Integration and Delivery
6. TESTING
a) Unit Test
b) Integration
c) UI
7. Security
8. Build Pipeline
11. VIRTUALIZATION- Containers
Containers are a method of operating system virtualization that allow you to run
an application and its dependencies in resource-isolated processes.
Containers
PACKAGE APPLICATION
CODE CONFIG AND
DEPLOYMENT
DEPLOY CONSISTENTLY
WITHOUT ENV
DEPENDENCIES
12. DOCKER
• Docker is a tool designed to make it easier to create,
deploy and run applications using containers.
• Allows developers to package up an application with all
the parts it needs, such as lib and dependencies and
ship it all out as one package.
• Built on Open Standards and runs on Linux and Windows
Server
• Bit like a VM, but without Guest OS and Hypervisor
VIRTUAL MACHINE DOCKER
29. UNIT TEST – Code Coverage
JACOCO – Light weighted, flexible and
well documented library for
integration with various build and
development tools
Code coverage metrics can help the
team monitor their automated tests as
the codebase and automated tests grow
and change. Just as important, code
coverage can help developers improve
their tests before they commit to a
build.
BetterTest = less bugs = fewer broken
build
31. UNIT TEST – Code Analysis
FindBugs – Static code analysis for Java
bytecode which can find common error
which may occur.
Ex. SQL query without prepared statement
and obvious NullPointerException.
Static Code Analysis, analyzes
code without executing it. Used
to find issues and ensure that it
conforms to coding guidelines.
43. TESTCONTAINER
Testcontainer is a Java library that
supports JUnit tests, providing light
weighted throwaway instances of
common databases, selenium
browsers, […] that can run in Docker
container
44. TESTCONTAINER - Capabilities
Ø Generic docker container support.
Ø Use any Docker images to support tests
Ø Databases and Stream processing
Ø AWS mocks (Localstack)
Ø Docker Compose
Ø Selenium (Webdriver Container)
Ø Chaos Testing
54. UI Test – Zalenium (Zalando)
Zalenium
Ø Selenium Grid extension to scale local grid dynamically
Ø Uses docker-selenium to run tests
Ø Can connect to cloud services like SauceLabs,
BrowserStack, TestBot etc.
Ø Works out of the box with Kubernetes
Ø Records Video of the tests
61. CONTAINER SECURITY
ü Docker and the Docker community provide tools like trusted registries
and image scanning to manage these risks
ü Containers can be locked down by using CIS (Center for Internet
Security) guidelines
ü Using scanning tools like Docker Bench
https://github.com/docker/docker-bench-security
https://www.cisecurity.org/benchmark/docker/
63. BUILD PIPELINE
Bitbucket Jenkins Maven JUnit SonarQube
SCM CI Build Source Unit Test Analysis
Nexus
Repo Mgr
Ansible
CM
Jira
Change
Management
BUILD PIPELINE
Docker
Build Image
Docker Hub
Docker Repo
64. BUILD PIPELINE
AWS Docker Selenium JMeter
Build Env Build Setup Function Test Perf Test
Ansible
CM
BUILD PIPELINE
Deploy
Desired Environment
Jenkins
CD
Packer
CD