19. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Cloud Native Application
Deliver as flexible
Scalable microservices in the cloud
Fully automate and software-define
21. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
DevOps
Collaboration between
software developers and IT operations
22. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
DevOps
Create a culture and environment
where building, testing and release
rapidly, frequently and consistently
29. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Continuous Delivery
Shipping small batches of software
Automation shipping with reliability
Less risk
Get feedback faster from end users
82. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Evolutionary design
how we organize people and team
plan what to build
83. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Evolutionary design
how we organize people and team
plan what to build
collaborate
84. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Evolutionary design
how we organize people and team
plan what to build
collaborate
integrate
85. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Evolutionary design
how we organize people and team
plan what to build
collaborate
integrate
develop and release
178. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
DevOps definitions
“A movement of people who care about
developing and operating reliable, secure, high
performance systems at scale.”
- Jez Humble -
179. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
DevOps definitions
“A mix of patterns intended to improve
collaboration between development and
operations. DevOps addresses shared goals
and incentives as well as shared processes
and tools.”
- Michael Huttermann -
181. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Goals
To improve the delivery of value
for customer & business
Code Build Test Deploy Release Monitor
Idea Customer
182. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Life cycle
https://www.linkedin.com/pulse/9-critical-steps-devops-transformation-enterprises-sakthi-vadivelu
251. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Virtual Machine
Abstraction of physical hardware
Full copy of OS and libraries
Slow to boot
252. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Container
Abstraction at the app level
Share OS kernel
Isolate process
Less space than Virtual Machine
281. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
5. Build, release, run
Separate build and run stages
Impossible to make changes to code at runtime
Easy to rollback !!
282. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
6. Processes
Execute the app as one or more
stateless processes
286. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
9. Disposability
Maximize robustness with
fast startup and graceful shutdown
287. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
10. Dev/prod parity
Keep development, staging and production
as similar as possible
288. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
10. Dev/prod parity
Traditional app 12-factors app
Time between deploys Week Hours
Code authors vs deployers Different people Same people
Dev vs Prod Divergent As similar as possible
289. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
11. Logs
Logs are the stream of aggregated
Time-ordered events
290. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
11. Logs
Logs provide visibility into
the behavior of a running app
291. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
12. Admin processes
Run admin/management tasks
as one-off processes
292. บริษัท สยามํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Checklist !!
Topic Yes/No/Maybe
Use version control (svn, git)
Execution environment is isolated
Easy to access Backing service
Build, stage, run environment is separated
Support short startup and graceful shutdown
Dev env. is identical to production env.
Collect logs in the database by the another app