In recent years, how we approach development has dramatically changed with the rise of DevOps, Cloud Computing, and Container technologies. Many stakeholders at our organizations are ecstatic about Shift Left, DevSecOps and VSM, but how are we as Java developers embracing this new cultural shift?
In this session we will explore the most common Critical Challenges to Adopt DevOps Culture in
Software Organizations, best practices and some excellent news with success stories.
14. Using Analytics to Guide
Improvement during an
Agile – DevOps
Transformation
IEEE SOFTWARE
15. Case Study
Fannie Mae 2012
•Only 10 teams using agile-like techniques
•Releases → 9 to 18 months
•Technical-polyglot ecosystem
•461 applications
•~ Hundreds utilities
•~18,000 open source components
16. Case Study
Fannie Mae: 2016
Quality → Applications improved quality 30% to 48% when
measured by critical defects
Productivity → 28% gain (deliveries)
Cadence → 21 times (more than 19,000) builds per month with
half the previous staffing, while improving quality
22. DevOps : Starting point
“Movement started to coalesce some time between
2007 and 2008, when IT operations and software
development communities raised concerns what they
felt was a fatal level of dysfunction in the industry”
24. DevOps
Culture
Increased transparency, communication, and collaboration →
cross-team
Shared responsibilities → "you build it, you run it"
Autonomous teams → make decisions faster and easier (risk)
Feedback → performance and stability
Automation
34. Martin Fowler
“A single application as a suite of small services, communicating
with lightweight mechanisms. Built around business capabilities
and independently deployable by an automated deployment.
May be written in different programming languages”
49. wiremock.org
WireMock is a simulator for HTTP-based APIs
( service virtualisation tool; a mock server )
Runs
Standalone Process, without the HTTP Server, in Docker
Proxying
Record and Playback
Simulating Faults
Stateful Behaviour
52. rest-assured.io
REST Assured is a Java DSL for simplifying testing of REST
Specifying Request Data
i.e Path Parameters, Cookies, Headers, Multi-value Parameter
Verifying Response Data
i.e. Cookies, Status, Body/content matching, Measuring response time
Authentication
i.e OAuth1, OAuth2
Spring Support
55. testcontainers.org
Java library that supports JUnit4, Jupiter/JUnit5 and tests
Provide lightweight, throwaway instances
common databases,
selenium web browsers,
anything (docker container)
70. cncf.io
“The Cloud Native Computing Foundation seeks to drive
adoption of [technologies & techniques] by fostering
and sustaining an ecosystem of open source, vendor-
neutral projects”
71. cncf.io
“The Cloud Native Computing Foundation seeks to drive
adoption of [technologies & techniques] by fostering
and sustaining an ecosystem of open source, vendor-
neutral projects”