SlideShare ist ein Scribd-Unternehmen logo
1 von 294
Downloaden Sie, um offline zu lesen
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Cloud Native Application
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Topics
Continuous Integration
Continuous Deployment/Delivery
Microservices
DevOps
Containerization
12-factor app
Cloud native application
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Cloud Computing
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Cloud is about
how computing is done,
not where
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Public
Private
Hybrid
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Cloud Native Application
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://pivotal.io/cloud-native
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Cloud Native Application
Changing the way of enterprise thinking
about building software
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Cloud Native Application
Balancing speed and agility
with operation excellence
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Cloud Native Application
Move fast with consistency and reliable
Release fast and often
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Cloud Native Application
Create business demand
and
customer value
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Cloud Native Application
Enable high performing teams
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Cloud Native Application
At scale, globally
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Cloud Native Application
Deliver as flexible
Scalable microservices in the cloud
Fully automate and software-define
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
DevOps
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
DevOps
Collaboration between
software developers and IT operations
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
DevOps
Create a culture and environment
where building, testing and release
rapidly, frequently and consistently
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
DevOps goals
Constantly delivering high-quality software
Solve customer challenges
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Continuous Delivery
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Continuous Delivery
Enabled by Agile product development
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Continuous Delivery
Shipping small batches of software
Automation shipping with reliability
Less risk
Get feedback faster from end users
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Microservices
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Microservices
Architectural approach
to develop an application as a
collection of small services
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Microservices
Deploy, Upgrade, Scale, Restart
independent of other services
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Microservices
Enable frequent update to live app
without impact to end customer/user
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
History
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
History
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
History
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Evolution of Architecture
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Developer’s perspective
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Developer’s perspective
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Developer’s perspective
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Developer’s perspective
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
N-tiers
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
N-tiers
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
SOA
Service Oriented Architecture
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
SOA
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
SOA
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
SOA ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
SOA ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Solution ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
SOA with ESB
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
SOA with ESB
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
WebService
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
WebService
https://www.w3.org/TR/ws-arch
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Service Discovery
https://www.w3.org/TR/ws-arch
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
WebService
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
WSDL
WebService
UDDI
SOAP
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
WebService Description Language
WebService
Universal Descriptor Discovery Integration
Simple Object Access Protocol
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
REST API
REpresentational State Transfer
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
REST
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
REST
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
REST
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Monolith
N-tier
SOA/
WebService
REST API
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Rise of Microservices
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Microservices
not a silver bullet
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Microservices
no right way to do
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Microservices
not talk about size/LoC
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Microservices
represent a problem domain
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Microservices
scale development, architecture
operation and infrastructure
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Microservices
encapsulate your domain
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Microservices
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Microservices
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Microservices
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Spaghetti services !!
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Design Microservices ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Design for failure
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Design for failure
Nothing will fail
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Evolutionary design
https://www.industriallogic.com/blog/evolutionary-design/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Evolutionary design
Management and technical practice
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Evolutionary design
how we organize people and team
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Evolutionary design
how we organize people and team
plan what to build
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Evolutionary design
how we organize people and team
plan what to build
collaborate
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Evolutionary design
how we organize people and team
plan what to build
collaborate
integrate
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Evolutionary design
how we organize people and team
plan what to build
collaborate
integrate
develop and release
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Evolutionary design
Most valuable practice from Agile
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Evolutionary design
Most valuable practice from Agile
BUT
more people not using it !!
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Why ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
It’s time to change …
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
+
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Evolutionary design
Evolve based on
need, priority, risk and feedback
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Evolutionary design
Collaboration and Integration risk
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Evolutionary design
Integrate early and often
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Evolutionary design
Get rapid feedback
Discover our users essential needs
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Implementation ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://martinfowler.com/articles/microservices.html
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://martinfowler.com/articles/microservices.html
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://martinfowler.com/articles/microservices.html
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Microservice Testing ?
https://martinfowler.com/articles/microservice-testing/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Unit
Integration
Component
Contract
End-to-end
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Unit testing
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Unit testing not guarantee
about the behavior of system
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Integration testing
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
No confidence about
biz requirement are satisfied
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Component testing
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Component testing
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
More high coverage
More confidence
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
More tests ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Usage ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Contract testing
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
End-to-end testing
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Deployment ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://martinfowler.com/articles/microservices.html
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Lead time ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://martinfowler.com/articles/microservices.html
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Reduce Lead time ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
next ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Microservice Ecosystem
https://twitter.com/mcmiller00/status/690894999370633216
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Let’s see more …
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://micro-frontends.org/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://micro-frontends.org/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://micro-frontends.org/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Micro frontend
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://micro-frontends.org/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://micro-frontends.org/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://micro-frontends.org/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://micro-frontends.org/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://micro-frontends.org/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
How to deploy & release ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://medium.freecodecamp.org/an-introduction-to-microservices-2705e7758f9
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Let’s start with DevOps !!
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Why DevOps Matters ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Customers expectation
Expect innovation and speed
Expect services to delivery
value continuously
Expect reliable services/processes
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
BUT …
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Problems in delivery
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Conflict of Interests ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
????
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Low trust create extra steps !!
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Low trust create extra steps !!
http://devops.com/2015/06/22/the-simple-math-of-devops/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
http://www.mindtheproduct.com/2016/02/what-the-hell-are-ci-cd-and-devops-a-cheatsheet-for-the-rest-of-us/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
http://www.mindtheproduct.com/2016/02/what-the-hell-are-ci-cd-and-devops-a-cheatsheet-for-the-rest-of-us/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
http://blog.scottlogic.com/2014/07/07/School-of-Testing.html
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
http://www.craiglarman.com/wiki/downloads/misc/history-of-iterative-larman-and-basili-ieee-computer.pdf
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
CI is about what people do
not about what tools they use
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Discipline to integrate frequently
CI is a practice
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Strive to make small change
CI is a practice
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Strive for fast feedback
CI is a practice
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Continuous Integration
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Continuous Delivery
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Continuous Delivery
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Automate provisioning ?
Automate deployment ?
Automate monitoring ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Traditional development
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Iterative/Agile development
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Lean and DevOps
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
One team approach
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
What isDevOps ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://channel9.msdn.com/Series/DevOps-Fundamentals/Introduction-to-DevOps
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://channel9.msdn.com/Series/DevOps-Fundamentals/Introduction-to-DevOps
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
DevOps definitions
“A movement of people who care about
developing and operating reliable, secure, high
performance systems at scale.”
- Jez Humble -
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
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 -
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
DevOps
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Goals
To improve the delivery of value
for customer & business
Code Build Test Deploy Release Monitor
Idea Customer
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Life cycle
https://www.linkedin.com/pulse/9-critical-steps-devops-transformation-enterprises-sakthi-vadivelu
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Life cycle
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
http://devops.com/2016/03/15/interconnect-2016-culture-matters/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://www.linkedin.com/pulse/9-critical-steps-devops-transformation-enterprises-sakthi-vadivelu
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Principles and Practices
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
DevOps Principles
http://www.telehouse.com/2016/03/devops-how-a-culture-of-empathy-creates-massive-productivity/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Culture => People, Process, Tools
Automation => Infrastructure as Code
Measurement => Measure everything
Sharing => Collaboration/Feedback
DevOps Principles
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
DevOps Practices
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
DevOps culture
https://channel9.msdn.com/Series/DevOps-Fundamentals/Introduction-to-DevOps
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
One team approach
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
DevOps Team Topologies
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://blog.matthewskelton.net/2013/10/22/what-team-structure-is-right-for-devops-to-flourish/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://blog.matthewskelton.net/2013/10/22/what-team-structure-is-right-for-devops-to-flourish/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://blog.matthewskelton.net/2013/10/22/what-team-structure-is-right-for-devops-to-flourish/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://blog.matthewskelton.net/2013/10/22/what-team-structure-is-right-for-devops-to-flourish/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://blog.matthewskelton.net/2013/10/22/what-team-structure-is-right-for-devops-to-flourish/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
No DevOps Team
- problem department -
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
DevOps != Tools
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
But tools enable DevOps
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
DevOps Toolchain
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://xebialabs.com/periodic-table-of-devops-tools/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
7Cs of Happiest DevOps
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Communication and Collaboration
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Better feedback loop
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
People over Process over Tools
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Without automation is 

