OpenSouthCode 2016 - Accenture DevOps Platform 2016-05-07
-
Upload
jorge-hidalgo -
Category
Software
-
view
939 -
download
1
Transcript of OpenSouthCode 2016 - Accenture DevOps Platform 2016-05-07
Accenture DevOps PlatformOpen Source Continuous Delivery Platform7th May 2016
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
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
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
Copyright © 2016 Accenture All rights reserved.
modular
5
What is ADOP?Accenture DevOps Platform
best of breedcloud-based opinionated open source
HACKERS WELCOMED!
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
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
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
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
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!
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
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
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
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!
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
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
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
Copyright © 2016 Accenture All rights reserved. 18
Demo Time
Copyright © 2016 Accenture All rights reserved. 19
THANK YOU!
https://github.com/Accenture/adop-docker-compose