Transcript
Page 1: import continuous.delivery.*;  - Jevgeni Kabanov

Jevgeni Kabanov@ekabanov

CEO, ZeroTurnaround

import continuous.delivery.*

Page 2: import continuous.delivery.*;  - Jevgeni Kabanov

Subtitle

Page 3: import continuous.delivery.*;  - Jevgeni Kabanov

Fedex process

Page 4: import continuous.delivery.*;  - Jevgeni Kabanov

•PackageFedex process

Page 5: import continuous.delivery.*;  - Jevgeni Kabanov

•Package

•Dropoff

Fedex process

Page 6: import continuous.delivery.*;  - Jevgeni Kabanov

•Package

•Dropoff

•Transfer

Fedex process

Page 7: import continuous.delivery.*;  - Jevgeni Kabanov

•Package

•Dropoff

•Transfer

•Delivery

Fedex process

Page 8: import continuous.delivery.*;  - Jevgeni Kabanov

•Package

•Dropoff

•Transfer

•Delivery

•Profit!

Fedex process

Page 9: import continuous.delivery.*;  - Jevgeni Kabanov

Java EE

Page 10: import continuous.delivery.*;  - Jevgeni Kabanov

•Package

Java EE

Page 11: import continuous.delivery.*;  - Jevgeni Kabanov

•Package•Test

Java EE

Page 12: import continuous.delivery.*;  - Jevgeni Kabanov

•Package•Test •Approve

Java EE

Page 13: import continuous.delivery.*;  - Jevgeni Kabanov

•Package•Test •Approve•Deploy

Java EE

Page 14: import continuous.delivery.*;  - Jevgeni Kabanov

•Package•Test •Approve•Deploy •Profit!

Java EE

Page 15: import continuous.delivery.*;  - Jevgeni Kabanov

•How do you package the application? •Where did it come from?•Where does it go?•How does it get deployed?•What exactly is in prod now?

Questions?

Page 16: import continuous.delivery.*;  - Jevgeni Kabanov

Fedex FAIL

Page 17: import continuous.delivery.*;  - Jevgeni Kabanov

Software FAIL

Page 18: import continuous.delivery.*;  - Jevgeni Kabanov
Page 19: import continuous.delivery.*;  - Jevgeni Kabanov

How do we fix this?

Page 20: import continuous.delivery.*;  - Jevgeni Kabanov

•Failure•Downtime

Key Problems

Page 21: import continuous.delivery.*;  - Jevgeni Kabanov

Solution:Continuous Delivery

Page 22: import continuous.delivery.*;  - Jevgeni Kabanov

•Automate•Record•Test•Recover

Philosophy

Page 23: import continuous.delivery.*;  - Jevgeni Kabanov

•Orchestration Platform•Delivery Manager•Artifact Repository

The Pipeline

Page 24: import continuous.delivery.*;  - Jevgeni Kabanov

Jenkins(OSS Continuous Integration Server)

Page 25: import continuous.delivery.*;  - Jevgeni Kabanov

Orchestration platform

Page 26: import continuous.delivery.*;  - Jevgeni Kabanov

•Logging•Notifications•Clustered•GUI•Authentication•Authorization

Jenkins

Page 27: import continuous.delivery.*;  - Jevgeni Kabanov

LiveRebel(Commercial Delivery Manager)

Page 28: import continuous.delivery.*;  - Jevgeni Kabanov

•No Downtime•Failsafe Delivery & Recovery•Wide Ecosystem Support•Exact Knowledge•Zero Configuration

What’s so different?

Page 29: import continuous.delivery.*;  - Jevgeni Kabanov

•Deploy/Undeploy•Update•No downtime•No lost sessions•Plain old restarts•Edit in place

What can you do with LiveRebel?

Page 30: import continuous.delivery.*;  - Jevgeni Kabanov

•No good OSS alternative•Supports many containers•No downtime updates•Integrates with OSS projects

Why LiveRebel?

Page 31: import continuous.delivery.*;  - Jevgeni Kabanov

Nexus(OSS/Commercial Artifact Repository)

Page 32: import continuous.delivery.*;  - Jevgeni Kabanov

•Repositories•Authentication•Authorization•Logging

Key Features

Page 33: import continuous.delivery.*;  - Jevgeni Kabanov

Now let’s build a pipeline!

Page 34: import continuous.delivery.*;  - Jevgeni Kabanov

Build Test QA Prod

The Pipeline / The Repos

Page 35: import continuous.delivery.*;  - Jevgeni Kabanov

Tomcat #1

Tomcat #2Tomcat #3

Apache LB

Redis #1Redis #1Redis #3

LiveRebelNexus

Jenkins

Page 36: import continuous.delivery.*;  - Jevgeni Kabanov

•Build the artifact•Upload to “build” repository

Build

Page 37: import continuous.delivery.*;  - Jevgeni Kabanov

•Download “build” artifact•Create a new test deployment•Run acceptance tests•Upload “test” artifact

Test

Page 38: import continuous.delivery.*;  - Jevgeni Kabanov

•Download “test” artifact•Send email to QA to begin testing•Upload “qa” artifact•When QA finished!•Clean up test deployment

QA

Page 39: import continuous.delivery.*;  - Jevgeni Kabanov

•Download “qa” artifact•Upload “rc” artifact•Send email to Biz for decision•Deploy to production

PROD

Page 40: import continuous.delivery.*;  - Jevgeni Kabanov

•Database•Configuration & Environment•Tests & Monitoring

Things Not Covered

Page 41: import continuous.delivery.*;  - Jevgeni Kabanov

•How do you package the application? •Where did it come from?•Where does it go?•How does it get deployed?•What exactly is in prod now?

Questions?

Page 42: import continuous.delivery.*;  - Jevgeni Kabanov

•Jenkins jobs represent the workflow•Nexus is a sync-point for long-running workflows•LiveRebel manages apps and users •Manual flows with email/REST•Tracking with scripts & text files

Conclusions

Page 43: import continuous.delivery.*;  - Jevgeni Kabanov

Q & Ahttp://0t.ee/importcd


Recommended