no DevOps
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Automate testing ?
Automate provisioning ?
Automate deployment ?
Automate build ?
Automate monitoring ?
Automate metrics ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Your time
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Code Build Test Deploy Release Monitor
Idea Customer
1. Manual pipeline
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Code Build Test Deploy Release Monitor
Idea Customer
2. Semi-automated pipeline
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Code Build Test Deploy Release Monitor
Idea Customer
3. Automated pipeline
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Code Build Test Deploy Release Monitor
Idea Customer
4. Fully-automated pipeline
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Summary
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Your DevOps transformation …
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Discover Design Deliver
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Continuous Improvement
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
One team approach
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
DevOps !!
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
How to deploy & release ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
How to deploy & release ?
Infrastructure ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
How to deploy & release ?
Infrastructure ?
Provisioning ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Rise of containerization
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Why container ?
Software industry has changed !!
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Monolith architecture
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Failure in Monolith !!
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Scale Monolith !!
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Microservice architecture
https://martinfowler.com/articles/microservices.html
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Microservice architecture
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Why container ?
We have problem !!
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Problem
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Problem
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Solution
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Solution
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Container vs. Virtual machine
https://www.docker.com/what-container
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Virtual Machine
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Container
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Virtual Machine
Abstraction of physical hardware
Full copy of OS and libraries
Slow to boot
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Container
Abstraction at the app level
Share OS kernel
Isolate process
Less space than Virtual Machine
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Docker
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Container vs Virtual machine
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Container vs Virtual machine
VM Container
การใ๡้งาน resources มาก น้อย
ความเร็วของการ start/
boot
๡้า เร็ว
ความเร็วในการทํางาน ๡้า เร็ว
พื้นที่จัดเก็บ มาก น้อย
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Container vs. Process
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Container vs. Process
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
How to manage containers ?
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Distributed management
Orchestration
&
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
https://pivotal.io/cloud-native
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
12-factors app
https://12factor.net/
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
12-factors app ?
Methodology for building
software-as-a-service apps
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
12-factors app ?
Use declarative formats
for setup automation
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
12-factors app ?
To minimize time & cost for new developer
to joining the project
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
12-factors app ?
Clean contract with operating system
Maximum portability between environment
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
12-factors app ?
Suitable for deploy on cloud platform
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
12-factors app ?
Minimize divergence between
development and production
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
12-factors app ?
Enable continuous deployment
for maximize agility
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
12-factors app ?
Scale up without significant changes
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Build Release Run
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Build
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Release
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Run
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
1. Codebase
One codebase tracked in version control
and many deploys
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
2. Dependencies
Explicit declaration and isolate dependencies
Do not copy dependencies !!
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
3. Config
Store config in the environment
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
4. Backing services
Treat backing services as attached resources
Local vs 3-party services
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
4. Backing services
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
5. Build, release, run
Separate build and run stages
Impossible to make changes to code at runtime
Easy to rollback !!
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
6. Processes
Execute the app as one or more
stateless processes
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
7. Port binding
Export services via port binding
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
8. Concurrency
Scale out via the process model
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
8. Concurrency
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
9. Disposability
Maximize robustness with
fast startup and graceful shutdown
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
10. Dev/prod parity
Keep development, staging and production
as similar as possible
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
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
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
11. Logs
Logs are the stream of aggregated
Time-ordered events
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
11. Logs
Logs provide visibility into
the behavior of a running app
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
12. Admin processes
Run admin/management tasks
as one-off processes
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
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
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่
Thank you & Question
บริษัท สยาม๡ํานาญกิจ จํากัด และเพื่อนพ้องน้องพี่

