agnostic continuous delivery

31
Agnostic Continuous Delivery Feedback on the implementation of an architecture allowing to do some Continuous Delivery in both PHP and Java Hervé Leclerc - Alter Way

Upload: herve-leclerc

Post on 15-Dec-2014

1.288 views

Category:

Technology


0 download

DESCRIPTION

Feedback on the implementation of an architecture allowing to do some Continuous Delivery in both PHP and Java environments for a leading company in the Telecom Industry. We will describe the methods and tools we have implemented as well as the limitations and difficulties we have encountered. Keywords : Industrialization, DevOps, Continuous Delivery, Ansible, Rundeck, Infrastructure As Code

TRANSCRIPT

Page 1: Agnostic Continuous Delivery

Agnostic Continuous Delivery

Feedback on the implementation of an architecture allowing to do some Continuous Delivery in both PHP and Java

Hervé Leclerc - Alter Way

Page 2: Agnostic Continuous Delivery

Agenda

•REMINDER

•CONTEXT

•GOAL

•PROCESS

•POC / COMPONENTS

•COOL / UNCOOL

•CONCLUSION

2

Page 3: Agnostic Continuous Delivery

REMINDER

3

Page 4: Agnostic Continuous Delivery

Context : WHO?

•A TOP 3 French Telecom Company

4

Page 5: Agnostic Continuous Delivery

Context : WHAT?

•Company in a DIGITIZING Process

5

Page 6: Agnostic Continuous Delivery

CONTEXT WHY ?

•To Stay Competitive and responsive

6

Page 7: Agnostic Continuous Delivery

CONTEXT : HOW ?

•By Optimizing the TTM

7

Page 8: Agnostic Continuous Delivery

GOALContinuous Delivery

8

Page 9: Agnostic Continuous Delivery

Goal Constraints

•Solaris on prod - Linux on other env

•Non intrusive solutions (OPS)

•Low learning curve (DEV)

•Code Agnostic (JAVA / PHP)

•Flexible and figure out to deal with existing environments (CI in place)

•Open Source, and innovative

•Sustainable

9

Page 10: Agnostic Continuous Delivery

Recipe : A DevOps attitude

10

Page 11: Agnostic Continuous Delivery

Recipe : PeopleM

otiv

ated S

ponsors

Convinced Dev and OpsC

ertif

ied U

rbanis

ts

11

Page 12: Agnostic Continuous Delivery

Methods

Dev Ops

12

Page 13: Agnostic Continuous Delivery

Recipe Components

•Continuous Integration

CI

13

Page 14: Agnostic Continuous Delivery

Recipe Components

•Automatic Delivery / Deployment

GUI for users

Deploy Framework

Ansible Extra Modules

Ansible launcher in Rundeck

14

Page 15: Agnostic Continuous Delivery

Focus on Continuous Delivery

15

Page 16: Agnostic Continuous Delivery

CI and CD PHP

PHPDepend

PHPLoc

PHPUnit

PHPCS

PHPMD

PHPDox

PHPBeautifier

PHPPear

SonatypeNexus

RPM repos

SVN

ECLIPSE

Jenkins

Rundeck

Applications

Ansible

Infras

SVN

C

Sonar

C

16

Page 17: Agnostic Continuous Delivery

CI and CD JAVA

SonatypeNexus

RPM repos

SVN

ECLIPSE

Jenkins

Rundeck

Applications

Ansible

Infras

SVN

C

Sonar

C

17

Page 18: Agnostic Continuous Delivery

Deployment Workflow

Get Artifact from Nexus

Deployment request

Pull recipes, inventory, manifest from SVN repos

Check nodes with application manifest

Update nodes

Deploy simultaneously on nodes

Checks

Commit Rollback

OK

OK

KO

KO

18

Page 19: Agnostic Continuous Delivery

Why Ansible ?

• unlike puppet and chef Ansible is agent less. No need to bootstrap nodes

• works with SSH protocol

• can be used in pull or push mode

• Easy Learning curve

• Can handle both Configuration management and application deployment

• Recipes can read by :

• Dev / Ops,

• Project Supervisor / Project Owner

19

Page 20: Agnostic Continuous Delivery

Screen Shots

Application Manifest 20

Page 21: Agnostic Continuous Delivery

Screen Shots

Manifest Recipe

21

Page 22: Agnostic Continuous Delivery

Screen Shots

Deploy Recipe 22

Page 23: Agnostic Continuous Delivery

Screen Shots

Shell 23

Page 24: Agnostic Continuous Delivery

Why Rundeck ?

•An open source tool to automate OPS jobs

•Create simple user interfaces to launch jobs

•REST API

•Jenkins plugin

•A simple solution until AWX

24

Page 25: Agnostic Continuous Delivery

Screen Shots

Variables definition 25

Page 26: Agnostic Continuous Delivery

Screen Shots

Resources ProvidersExecution

26

Page 27: Agnostic Continuous Delivery

What’s Cool• All the scripts and recipe are

Versioned in repo

• All the scripts and recipes are fetched from repos before execution

• Inventory files are kept in repo

• Application Manifest

• used to check if the infrastructure can run application

• Describe the application in human language

27

Page 28: Agnostic Continuous Delivery

What’s uncool• Fight Luddites

• Rundeck GUI

• No miracle for rollback process

• No nice Ansible output in Rundeck Console

28

Page 29: Agnostic Continuous Delivery

WHAT’S Next?

•AWX ?

•Integration of new applications

•Deployment portal

•Create a service catalog

•provision Vms / Env

29

Page 30: Agnostic Continuous Delivery

Conclusion

• POC is in production,

• The main thing is a question of culture

• Start by small projects with a solid devops team,

• Be humble,

• You will need Time,

• You must have convictions,

• You will need perseverance

30

Page 31: Agnostic Continuous Delivery

31