OpenSouthCode 2016 - Accenture DevOps Platform 2016-05-07

19
Accenture DevOps Platform Open Source Continuous Delivery Platform 7 th May 2016

Transcript of OpenSouthCode 2016 - Accenture DevOps Platform 2016-05-07

Page 1: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

Accenture DevOps PlatformOpen Source Continuous Delivery Platform7th May 2016

Page 2: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

2Copyright © 2016 Accenture All rights reserved.

Who Am I?

Jorge Hidalgo @_deors

Software Engineering Manager - Senior Technology ArchitectAccenture Delivery Centre in Spain, Malaga

Global Java Professional Community Co-Lead in AccentureCustom Distributed, Architecture & DevOps Lead in Spain DC

Father of two children, husband, whistle player, video gamer, sci-fi ‘junkie’, Star Wars ‘addict’, Lego ‘padawan’, Raspberry Pi fan...

https://deors.wordpress.com

Page 3: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

Copyright © 2016 Accenture All rights reserved. 3

What is DevOps?DevOps is a movement dedicated to promote collaboration, eliminating friction

between Development and Operations One Common Goal

Development Operations

DevO

ps

Dev wants change Ops wants stability

Everyone wants...Stable and operable softwareConsistent and optimised release processConformance to infrastructure and platform standards

Low risk, high throughput of changeConfident code and software integrityHighly available and predictable environments

Page 4: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

Copyright © 2016 Accenture All rights reserved. 4

DevOps Principles

Solid configurationmanagement practices

Continuous delivery ofbusiness value (Lean IT)

Automated tests, early and oftenProduction-like environments

PipelinesContinuous delivery orchestration

Fine grained architectureMicroservices

Collaboration and empathy No silos or blame-game

Zero-touchbuild & deploy

Elastic supply of resourcesCloud

Robust design & resiliencyGradual degradationOpportunistic experimentationContinuous improvement

Page 5: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

Copyright © 2016 Accenture All rights reserved.

modular

5

What is ADOP?Accenture DevOps Platform

best of breedcloud-based opinionated open source

HACKERS WELCOMED!

Page 6: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

Copyright © 2016 Accenture All rights reserved. 6

ADOP Internals

ADOP fifth generation – based on Docker containers

Core tools encapsulated as loosely coupled Docker images

Independent release cycles, anti-fragile design

Modular structure and “cartridge” concept

Cartridges extend functionality in the core

Page 7: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

Copyright © 2016 Accenture All rights reserved. 7

Building Blocks – The Usual Suspects

Jenkins

continuous integration /

delivery server

Gerrit

git repo / code review

SonarQube

code inspection / quality

dashboard

Selenium

web browser testing

Nexus

binary artefact repo

NGINX

web / proxy server

OpenLDAP

directory server

ELK

log monitoring

Sensu - Uchiwa

infra/app monitoring

Page 8: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

Copyright © 2016 Accenture All rights reserved. 8

Building Blocks – The Usual Suspects

Jenkins

continuous integration /

delivery server

Gerrit

git repo / code review

SonarQube

code inspection / quality

dashboard

Selenium

web browser testing

Nexus

binary artefact repo

NGINX

web / proxy server

OpenLDAP

directory server

ELK

log monitoring

Sensu - Uchiwa

infra/app monitoring

Page 9: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

Copyright © 2016 Accenture All rights reserved. 9

Where can ADOP run?

Anywhere where Docker runs

Local VM (boot2docker and Oracle VirtualBox)

Amazon Web Services EC2 with Linux host

Microsoft Azure IaaS with Linux host

Microsoft Hyper-V hypervisor with Linux host

VMware hypervisor with Linux host

Page 10: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

Copyright © 2016 Accenture All rights reserved. 10

Standing up the Platform

Go to https://github.com/Accenture/adop-docker-compose

Clone the repository to a local directory of your choice

...or download a Zip

...or fork it to your personal GitHub account

Fork it if you plan to contribute with enhancements or fixes!

Page 11: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

Copyright © 2016 Accenture All rights reserved. 11

Standing up the Platform

There is a README file... TL;DR

Create a VPC in Amazon Web Services account

Create a CLI pair of keys in IAM

Execute command:

./quickstart.sh -t aws -m my-adop -c vpc-xxxxxxxx

Keep calm and watch the logs

Page 12: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

Copyright © 2016 Accenture All rights reserved. 12

Standing up the Platform

For local installation Oracle VirtualBox is needed

It comes with Docker Toolbox if you don’t have it already

Execute command:

./quickstart.sh -t local -m my-adop

Strongly recommended to alter the scripts and use 8 GB of RAM

Page 13: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

Copyright © 2016 Accenture All rights reserved. 13

What Happens Backstage?

Docker machine (a host) is created if it does not exist

Up to date images are pulled from Docker Hub

Containers are created and executed

Jenkins is initialised with example pipelines and management jobs

Certificates are exchanged between Jenkins master and slave

Page 14: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

Copyright © 2016 Accenture All rights reserved. 14

What Happens Backstage?

Jenkins comes pre-loaded with just one job: Load_Platform

When it runs, pulls job DSLs from:

https://github.com/Accenture/adop-platform-management

The location above is overridable

Jobs are stored in Git repo in Gerrit

You can update the platform to the latest and greatest without destroying the machine or losing data!

Page 15: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

Copyright © 2016 Accenture All rights reserved. 15

What Happens Backstage?

The Platform Management jobs do the following:

Loads the cartridge list (link)

Configures Gerrit (link)

Generates an example pipeline (Spring Pet Clinic by default)

There is a job available to generate multiple workspaces

All generated workspaces and jobs are designed for multitenancy

Page 16: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

Copyright © 2016 Accenture All rights reserved. 16

What Comes with the Example Pipeline

Build and packaging automation

Test automation: unit, integration (UI/BDD), stress, security

Code inspection

Deployment automation

Environment provisioning automation

Dev. Source Control

Code Review Build Code

Quality Deploy Testing A-B Test

Page 17: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

Copyright © 2016 Accenture All rights reserved. 17

Is That All?

Yes!

Very easy to stand up

Pre-loaded with exemplar configuration

Update without impacting state

Update individual images or the whole platform

Update Jenkins platform management or individual job templates

Page 18: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

Copyright © 2016 Accenture All rights reserved. 18

Demo Time

Page 19: OpenSouthCode 2016  - Accenture DevOps Platform 2016-05-07

Copyright © 2016 Accenture All rights reserved. 19

THANK YOU!

https://github.com/Accenture/adop-docker-compose