Weitere ähnliche Inhalte

Ähnlich wie Cloud Native App

แนวทางในการพัฒนาระบบเทคโนโลยีสารสนเทศกับมหาวิทยาลัยไทย
แนวทางในการพัฒนาระบบเทคโนโลยีสารสนเทศกับมหาวิทยาลัยไทยแนวทางในการพัฒนาระบบเทคโนโลยีสารสนเทศกับมหาวิทยาลัยไทย
แนวทางในการพัฒนาระบบเทคโนโลยีสารสนเทศกับมหาวิทยาลัยไทย
IMC Institute
 

Ähnlich wie Cloud Native App (20)

React in the right way
React in the right wayReact in the right way
React in the right way
 
The Beauty of BAD code
The Beauty of  BAD codeThe Beauty of  BAD code
The Beauty of BAD code
 
Secure Test-Driven Development
Secure Test-Driven DevelopmentSecure Test-Driven Development
Secure Test-Driven Development
 
ECIT Training
ECIT TrainingECIT Training
ECIT Training
 
Meetup :: Update Elastic Stack 5.0
Meetup :: Update Elastic Stack 5.0Meetup :: Update Elastic Stack 5.0
Meetup :: Update Elastic Stack 5.0
 
เอกสารบรรยาย ขับเคลื่อนธุรกิจให้เติบโตอย่างยั่งยืน (คุณนาวิก นำเสียง)
เอกสารบรรยาย ขับเคลื่อนธุรกิจให้เติบโตอย่างยั่งยืน (คุณนาวิก นำเสียง)เอกสารบรรยาย ขับเคลื่อนธุรกิจให้เติบโตอย่างยั่งยืน (คุณนาวิก นำเสียง)
เอกสารบรรยาย ขับเคลื่อนธุรกิจให้เติบโตอย่างยั่งยืน (คุณนาวิก นำเสียง)
 
