agnostic continuous delivery

Post on 15-Dec-2014

1.286 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

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

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

Agenda

•REMINDER

•CONTEXT

•GOAL

•PROCESS

•POC / COMPONENTS

•COOL / UNCOOL

•CONCLUSION

2

REMINDER

3

Context : WHO?

•A TOP 3 French Telecom Company

4

Context : WHAT?

•Company in a DIGITIZING Process

5

CONTEXT WHY ?

•To Stay Competitive and responsive

6

CONTEXT : HOW ?

•By Optimizing the TTM

7

GOALContinuous Delivery

8

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

Recipe : A DevOps attitude

10

Recipe : PeopleM

otiv

ated S

ponsors

Convinced Dev and OpsC

ertif

ied U

rbanis

ts

11

Methods

Dev Ops

12

Recipe Components

•Continuous Integration

CI

13

Recipe Components

•Automatic Delivery / Deployment

GUI for users

Deploy Framework

Ansible Extra Modules

Ansible launcher in Rundeck

14

Focus on Continuous Delivery

15

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

CI and CD JAVA

SonatypeNexus

RPM repos

SVN

ECLIPSE

Jenkins

Rundeck

Applications

Ansible

Infras

SVN

C

Sonar

C

17

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

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

Screen Shots

Application Manifest 20

Screen Shots

Manifest Recipe

21

Screen Shots

Deploy Recipe 22

Screen Shots

Shell 23

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

Screen Shots

Variables definition 25

Screen Shots

Resources ProvidersExecution

26

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

What’s uncool• Fight Luddites

• Rundeck GUI

• No miracle for rollback process

• No nice Ansible output in Rundeck Console

28

WHAT’S Next?

•AWX ?

•Integration of new applications

•Deployment portal

•Create a service catalog

•provision Vms / Env

29

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

31

top related