Analyzed more than 27,000 survey responses from IT professionals,
developers and executives over the past 6 years
Provided strong evidence that DevOps practices lead to higher IT
performance.
source: https://puppet.com/resources/whitepaper/state-of-devops-report
DevOps
“DevOps is the practice of operations and
development engineers participating together in the
entire service lifecycle, from design through the
development process to production support.”
https://theagileadmin.com/
Ask the audiences
- Apa itu DevOps?
- Ada yang orang Development? Operation?
Ask the audiences
- Curhat
Dev make their own code
Ops run it without knows the code
Dev doesn’t know to operate the machine
Ops prepare the environment based on request (if true)
Old way:
Code on own laptop, sekarang mungkin udah banyak yg pake Git ya?
FTP to productin
Causes
Error, missing library
Different web server version
Takes time to debugging
The Dev and Ops teams have different success metrics and goals;
Lack of communication between the Dev and Ops teams;
Lack of the Ops experience in the Dev team;
There is a difference between development and target environment configurations.
Etsy is an e-commerce website focused on handmade or vintage items and supplies, as well as unique factory-manufactured items. Launch 2005.
For organizations that have implemented DevOps, 66% saw faster realization of business value.
This higher performance delivers improved business outcomes, as measured by productivity, profitability, and market share.
Throughput is measured by how frequently a team is able to deploy code and how fast it can move from committing code to deploying it. Stability is measured by how quickly the system can recover from downtime and how many changes succeed, versus how many fail.
CUP STACKING GAME
Make work visible – we need to make our work as visible as possible
Everyone is responsible
DevOps is about Relationship
Need to have strong trust within team
Regular communication and collaboration is must
Shared blame, success and failure
Focus on end Goal
Share contribution
Empowerment
Freedom and Accountability
Reduce batch sizes
Eliminate hardship and waste in the value stream
Continuous learning and experimentation
Hearts & minds
Embrace change
Blaming
Customer obsession
Fail fast
Collaboration
Fear of failure
SILO
Tech obsession
Hearts & minds
Embrace change
CI/CD
Infrastructure as Code
Compared high performers to low performers, we found that high performers are doing significantly less manual work, and so have automated:
33 % more of their configuration management.
27 % more of their testing.
30 % more of their deployments.
27 % more of their change approval processes.
With more work automated, high performers free their technical staff to do innovative work that adds real value to their organizations.
Continuous integration is a software development practice where developers regularly merge their code changes into a central repository, after which automated builds and tests are run. The key goals of continuous integration are to find and address bugs quicker, improve software quality, and reduce the time it takes to validate and release new software updates.
Changes more often but small.GitHub, Gitlab, Bitbucket.
Continuous delivery is a software development practice where code changes are automatically built, tested, and prepared for a release to production. It expands upon continuous integration by deploying all code changes to a testing environment and/or a production environment after the build stage. When continuous delivery is implemented properly, developers will always have a deployment-ready build artifact that has passed through a standardized test process.
Continuous integration refers to the build and unit testing stages of the software release process. Every revision that is committed triggers an automated build and test.
With continuous delivery, code changes are automatically built, tested, and prepared for a release to production. Continuous delivery expands upon continuous integration by deploying all code changes to a testing environment and/or a production environment after the build stage.
Infrastructure as code is a practice in which infrastructure is provisioned and managed using code and software development techniques, such as version control and continuous integration. The cloud’s API-driven model enables developers and system administrators to interact with infrastructure programmatically, and at scale, instead of needing to manually set up and configure resources. Thus, engineers can interface with infrastructure using code-based tools and treat infrastructure in a manner similar to how they treat application code. Because they are defined by code, infrastructure and servers can quickly be deployed using standardized patterns, updated with the latest patches and versions, or duplicated in repeatable ways.
Focus on producing value for the end-user
Small batch sizes
Measure everything
Show the improvement
Open Information sharing
Collaboration
Increased communication and collaboration in an organization is one of the key cultural aspects of DevOps. The use of DevOps tooling and automation of the software delivery process establishes collaboration by physically bringing together the workflows and responsibilities of development and operations. Building on top of that, these teams set strong cultural norms around information sharing and facilitating communication through the use of chat applications, issue or project tracking systems, and wikis. This helps speed up communication across developers, operations, and even other teams like marketing or sales, allowing all parts of the organization to align more closely on goals and projects.
ENVELOPE GAME
Time-to-market – Small batch releases deliver products faster.
MTTR – If any bugs found this can be addressed immediately without much of rework as feedback is received early in development.
Quality – Small batch releases product with high quality.
Waste – Small batch release eliminates waste.
WIP – work in progress items will be reduced as team concentrates on single-piece-flow.
Continuous deployment – where each change committed to version control is integrated, tested and deployed into production.
ENVELOPE GAME
Time-to-market – Small batch releases deliver products faster.
MTTR – If any bugs found this can be addressed immediately without much of rework as feedback is received early in development.
Quality – Small batch releases product with high quality.
Waste – Small batch release eliminates waste.
WIP – work in progress items will be reduced as team concentrates on single-piece-flow.
Continuous deployment – where each change committed to version control is integrated, tested and deployed into production.