Continuous Delivery with fastlane
Continuous Delivery with fastlaneContinuous Delivery with fastlane
Continuous Delivery with fastlane
 
Oss freeware-publish
Oss freeware-publishOss freeware-publish
Oss freeware-publish
 
Confession of an Agile Addict
Confession of an Agile AddictConfession of an Agile Addict
Confession of an Agile Addict
 
Business Model Canvass for NANO MBA 6 26 Jul 2015
Business Model Canvass for NANO MBA 6 26 Jul 2015Business Model Canvass for NANO MBA 6 26 Jul 2015
Business Model Canvass for NANO MBA 6 26 Jul 2015
 
แนวทางในการพัฒนาระบบเทคโนโลยีสารสนเทศกับมหาวิทยาลัยไทย
แนวทางในการพัฒนาระบบเทคโนโลยีสารสนเทศกับมหาวิทยาลัยไทยแนวทางในการพัฒนาระบบเทคโนโลยีสารสนเทศกับมหาวิทยาลัยไทย
แนวทางในการพัฒนาระบบเทคโนโลยีสารสนเทศกับมหาวิทยาลัยไทย
 
INET young webmaster camp 8
INET young webmaster camp 8INET young webmaster camp 8
INET young webmaster camp 8
 
Design pattern with Java 8
Design pattern with Java 8Design pattern with Java 8
Design pattern with Java 8
 
Creative thinking tool for daily Work_Talad Nad Khawm Roo #9
Creative thinking tool for daily Work_Talad Nad Khawm Roo #9Creative thinking tool for daily Work_Talad Nad Khawm Roo #9
Creative thinking tool for daily Work_Talad Nad Khawm Roo #9
 
Th Developing communication online onground
Th Developing communication online ongroundTh Developing communication online onground
Th Developing communication online onground
 
Technique to Delivery Information via the Internet
Technique to Delivery Information via the InternetTechnique to Delivery Information via the Internet
Technique to Delivery Information via the Internet
 
Agile Process
Agile ProcessAgile Process
Agile Process
 
Lean covid19 210609 DIProm MOI
Lean covid19 210609 DIProm MOILean covid19 210609 DIProm MOI
Lean covid19 210609 DIProm MOI
 
โครงการ
โครงการโครงการ
โครงการ
 
Clouds, big data, and smart assets
Clouds, big data, and smart assetsClouds, big data, and smart assets
Clouds, big data, and smart assets
 

Mehr von Somkiat Puisungnoen

Mehr von Somkiat Puisungnoen (18)

Next of Java 2022
Next of Java 2022Next of Java 2022
Next of Java 2022
 
Sck spring-reactive
Sck spring-reactiveSck spring-reactive
Sck spring-reactive
 
Part 2 :: Spring Boot testing
Part 2 :: Spring Boot testingPart 2 :: Spring Boot testing
Part 2 :: Spring Boot testing
 
vTalk#1 Microservices with Spring Boot
vTalk#1 Microservices with Spring BootvTalk#1 Microservices with Spring Boot
vTalk#1 Microservices with Spring Boot
 
Lesson learned from React native and Flutter
Lesson learned from React native and FlutterLesson learned from React native and Flutter
Lesson learned from React native and Flutter
 
devops
devops devops
devops
 
Angular :: basic tuning performance
Angular :: basic tuning performanceAngular :: basic tuning performance
Angular :: basic tuning performance
 
Shared code between projects
Shared code between projectsShared code between projects
Shared code between projects
 
Distributed Tracing
Distributed Tracing Distributed Tracing
Distributed Tracing
 
Manage data of service
Manage data of serviceManage data of service
Manage data of service
 
RobotFramework Meetup at Thailand #2
RobotFramework Meetup at Thailand #2RobotFramework Meetup at Thailand #2
RobotFramework Meetup at Thailand #2
 
Visual testing
Visual testingVisual testing
Visual testing
 
Wordpress for Newbie
Wordpress for NewbieWordpress for Newbie
Wordpress for Newbie
 
Sck Agile in Real World
Sck Agile in Real WorldSck Agile in Real World
Sck Agile in Real World
 
Clean you code
Clean you codeClean you code
Clean you code
 
SCK Firestore at CNX
SCK Firestore at CNXSCK Firestore at CNX
SCK Firestore at CNX
 
Git as NoSQL
Git as NoSQLGit as NoSQL
Git as NoSQL
 
Automation test for Android
Automation test for AndroidAutomation test for Android
Automation test for Android
 

Cloud Native App