"Every business will be a software business" - said Satya Nadella, CEO of Microsoft.
• Is your business breathing down your neck? Are you being told that you are not releasing new software fast enough and your development teams need to deliver more values?
• Do you want to get feedback from users sooner? Because the earlier and more frequently you get working software for end users, the more quickly you get feedback to find out how valuable it really is.
• Are you looking for a process or a practice that helps to deliver the software faster and more reliable?
Continuous Delivery may be the answer!
What is Continuous Delivery? How can it optimize the way software is delivered? Which are powerful tools? How it can be applied in your projects?
Let's find it in our slides!
6. www.axon.vnfb.com/AxonActiveVietNam
How often they deliver
(source : https://www.thoughtworks.com/insights/blog/case-continuous-delivery)
Continuous Delivery 3/41
11.6 seconds, May - 2011
twice a day
multiple times a week
multiple times a day
10. www.axon.vnfb.com/AxonActiveVietNam
Continuous delivery actually written in the
first principle
Our highest priority is to satisfy
the customer through early
and continuous delivery
of valuable software.
Agile manifesto’s principles
Continuous Delivery 6/41
28. www.axon.vnfb.com/AxonActiveVietNam
Story 1
As a developer, I want to add a new
“divide” function into the app.
So that, user can use the app to
calculate divide operation.
• Endpoint: /calculator/divide?
num1=<num1>&num2=<num2>
• E.g. : num1 = 4.2, num2 = 2
the result is : 2.1
Continuous Delivery 23/41
29. www.axon.vnfb.com/AxonActiveVietNam
Story 2
As a developer, I want to add new
parameter to the “divide” endpoint
So that, it formats returned value in
decimal places.
• Update endpoint:
/calculator/divide?num1=<num1>&num2=<num
2>&scale=<scale>
• Example:
/calculator/divide?num1=1&num2=3&scale=3
result:
{
"result": 0.333,
"success": "true”
}
Continuous Delivery 24/41
33. www.axon.vnfb.com/AxonActiveVietNam
User feedback
• End up building something that isn't useful ?
• Get feedback quickly once deliver frequently.
• Employees -> Premium customers -> all customers
Benefits
Continuous Delivery 27/41
36. www.axon.vnfb.com/AxonActiveVietNam
• If something difficult or painful, do it more often
• improve it, probably automate it
• make it painless and easy
• Keep everything in source control
who doesn’t keep everything in source control?
Principles
Continuous Delivery 29/41
37. www.axon.vnfb.com/AxonActiveVietNam
• Done means “released”
• “I’ve checked in my code so it’s done at my computer”.
• More reliable, if changes are deployed into a production
(or production-like) environment.
Principles
Continuous Delivery 30/41
38. www.axon.vnfb.com/AxonActiveVietNam
• Build quality in
• Good, targeted quality metrics (unit tets, integration tests,
performance tests, etc)
• Improve continuously
• Don’t let your system to become out of date or impossible
to maintain
Principles
Continuous Delivery 31/41
39. www.axon.vnfb.com/AxonActiveVietNam
• 200k test suites in the code base
• Run 10M test suites per day
• 60M individual test cases / day and growing.
• 4000 continuous integration builds
(source : http://www.wired.com/2015/09/google-2-billion-lines-codeand-one-place/)
Continuous Delivery 32/41
40. www.axon.vnfb.com/AxonActiveVietNam
• Everybody has responsibility for the release process
• Make money
• Get products released to customers
• Keep in mind
• Developers: how to deploy them?
• Testers: should test for deployment defects
• PMs: plan projects with attention to deployment
Principles
Continuous Delivery 33/41
42. www.axon.vnfb.com/AxonActiveVietNam
• Continuous Integration (CI) is a software development
practice where members of a team integrate their work
frequently, usually each person integrates at least daily -
leading to multiple integrations per day.
• Each check-in is then verified by an automated build, allowing
teams to detect problems early.
Continuous Integration vs. Continuous Delivery
Continuous Delivery 34/41
43. www.axon.vnfb.com/AxonActiveVietNam
• CI usually refers to integrating, building, and testing code
within the development environment. CD builds on this,
dealing with the final stages required for production
deployment.
• In order to do CD you must be doing CI
Continuous Integration vs. Continuous Delivery
Continuous Delivery 35/41
47. www.axon.vnfb.com/AxonActiveVietNam
Where we started?
• Process / practices
• Done means ?
• Modeling the development and delivery pipeline
• Must apply CI
• Git, branches
• Automated tests
• Tools
• Continuous Deployment is optional
• Improve time by time
Continuous Delivery 38/41
49. www.axon.vnfb.com/AxonActiveVietNam
Gotchas
• Each environment need different configurations. I don’t
want to change the source code to deploy on production.
• Configuration saved on DB on each environment.
• When deploying, get these configuration then ‘inject’ to our source code.
• Log level
• Development, testing : DEBUG
• Integration : INFO
• Production : INFO or ERROR
Continuous Delivery 40/41