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
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Agnostic Continuous Delivery
1. 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
9. 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
16. CI and CD PHP
PHPDepend
PHPLoc
PHPUnit
PHPCS
PHPMD
PHPDox
PHPBeautifier
PHPPear
Sonatype
Nexus
RPM repos
SVN
ECLIPSE
Jenkins
Rundeck
Applications
Ansible
Infras
SVN
C
Sonar
C
16
17. CI and CD JAVA
Sonatype
Nexus
RPM repos
SVN
ECLIPSE
Jenkins
Rundeck
Applications
Ansible
Infras
SVN
C
Sonar
C
17
18. 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
19. 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
24. 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
27. 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
28. What’s uncool
• Fight Luddites
• Rundeck GUI
• No miracle for rollback
process
• No nice Ansible output in
Rundeck Console
28
30. 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