better delivery with devops driven development

67
Better Delivery with DevOps Driven Development Jirayut Nimsaeng (Dear) Thailand Practical Software Engineering Conference (TPSE 2015) August 22, 2015 @ Software Park https://en.wikipedia.org/wiki/DevOps#/media/File:Devops.svg

Upload: jirayut-nimsaeng

Post on 11-Apr-2017

1.232 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Better delivery with DevOps Driven Development

Better Deliverywith

DevOps Driven Development

Jirayut Nimsaeng (Dear)

Thailand PracticalSoftware EngineeringConference (TPSE 2015)

August 22, 2015 @ Software Park

https://en.wikipedia.org/wiki/DevOps#/media/File:Devops.svg

Page 2: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

#whoami● Jirayut Nimsaeng (Dear)● The Builder at ● Interested in Cloud and

Open Source Technology● Agile Practitioner

Page 3: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Who are you?● Developer● Tester● Infrastructure● Manager

Page 4: Better delivery with DevOps Driven Development

https://www.flickr.com/photos/aperturismo/4488250788/in/photostream/

Product Manager

Page 5: Better delivery with DevOps Driven Development

http://www.slideshare.net/realgenekim/why-everyone-needs-devops-now

Developer

Page 6: Better delivery with DevOps Driven Development

https://gigaom.com/2011/04/26/facts-and-figures-behind-greenpeace%E2%80%99s-green-data-center-report/

Operation

Page 7: Better delivery with DevOps Driven Development

https://en.wikipedia.org/wiki/Brock_Lesnar#/media/File:Lesnar_kimura_lock.jpg

Page 8: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Problem

Page 9: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Classic Release

Requirement

Design

Implementation

Testing

Release

Waterfall

Page 10: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Symptoms● Always have defects in production● Couldn't fix defect quickly● Blaming/finger pointing● Blocker between team● No manual● Quality of life

Page 11: Better delivery with DevOps Driven Development
Page 12: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Good Problem● We have some clients and revenue● We use FTP to setup product for client● We have to customize code for each client

What happen if we have

a lot of client coming at the same time?

Page 13: Better delivery with DevOps Driven Development

https://commons.wikimedia.org/wiki/File:Nanyang_Walk_slow_lettering_20060317.JPG

Page 14: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

So what exactly is DevOps

Page 15: Better delivery with DevOps Driven Development

https://commons.wikimedia.org/wiki/File:US_Navy_070829-N-4965F-015_Flames_push_water_from_a_fire_hose_back_as_a_federal_firefighter_assigned_to_Navy_Region_Hawaii_Federal_Fire_Department_combats_a_fire_during_an_aircraft_firefighting_training_evolution_with_the_Mobile.jpg

Page 16: Better delivery with DevOps Driven Development
Page 17: Better delivery with DevOps Driven Development
Page 18: Better delivery with DevOps Driven Development

Developments Operations

Page 19: Better delivery with DevOps Driven Development

Source: John Allspaw (@allspaw) and Paul Hammond (@ph)

Ops who think like devsDevs who think like ops

Page 20: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

How to start?

Page 21: Better delivery with DevOps Driven Development

There's no silver bullet

Page 22: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

DevOps Driven DevelopmentDDD is the way to improve technical practice and process in your company to get better product delivery by make DevOps focus on doing DevOps then improve and scale it

Page 23: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Process1) DDD Planning Process

2)DDD Operation Process

3)DDD Scaling Process

Page 24: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

1) DDD planning process● Find dedicated DevOps person● Make DevOps to understand business from

developer develop software to release to production

● Spike and plan the ideal development process flow

Page 25: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

How to find a DevOps● From DevOps Consulting company● Hire experienced DevOps● Build one from your team

– From Developer or Operation?

Page 26: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Ops who think like devsor

Devs who think like ops

Page 27: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Dev

Local Dev

GitCI/CDServer

Feature TestServer

Pre-ProductionServers

ProductionServers

MonitorServer

Docker Registry

DataServer

BuilderServer

QA U

Automated TestServer

CI/CDAgents

Ideal Development Process Flow

Page 28: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

2) DDD operation process● Find the pilot project. Should be smallest as

possible● Focus on doing DevOps on pilot project● Make it fast, show it early, get feedback and

continually improve it

Page 29: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Practice that DevOps needs to know

Page 30: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

3) DDD scaling process● Get team to use and understand it. It don't have to

all done.● Make it transparent● Do knowledge sharing and delegate DevOps task

to the other people to do with other projects

Page 31: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Page 32: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

http://www.chau.cc/the-deploy-button/

Page 33: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Habit of DevOps● Find ways to collaborate – involve others early● Communicate● Find ways to automate and make self-service● Become metrics driven● Learn new things, continually improve● Understand the larger business goals● Experiment – choose a test case as a pilot● Then document and spread best practices

http://www.slideshare.net/mxyzplk/devops-101

Page 34: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Benefit

Page 35: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Reduce the Risk

Page 36: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Release it frequently

Split your product

Optimize business value

$$$

$Split time

January April

Page 37: Better delivery with DevOps Driven Development

https://www.flickr.com/photos/kb35/349762358/sizes/o/

Page 38: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Supported Culture

Page 39: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Agile

Page 40: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Cross-functional Team

DevOps Team

Server Team

Dev Team

Tester Team

User needs

Specialize Tasks

Page 41: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Failure Avoidance Failure Recovery

Fail fast and recovery

Page 42: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Celebrate failure

Page 43: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Task flow

100% resource utilization

= 0% flow

Page 44: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

QA

Page 45: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

DevOps Practice

Page 46: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Page 47: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

What is Git?● It is version control for any plain text● Distributed version control● The most important thing to use git is planning

branch strategy

Page 48: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Git Flow

Page 49: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

GitHub Flow

Page 50: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Page 51: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

What is Jenkins?● Continuous Integration and Delivery tool● A lot of features and very flexible● Can integrate with a lot of third party● A lot of plug-ins

Page 52: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Build Pipeline

Page 53: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Page 54: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Page 55: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Robot Framework

Page 56: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Cloud

Learn how to

Automated it

Page 57: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Centralize Log System

Page 58: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Monitoring System

Page 59: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Visualizer

Page 60: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Page 61: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Developer Problems

Developer Local Test QA

Production

Page 62: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

What Developer needs

Production-like Quick Repeatable

Page 63: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Docker can● Deploy reliably & consistently● Everything will be exactly the same

– Distros– Software versions– Library dependencies

● If it works locally, it will work everywhere

Page 64: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Docker can● Deploy efficiently

– Laptop can run 10-100 containers easily– Server can run 10-1000 containers

● Containers can run at native speeds– http://www.slideshare.net/BodenRussell/kvm-and-

docker-lxc-benchmarking-with-openstack

Page 65: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Containers vs. VMs

Server

Host OS

Hypervisor

GuestOS

GuestOS

GuestOS

Bins/Libs

AppA1

Bins/Libs

AppB1

Bins/Libs

AppA2

VM

Server

Host OS

Bins/Libs Bins/Libs

App A

1

App A

2

App B

1

App B

2

App B

3

Docker daem

o n

Container

Containers are isolated,but share OS and, whereappropriate, bins/libraries

Page 66: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

Continuous Delivery with DockerDockerRegistry

DBBackupServer

GitlabServer

Gitlab CIServer

Gitlab CI Runner

Docker Engine

Test/Prod Server

Docker Engine

MySQLDockerfile

JoomlaDockerfile

MyS

QL Im

ageM

ySQ

L Image

Joomla Im

ageJoom

la Image

Joomla C

ontainer

MyS

QL C

ontainer

1. Push Code

2. Trigger

3. Trigger

4. Get

5. Build5.1. Get

6. Push Joomla Docker Image

7. Build7.1. Import

8. Push MySQL Docker Image

9. Trigger

10. PullDocker Image

12. Acceptance Test3.5. Unit Test

11. Deploy

Page 67: Better delivery with DevOps Driven Development

Jirayut NimsaengTPSE 2015

August 22, 2015 @ Software Park

“DevOps isn’t something you can buyit’s something you have to do, and youhave to do it yourself. “

John Michelsen, CTO, CA Technologies