SlideShare a Scribd company logo
1 of 44
Download to read offline
PimpYour
Pipeline
Central
Configuration
Management
Jens Saade, youngculture
April 25th 2015, Iasi CodeCamp Romania
ReferencesAbout youngculture Group
Jens Saade
Head Innovation & Technology E-Commerce
Engineering Background (Retail, PIM, E-Commerce)
Located in Zürich, CH
Dev	
  
Process	
  
Architecture	
  
Innova2on	
  
Ini2a2ves	
  
Central Configuration
Repository
Appliance in Continuous
Delivery
Automation &
Configuration
Intro youngculture
E-Commerce
Intro:
E-Commerce
@YC
youngculture ECOM team delivers highly
integrated E-Commerce Solutions based on
the Hybris Platform.
Customized B2C Storefront Showcase
B2C & B2B
Shops and
PIM Systems
Delivering good quality in a highly
complex project environment is only
possible by aligning team, processes
and infrastructure environments.
Con2nuous	
  
Delivery	
  
Configura2on	
  
Mgmt	
  
Test	
  
Automa2on	
  
Cloud	
  
Services	
  
Automated	
  
Provisioning	
  
Workspace	
  
(Confluence,	
  
JIRA)	
  
Prac2ce	
  
Meetups	
  
Integrated	
  
Communica2on	
  
(HipChat)	
  
System	
  
Monitoring	
  
HW/OS	
  
(NewRelic,	
  
Nagios)	
  
Applica2on	
  Monitoring	
  
Logs	
  
(Elas2cSearch/
Kibana,	
  Splunk)	
  
Performance	
  
(Dynatrace),	
  
Delivery
Environment
Environments
CAM
Collaborate
AutomateMonitor
TeamsSystems
Projects
Automation
Continuous Delivery
Familiar with the Concepts?
Tried applying it in own Company?
Part of your Culture?
AUTOMATION
is hard work ...
expensive to establish...
and can get pretty complex
BUT
... reduces monkey work
... speeds up the dev & delivery processes
... calms down stress level
...and raises confidence and quality.
Release anytime, reproducible
Create
Hybris
Projects,
Extension
and Addons
Setup
Continously
Build
deployable
artifacts
Build
Assess
Software by
Automated
Testing
Test
Continuous Delivery
Overview
Install for
testing,
acceptance
and
production
Deploy
> Commit Stage > Acceptance Stage > Deployment Stage
Feedback Feedback Feedback
Establishing a Delivery Pipeline is a joint team effort! It involves lots of disciplines
and evolves constantly.
CustomersDevelopers Product
Owner
Scrum
Master
Delivery Process: Automation is Key
Test Execution Env
Jenkins
CI
Artifactory Repository
Git
Repository
Hybris
Node
YC
Deploy
Client
Apache
HTTPdSelenium
Gatling
JMeter
Test Exec Hybris Test
Commit Stage
Acceptance Stage
Deploy Stage
Continuous Delivery
Monitoring Node
Stage/Production
Hybris
Node1
Hybris Cluster
Apache
HTTPd
Varnish
Apache
HTTPd
Varnish
DB
Cluster
Load Balancer
ElasticSeach
Logstash
Kibana
Zabbix
External
Monitoring
NewRelic
Hybris
Node 2
YC
Deploy
Client
YC
Deploy
Client
Hosting Environment
TeamsInfrastructures
Maintenance team
One essential problem left:
Configurations
Ecosystem of
Configurations
Versioned
Software
Artifact
Dev
1
Dev
2
Ops
1
Ops
2
QA
Test specifc
artifact
versions for
regressionQA on
features
Create new
Conf
Property
Share his
conf with
Dev 2
Prepare
Rollout
Conf for
tonight
Enable
feature for
customer
Req
Eng
Introduce
new concept,
define triggers
A=1
B=true
c=debug
7
Env.properties
?
Project Specific
236Project.properties
436Advanced.properties
7
Env.properties
?
Project Specific
236Project.properties
436Advanced.properties
Node 1
7
Env.properties
?
Project Specific
236Project.properties
436Advanced.properties
Node 2
7
Env.properties
?
Project Specific
236Project.properties
436Advanced.properties
Node 3
1 Clustered Environment
Dev(s)
QA Systems
Production
UAT/Stage
...
Hybris Configuration Stack (Properties based)
(manual)
Configuration
Central
Configuration
Management
Diversity: Support complex environment setups
!=
We need good concepts how to configure
environments nearly equivalent
but allow flexibility for individual deviations
„The most efficient way to manage
configuration is to have a central service
through which every application can
get the configuration it needs.“
Jez Humble and Dave Farley
„Continuous Delivery: Reliable
Software Releases through
Build, Test, and Deployment
Automation“, Addison-Wesley
2010
Artifact
Generic
Configuration
Machine
Java VM
Rolling out Configurations
Configurations get
packaged and rolled out
JVMs are bootstrapped
from packaged
configurations
Machine
Java VM
Machine
Java VM
Machine
Java VM
Environment
Configuration
Turning from distributing (and manually
tweaking) local configurations ...
... to a centralized environment
that hosts configurations for self-service.
Direction change:
Push -> Pull
Artifact
Machine
Java VM
Rolling out Configurations, alternative
Rollout Software Artifact as
usual, but keep it generic,
just provide configuration
IDs
Isolate configurations from the
deployment package and provide
it centrally from the CCR
Machine
Java VM
Machine
Java VM
Machine
Java VM
UUID
Generic
Configuration
CCR	
  
Environment
Configuration
UUID
UUID UUID
UUID
UUID
Generic
Configuration
Environment
Configuration
Hierachical Key-Value Store
Configuration
Configuration
UUID3
UUID4
Machine
Application
Client Wrapper
Central Configuration Repository (CCR) and Consuming Clients
Agent pulls
configuration properties
via REST / Json
Then injects properties
to JVM System context
MachineMachineMachine Machine
Machine
Machine
Machine
MachineMachineMachineMachine
Machine
Machine
Machine
Machine
Machine
REST / Json
discoBit
A
P
I
Admin UI
CCR	
  
CD & CCR
Applied @YC
Configuration Hierarchies
Automated space
UUID1
Shared space
UUID2
UAT Environment
UUID7
UAT node 1
UUID8
UAT Node 2
UUID9
QA: Nightly Build Test System
UUID6
Personalized Conf Developer A
UUID3
Personalized Conf Developer B
UUID5
Ops
1
Ops
2
QA
Dev
1
Dev
2
Req
Eng
Continuous Delivery
Cycle
Customized (env1)
UUID3
Customized (env2)
UUID4
Machine
Java VM
discoBit Java Agent (UUID4)
System Context Injection via Java Agent
discoBit
Agent pulls
configuration properties
via REST / Json
Then injects properties
to JVM System context
Automated space
UUID1
Shared space
UUID2
jsaade@MacBook-Pro:~/hybris/hybris-commerce-suite-5.4.0.0/hybris/bin/platform$ ./hybrisserver.sh
Launching a JVM...
Apr 20, 2015 1:42:33 PM com.v3rticle.oss.discobit.client.bootstrap.DiscobitSettings <init>
INFORMATION: [discobit] configuring server from system: http://127.0.0.1:8089
Apr 20, 2015 1:42:33 PM com.youngculture.ecom.hybris.discobit.HybrisDiscobitAgent execute
INFORMATION: Reading discobit configuration from http://127.0.0.1:8089::bb2835fb-466c-4143-8081-ffcd60c49467
Apr 20, 2015 1:42:33 PM com.v3rticle.oss.discobit.client.bootstrap.DiscobitSettings <init>
INFORMATION: [discobit] configuring server from system: http://127.0.0.1:8089
Apr 20, 2015 1:42:33 PM com.v3rticle.oss.discobit.client.bootstrap.DiscobitSettings <init>
INFORMATION: [discobit] configuring server from system: http://127.0.0.1:8089
Apr 20, 2015 1:42:33 PM com.v3rticle.oss.discobit.client.DiscobitConnector authenticate
INFORMATION: [discobit] authentication response: HTTP/1.1 200 OK
Apr 20, 2015 1:42:33 PM com.v3rticle.oss.discobit.client.DiscobitConnector authenticate
INFORMATION: [discobit] authentication cookie: [[version: 0][name: JSESSIONID][value:
65452FC130FE2F87E8655BF05D5F0A90][domain: 127.0.0.1][path: /][expiry: null]]
Apr 20, 2015 1:42:34 PM com.youngculture.ecom.hybris.discobit.HybrisDiscobitAgent execute
INFORMATION: injected 677 properties to system context
WrapperManager: Initializing...
Apr 20, 2015 1:42:39 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNUNG: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'disableURLRewriting' to 'true'
did not find a matching property.
Apr 20, 2015 1:42:40 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
WARNUNG: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'disableURLRewriting' to 'true'
did not find a matching property.
Apr 20, 2015 1:42:40 PM org.apache.coyote.AbstractProtocol init
INFORMATION: Initializing ProtocolHandler ["http-bio-9001"]
Apr 20, 2015 1:42:40 PM org.apache.coyote.AbstractProtocol init
INFORMATION: Initializing ProtocolHandler ["http-bio-9002"]
Apr 20, 2015 1:42:45 PM org.apache.coyote.AbstractProtocol init
INFORMATION: Initializing ProtocolHandler ["ajp-bio-8009"]
Apr 20, 2015 1:42:45 PM org.apache.catalina.startup.Catalina load
INFORMATION: Initialization processed in 5834 ms
Apr 20, 2015 1:42:45 PM org.apache.catalina.mbeans.JmxRemoteLifecycleListener createServer
INFORMATION: The JMX Remote Listener has configured the registry on port 9003 and the server on port 9004 for the
Platform server
Apr 20, 2015 1:42:45 PM org.apache.catalina.core.StandardService startInternal
INFORMATION: Starting service Catalina
Key Take
Aways
Key Take Aways
•  Simple, unified approach to avoid wide-spread
configuration and their mutation
•  Language & product agnostic
•  Enabling other teams and colleagues to take
controlled influence on configs in general
•  Needs a clear strategy concerning delivery cycle,
security and infrastructure
Usecases
•  Configure applications in hosting enviroments,
test farms, desktops
•  Developers share configurations while creating a
solution
•  QA configures their testing systems individually
•  Dark launching of software changes
•  Feature toggling for indidual usage profiles
Pros
•  Central administration
•  Create multi-level configuration inheritance
•  Turn from a push-based model to a consumer
pull-based self service
•  Allow fine grained access to (parts) of
configurations for different stakeholder roles
•  Change properties without rollouts (trigger
reload events instead)
+
+
+
+
+
Cons (yes there are)
•  Accessibilty from environment to CCR needs to
be resilient, fallbacks needed (e.g. local caching).
•  Configuring during runtime can have unforseen
side effects in your application (check lifecycle).
•  Administrative access to configurations needs to
be well thought.
-­‐	
  
-­‐	
  
-­‐	
  
Where to go next? Potential Extensions
•  Tracking changes possible (who did what and
when)
•  Add versioning by storing configs in an SCM for
rollbacks ore regression testing
•  Stage changes for different rollout scenarios
•  Add hierarchical config structures like YAML
Questions?
Thanks!
Mail: j.saade@youngculture.com
Twitter: @jenssaade
youngculture.com
Hybris.com
discoBit.com
Appendix
Continuous Delivery Hosting
QA Testing
Jenkins CI
Embedding into Continuous Delivery Flow
discoBit
Application
Instance 2
UUID 2
Application
Instance 1
UUID1
Application
Instance n
UUID n
Config
Repository
REST API
Artifactory
Distributable
Artifact
Acceptance Stage
Deploy Stage
deploybuild configure
UI
1	
  
2	
  
3	
  
Commit Stage
env.properties
project.properties
advanced.properties
Continuous Delivery
QA Testing
Source (git)
Jenkins
Stacked Configurations in the Central Config Repo
Commit Stage
env.properties
discoBit
Application
Instance 1
UUID3
Acceptance Stage
Deploy Stage
deploybuild configure
Automated space
UUID1
Shared space
<extends>
UUID2
UUID1
<extends>
Customized (env2)
Customized (env1)
UUID3
UUID4
Devs’ Machine
Application
Instance 3
UUID4
Application
Instance 2
UUID3
1	
  
2	
  
project.properties
advanced.properties
merge

More Related Content

What's hot

Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Edward Burns
 
Cisco application infrastracture controller (apic) billyjones
Cisco application infrastracture controller (apic) billyjonesCisco application infrastracture controller (apic) billyjones
Cisco application infrastracture controller (apic) billyjonesBilly jones Monarquia
 
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFish
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFishBatch Applications for Java Platform 1.0: Java EE 7 and GlassFish
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFishArun Gupta
 
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015Edward Burns
 
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyDavid Delabassee
 
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouCON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouEdward Burns
 
Java API for WebSocket 1.0: Java EE 7 and GlassFish
Java API for WebSocket 1.0: Java EE 7 and GlassFishJava API for WebSocket 1.0: Java EE 7 and GlassFish
Java API for WebSocket 1.0: Java EE 7 and GlassFishArun Gupta
 
GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOFglassfish
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessEd Burns
 
JavaFX and JEE 7
JavaFX and JEE 7JavaFX and JEE 7
JavaFX and JEE 7Vijay Nair
 
Approaches for WebLogic Server in the Cloud (OpenWorld, September 2014)
Approaches for WebLogic Server in the Cloud (OpenWorld, September 2014)Approaches for WebLogic Server in the Cloud (OpenWorld, September 2014)
Approaches for WebLogic Server in the Cloud (OpenWorld, September 2014)jeckels
 
Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7Hirofumi Iwasaki
 
V mware white paper virtualizing business-critical applications with confidence
V mware white paper  virtualizing business-critical applications with confidenceV mware white paper  virtualizing business-critical applications with confidence
V mware white paper virtualizing business-critical applications with confidenceReadWrite
 
OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7Bruno Borges
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXBruno Borges
 

What's hot (17)

Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015Servlet 4.0 at GeekOut 2015
Servlet 4.0 at GeekOut 2015
 
Cisco application infrastracture controller (apic) billyjones
Cisco application infrastracture controller (apic) billyjonesCisco application infrastracture controller (apic) billyjones
Cisco application infrastracture controller (apic) billyjones
 
MySQL User Camp: GTIDs
MySQL User Camp: GTIDsMySQL User Camp: GTIDs
MySQL User Camp: GTIDs
 
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFish
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFishBatch Applications for Java Platform 1.0: Java EE 7 and GlassFish
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFish
 
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015HTTP/2 comes to Java.  What Servlet 4.0 means to you. DevNexus 2015
HTTP/2 comes to Java. What Servlet 4.0 means to you. DevNexus 2015
 
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
 
CON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To YouCON5898 What Servlet 4.0 Means To You
CON5898 What Servlet 4.0 Means To You
 
Java API for WebSocket 1.0: Java EE 7 and GlassFish
Java API for WebSocket 1.0: Java EE 7 and GlassFishJava API for WebSocket 1.0: Java EE 7 and GlassFish
Java API for WebSocket 1.0: Java EE 7 and GlassFish
 
MVC 1.0 / JSR 371
MVC 1.0 / JSR 371MVC 1.0 / JSR 371
MVC 1.0 / JSR 371
 
GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOF
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with Less
 
JavaFX and JEE 7
JavaFX and JEE 7JavaFX and JEE 7
JavaFX and JEE 7
 
Approaches for WebLogic Server in the Cloud (OpenWorld, September 2014)
Approaches for WebLogic Server in the Cloud (OpenWorld, September 2014)Approaches for WebLogic Server in the Cloud (OpenWorld, September 2014)
Approaches for WebLogic Server in the Cloud (OpenWorld, September 2014)
 
Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7Seven Points for Applying Java EE 7
Seven Points for Applying Java EE 7
 
V mware white paper virtualizing business-critical applications with confidence
V mware white paper  virtualizing business-critical applications with confidenceV mware white paper  virtualizing business-critical applications with confidence
V mware white paper virtualizing business-critical applications with confidence
 
OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7OTN Tour 2013: What's new in java EE 7
OTN Tour 2013: What's new in java EE 7
 
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFXTweet4Beer - Beertap powered by Java goes IoT and JavaFX
Tweet4Beer - Beertap powered by Java goes IoT and JavaFX
 

Similar to PimpYourPipeline Central Configuration Management

Lessons Learned during IBM SmartCloud Orchestrator Deployment at a Large Tel...
Lessons Learned during IBM SmartCloud Orchestrator Deployment at a Large Tel...Lessons Learned during IBM SmartCloud Orchestrator Deployment at a Large Tel...
Lessons Learned during IBM SmartCloud Orchestrator Deployment at a Large Tel...Eduardo Patrocinio
 
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAconCloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAconMario-Leander Reimer
 
Hand-On Lab: CA Release Automation Rapid Development Kit and SDK
Hand-On Lab: CA Release Automation Rapid Development Kit and SDKHand-On Lab: CA Release Automation Rapid Development Kit and SDK
Hand-On Lab: CA Release Automation Rapid Development Kit and SDKCA Technologies
 
Implementing a Reliable, Auto-Healing Scalable Platform at VMware
Implementing a Reliable, Auto-Healing Scalable Platform at VMwareImplementing a Reliable, Auto-Healing Scalable Platform at VMware
Implementing a Reliable, Auto-Healing Scalable Platform at VMwareOlyaSurits
 
Camel on Cloud by Christina Lin
Camel on Cloud by Christina LinCamel on Cloud by Christina Lin
Camel on Cloud by Christina LinTadayoshi Sato
 
VMworld Europe 204: Technical Deep Dive on EVO: RAIL, the new VMware Hyper-Co...
VMworld Europe 204: Technical Deep Dive on EVO: RAIL, the new VMware Hyper-Co...VMworld Europe 204: Technical Deep Dive on EVO: RAIL, the new VMware Hyper-Co...
VMworld Europe 204: Technical Deep Dive on EVO: RAIL, the new VMware Hyper-Co...VMworld
 
Integrating Ansible Tower with security orchestration and cloud management
Integrating Ansible Tower with security orchestration and cloud managementIntegrating Ansible Tower with security orchestration and cloud management
Integrating Ansible Tower with security orchestration and cloud managementJoel W. King
 
Modern authentication in Sling with Openid Connect and Keycloak - Adapt.to 20...
Modern authentication in Sling with Openid Connect and Keycloak - Adapt.to 20...Modern authentication in Sling with Openid Connect and Keycloak - Adapt.to 20...
Modern authentication in Sling with Openid Connect and Keycloak - Adapt.to 20...Ioan Eugen Stan
 
Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Codemotion
 
How we built Packet's bare metal cloud platform
How we built Packet's bare metal cloud platformHow we built Packet's bare metal cloud platform
How we built Packet's bare metal cloud platformPacket
 
Privileged Access Management for the Software-Defined Network
Privileged Access Management for the Software-Defined NetworkPrivileged Access Management for the Software-Defined Network
Privileged Access Management for the Software-Defined NetworkCA Technologies
 
A Blueprint for Cloud-Native Financial Institutions
A Blueprint for Cloud-Native Financial InstitutionsA Blueprint for Cloud-Native Financial Institutions
A Blueprint for Cloud-Native Financial InstitutionsAngelo Agatino Nicolosi
 
Creating Scalable JVM/Java Apps on Heroku
Creating Scalable JVM/Java Apps on HerokuCreating Scalable JVM/Java Apps on Heroku
Creating Scalable JVM/Java Apps on HerokuJoe Kutner
 
Case Study: Developing a Vblock System-based Private Cloud Platform with Pupp...
Case Study: Developing a Vblock System-based Private Cloud Platform with Pupp...Case Study: Developing a Vblock System-based Private Cloud Platform with Pupp...
Case Study: Developing a Vblock System-based Private Cloud Platform with Pupp...VCE
 
Service Mesh @Lara Camp Myanmar - 02 Sep,2023
Service Mesh @Lara Camp Myanmar - 02 Sep,2023Service Mesh @Lara Camp Myanmar - 02 Sep,2023
Service Mesh @Lara Camp Myanmar - 02 Sep,2023Hello Cloud
 
CIT-2697 - Customer Success Stories with IBM PureApplication System
CIT-2697 - Customer Success Stories with IBM PureApplication SystemCIT-2697 - Customer Success Stories with IBM PureApplication System
CIT-2697 - Customer Success Stories with IBM PureApplication SystemHendrik van Run
 
Smart Services & Smart Clients - How Microservices Change the Way You Build a...
Smart Services & Smart Clients - How Microservices Change the Way You Build a...Smart Services & Smart Clients - How Microservices Change the Way You Build a...
Smart Services & Smart Clients - How Microservices Change the Way You Build a...Neil Mansilla
 
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCFMigrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCFRoy Braam
 
Explore Advanced CA Release Automation Configuration Topics
Explore Advanced CA Release Automation Configuration TopicsExplore Advanced CA Release Automation Configuration Topics
Explore Advanced CA Release Automation Configuration TopicsCA Technologies
 

Similar to PimpYourPipeline Central Configuration Management (20)

Lessons Learned during IBM SmartCloud Orchestrator Deployment at a Large Tel...
Lessons Learned during IBM SmartCloud Orchestrator Deployment at a Large Tel...Lessons Learned during IBM SmartCloud Orchestrator Deployment at a Large Tel...
Lessons Learned during IBM SmartCloud Orchestrator Deployment at a Large Tel...
 
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAconCloud-native .NET-Microservices mit Kubernetes @BASTAcon
Cloud-native .NET-Microservices mit Kubernetes @BASTAcon
 
Hand-On Lab: CA Release Automation Rapid Development Kit and SDK
Hand-On Lab: CA Release Automation Rapid Development Kit and SDKHand-On Lab: CA Release Automation Rapid Development Kit and SDK
Hand-On Lab: CA Release Automation Rapid Development Kit and SDK
 
Implementing a Reliable, Auto-Healing Scalable Platform at VMware
Implementing a Reliable, Auto-Healing Scalable Platform at VMwareImplementing a Reliable, Auto-Healing Scalable Platform at VMware
Implementing a Reliable, Auto-Healing Scalable Platform at VMware
 
Camel on Cloud by Christina Lin
Camel on Cloud by Christina LinCamel on Cloud by Christina Lin
Camel on Cloud by Christina Lin
 
VMworld Europe 204: Technical Deep Dive on EVO: RAIL, the new VMware Hyper-Co...
VMworld Europe 204: Technical Deep Dive on EVO: RAIL, the new VMware Hyper-Co...VMworld Europe 204: Technical Deep Dive on EVO: RAIL, the new VMware Hyper-Co...
VMworld Europe 204: Technical Deep Dive on EVO: RAIL, the new VMware Hyper-Co...
 
Integrating Ansible Tower with security orchestration and cloud management
Integrating Ansible Tower with security orchestration and cloud managementIntegrating Ansible Tower with security orchestration and cloud management
Integrating Ansible Tower with security orchestration and cloud management
 
Modern authentication in Sling with Openid Connect and Keycloak - Adapt.to 20...
Modern authentication in Sling with Openid Connect and Keycloak - Adapt.to 20...Modern authentication in Sling with Openid Connect and Keycloak - Adapt.to 20...
Modern authentication in Sling with Openid Connect and Keycloak - Adapt.to 20...
 
Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...Maxim Salnikov - Service Worker: taking the best from the past experience for...
Maxim Salnikov - Service Worker: taking the best from the past experience for...
 
How we built Packet's bare metal cloud platform
How we built Packet's bare metal cloud platformHow we built Packet's bare metal cloud platform
How we built Packet's bare metal cloud platform
 
Privileged Access Management for the Software-Defined Network
Privileged Access Management for the Software-Defined NetworkPrivileged Access Management for the Software-Defined Network
Privileged Access Management for the Software-Defined Network
 
A Blueprint for Cloud-Native Financial Institutions
A Blueprint for Cloud-Native Financial InstitutionsA Blueprint for Cloud-Native Financial Institutions
A Blueprint for Cloud-Native Financial Institutions
 
Creating Scalable JVM/Java Apps on Heroku
Creating Scalable JVM/Java Apps on HerokuCreating Scalable JVM/Java Apps on Heroku
Creating Scalable JVM/Java Apps on Heroku
 
Case Study: Developing a Vblock System-based Private Cloud Platform with Pupp...
Case Study: Developing a Vblock System-based Private Cloud Platform with Pupp...Case Study: Developing a Vblock System-based Private Cloud Platform with Pupp...
Case Study: Developing a Vblock System-based Private Cloud Platform with Pupp...
 
Service Mesh @Lara Camp Myanmar - 02 Sep,2023
Service Mesh @Lara Camp Myanmar - 02 Sep,2023Service Mesh @Lara Camp Myanmar - 02 Sep,2023
Service Mesh @Lara Camp Myanmar - 02 Sep,2023
 
CIT-2697 - Customer Success Stories with IBM PureApplication System
CIT-2697 - Customer Success Stories with IBM PureApplication SystemCIT-2697 - Customer Success Stories with IBM PureApplication System
CIT-2697 - Customer Success Stories with IBM PureApplication System
 
Smart Services & Smart Clients - How Microservices Change the Way You Build a...
Smart Services & Smart Clients - How Microservices Change the Way You Build a...Smart Services & Smart Clients - How Microservices Change the Way You Build a...
Smart Services & Smart Clients - How Microservices Change the Way You Build a...
 
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCFMigrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
Migrate a on-prem platform to the public cloud with Java - SpringBoot and PCF
 
Ansible Automation - Enterprise Use Cases | Juncheng Anthony Lin
Ansible Automation - Enterprise Use Cases | Juncheng Anthony LinAnsible Automation - Enterprise Use Cases | Juncheng Anthony Lin
Ansible Automation - Enterprise Use Cases | Juncheng Anthony Lin
 
Explore Advanced CA Release Automation Configuration Topics
Explore Advanced CA Release Automation Configuration TopicsExplore Advanced CA Release Automation Configuration Topics
Explore Advanced CA Release Automation Configuration Topics
 

More from youngculture

Customer Inspiration and Loyalty with Shopping Apps, Daniela Capaul - youngcu...
Customer Inspiration and Loyalty with Shopping Apps, Daniela Capaul - youngcu...Customer Inspiration and Loyalty with Shopping Apps, Daniela Capaul - youngcu...
Customer Inspiration and Loyalty with Shopping Apps, Daniela Capaul - youngcu...youngculture
 
Quality Awareness When Practicing Agile Testing
Quality Awareness When Practicing Agile TestingQuality Awareness When Practicing Agile Testing
Quality Awareness When Practicing Agile Testingyoungculture
 
Mobile POS: wie E-Commerce und stationärer Handel zusammen wachsen
Mobile POS: wie E-Commerce und stationärer Handel zusammen wachsenMobile POS: wie E-Commerce und stationärer Handel zusammen wachsen
Mobile POS: wie E-Commerce und stationärer Handel zusammen wachsenyoungculture
 
Developing enterprise ecommerce solutions using hybris by Drazen Nikolic - Be...
Developing enterprise ecommerce solutions using hybris by Drazen Nikolic - Be...Developing enterprise ecommerce solutions using hybris by Drazen Nikolic - Be...
Developing enterprise ecommerce solutions using hybris by Drazen Nikolic - Be...youngculture
 
Boost up your mobile development practice by Uros Krkic & Dragisa Rakic
Boost up your mobile development practice by Uros Krkic & Dragisa RakicBoost up your mobile development practice by Uros Krkic & Dragisa Rakic
Boost up your mobile development practice by Uros Krkic & Dragisa Rakicyoungculture
 
Developing enterprise ecommerce solutions using hybris by Drazen Nikolic
Developing enterprise ecommerce solutions using hybris by Drazen NikolicDeveloping enterprise ecommerce solutions using hybris by Drazen Nikolic
Developing enterprise ecommerce solutions using hybris by Drazen Nikolicyoungculture
 
Revolution - How agile cooperation models substitute classical client/vendor ...
Revolution - How agile cooperation models substitute classical client/vendor ...Revolution - How agile cooperation models substitute classical client/vendor ...
Revolution - How agile cooperation models substitute classical client/vendor ...youngculture
 
E-Commerce goes Mobile by Dominic Veit
E-Commerce goes Mobile by Dominic VeitE-Commerce goes Mobile by Dominic Veit
E-Commerce goes Mobile by Dominic Veityoungculture
 

More from youngculture (8)

Customer Inspiration and Loyalty with Shopping Apps, Daniela Capaul - youngcu...
Customer Inspiration and Loyalty with Shopping Apps, Daniela Capaul - youngcu...Customer Inspiration and Loyalty with Shopping Apps, Daniela Capaul - youngcu...
Customer Inspiration and Loyalty with Shopping Apps, Daniela Capaul - youngcu...
 
Quality Awareness When Practicing Agile Testing
Quality Awareness When Practicing Agile TestingQuality Awareness When Practicing Agile Testing
Quality Awareness When Practicing Agile Testing
 
Mobile POS: wie E-Commerce und stationärer Handel zusammen wachsen
Mobile POS: wie E-Commerce und stationärer Handel zusammen wachsenMobile POS: wie E-Commerce und stationärer Handel zusammen wachsen
Mobile POS: wie E-Commerce und stationärer Handel zusammen wachsen
 
Developing enterprise ecommerce solutions using hybris by Drazen Nikolic - Be...
Developing enterprise ecommerce solutions using hybris by Drazen Nikolic - Be...Developing enterprise ecommerce solutions using hybris by Drazen Nikolic - Be...
Developing enterprise ecommerce solutions using hybris by Drazen Nikolic - Be...
 
Boost up your mobile development practice by Uros Krkic & Dragisa Rakic
Boost up your mobile development practice by Uros Krkic & Dragisa RakicBoost up your mobile development practice by Uros Krkic & Dragisa Rakic
Boost up your mobile development practice by Uros Krkic & Dragisa Rakic
 
Developing enterprise ecommerce solutions using hybris by Drazen Nikolic
Developing enterprise ecommerce solutions using hybris by Drazen NikolicDeveloping enterprise ecommerce solutions using hybris by Drazen Nikolic
Developing enterprise ecommerce solutions using hybris by Drazen Nikolic
 
Revolution - How agile cooperation models substitute classical client/vendor ...
Revolution - How agile cooperation models substitute classical client/vendor ...Revolution - How agile cooperation models substitute classical client/vendor ...
Revolution - How agile cooperation models substitute classical client/vendor ...
 
E-Commerce goes Mobile by Dominic Veit
E-Commerce goes Mobile by Dominic VeitE-Commerce goes Mobile by Dominic Veit
E-Commerce goes Mobile by Dominic Veit
 

Recently uploaded

Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfROCENODodongVILLACER
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEroselinkalist12
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxDeepakSakkari2
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...VICTOR MAESTRE RAMIREZ
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxk795866
 
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization TechniquesComparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniquesugginaramesh
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .Satyam Kumar
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfme23b1001
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidNikhilNagaraju
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxPoojaBan
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...Chandu841456
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction managementMariconPadriquez1
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHC Sai Kiran
 
8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitterShivangiSharma879191
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfAsst.prof M.Gokilavani
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfAsst.prof M.Gokilavani
 

Recently uploaded (20)

Risk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdfRisk Assessment For Installation of Drainage Pipes.pdf
Risk Assessment For Installation of Drainage Pipes.pdf
 
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETEINFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
INFLUENCE OF NANOSILICA ON THE PROPERTIES OF CONCRETE
 
Biology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptxBiology for Computer Engineers Course Handout.pptx
Biology for Computer Engineers Course Handout.pptx
 
young call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Serviceyoung call girls in Green Park🔝 9953056974 🔝 escort Service
young call girls in Green Park🔝 9953056974 🔝 escort Service
 
Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...Software and Systems Engineering Standards: Verification and Validation of Sy...
Software and Systems Engineering Standards: Verification and Validation of Sy...
 
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
9953056974 Call Girls In South Ex, Escorts (Delhi) NCR.pdf
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
Introduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptxIntroduction-To-Agricultural-Surveillance-Rover.pptx
Introduction-To-Agricultural-Surveillance-Rover.pptx
 
Comparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization TechniquesComparative Analysis of Text Summarization Techniques
Comparative Analysis of Text Summarization Techniques
 
Churning of Butter, Factors affecting .
Churning of Butter, Factors affecting  .Churning of Butter, Factors affecting  .
Churning of Butter, Factors affecting .
 
Electronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdfElectronically Controlled suspensions system .pdf
Electronically Controlled suspensions system .pdf
 
main PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfidmain PPT.pptx of girls hostel security using rfid
main PPT.pptx of girls hostel security using rfid
 
Heart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptxHeart Disease Prediction using machine learning.pptx
Heart Disease Prediction using machine learning.pptx
 
An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...An experimental study in using natural admixture as an alternative for chemic...
An experimental study in using natural admixture as an alternative for chemic...
 
computer application and construction management
computer application and construction managementcomputer application and construction management
computer application and construction management
 
Introduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECHIntroduction to Machine Learning Unit-3 for II MECH
Introduction to Machine Learning Unit-3 for II MECH
 
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCRCall Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
Call Us -/9953056974- Call Girls In Vikaspuri-/- Delhi NCR
 
8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter8251 universal synchronous asynchronous receiver transmitter
8251 universal synchronous asynchronous receiver transmitter
 
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdfCCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
CCS355 Neural Networks & Deep Learning Unit 1 PDF notes with Question bank .pdf
 
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdfCCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
CCS355 Neural Network & Deep Learning Unit II Notes with Question bank .pdf
 

PimpYourPipeline Central Configuration Management

  • 2.
  • 3. ReferencesAbout youngculture Group Jens Saade Head Innovation & Technology E-Commerce Engineering Background (Retail, PIM, E-Commerce) Located in Zürich, CH Dev   Process   Architecture   Innova2on   Ini2a2ves  
  • 4. Central Configuration Repository Appliance in Continuous Delivery Automation & Configuration Intro youngculture E-Commerce
  • 6. youngculture ECOM team delivers highly integrated E-Commerce Solutions based on the Hybris Platform.
  • 8. B2C & B2B Shops and PIM Systems
  • 9. Delivering good quality in a highly complex project environment is only possible by aligning team, processes and infrastructure environments.
  • 10. Con2nuous   Delivery   Configura2on   Mgmt   Test   Automa2on   Cloud   Services   Automated   Provisioning   Workspace   (Confluence,   JIRA)   Prac2ce   Meetups   Integrated   Communica2on   (HipChat)   System   Monitoring   HW/OS   (NewRelic,   Nagios)   Applica2on  Monitoring   Logs   (Elas2cSearch/ Kibana,  Splunk)   Performance   (Dynatrace),   Delivery Environment Environments CAM Collaborate AutomateMonitor TeamsSystems Projects
  • 12. Continuous Delivery Familiar with the Concepts? Tried applying it in own Company? Part of your Culture?
  • 13. AUTOMATION is hard work ... expensive to establish... and can get pretty complex BUT ... reduces monkey work ... speeds up the dev & delivery processes ... calms down stress level ...and raises confidence and quality.
  • 14. Release anytime, reproducible Create Hybris Projects, Extension and Addons Setup Continously Build deployable artifacts Build Assess Software by Automated Testing Test Continuous Delivery Overview Install for testing, acceptance and production Deploy > Commit Stage > Acceptance Stage > Deployment Stage Feedback Feedback Feedback Establishing a Delivery Pipeline is a joint team effort! It involves lots of disciplines and evolves constantly.
  • 15. CustomersDevelopers Product Owner Scrum Master Delivery Process: Automation is Key Test Execution Env Jenkins CI Artifactory Repository Git Repository Hybris Node YC Deploy Client Apache HTTPdSelenium Gatling JMeter Test Exec Hybris Test Commit Stage Acceptance Stage Deploy Stage Continuous Delivery Monitoring Node Stage/Production Hybris Node1 Hybris Cluster Apache HTTPd Varnish Apache HTTPd Varnish DB Cluster Load Balancer ElasticSeach Logstash Kibana Zabbix External Monitoring NewRelic Hybris Node 2 YC Deploy Client YC Deploy Client Hosting Environment TeamsInfrastructures Maintenance team
  • 16. One essential problem left: Configurations
  • 17. Ecosystem of Configurations Versioned Software Artifact Dev 1 Dev 2 Ops 1 Ops 2 QA Test specifc artifact versions for regressionQA on features Create new Conf Property Share his conf with Dev 2 Prepare Rollout Conf for tonight Enable feature for customer Req Eng Introduce new concept, define triggers A=1 B=true c=debug
  • 18. 7 Env.properties ? Project Specific 236Project.properties 436Advanced.properties 7 Env.properties ? Project Specific 236Project.properties 436Advanced.properties Node 1 7 Env.properties ? Project Specific 236Project.properties 436Advanced.properties Node 2 7 Env.properties ? Project Specific 236Project.properties 436Advanced.properties Node 3 1 Clustered Environment Dev(s) QA Systems Production UAT/Stage ... Hybris Configuration Stack (Properties based)
  • 21. Diversity: Support complex environment setups != We need good concepts how to configure environments nearly equivalent but allow flexibility for individual deviations
  • 22. „The most efficient way to manage configuration is to have a central service through which every application can get the configuration it needs.“ Jez Humble and Dave Farley „Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation“, Addison-Wesley 2010
  • 23. Artifact Generic Configuration Machine Java VM Rolling out Configurations Configurations get packaged and rolled out JVMs are bootstrapped from packaged configurations Machine Java VM Machine Java VM Machine Java VM Environment Configuration
  • 24. Turning from distributing (and manually tweaking) local configurations ... ... to a centralized environment that hosts configurations for self-service. Direction change: Push -> Pull
  • 25. Artifact Machine Java VM Rolling out Configurations, alternative Rollout Software Artifact as usual, but keep it generic, just provide configuration IDs Isolate configurations from the deployment package and provide it centrally from the CCR Machine Java VM Machine Java VM Machine Java VM UUID Generic Configuration CCR   Environment Configuration UUID UUID UUID UUID UUID Generic Configuration Environment Configuration
  • 26. Hierachical Key-Value Store Configuration Configuration UUID3 UUID4 Machine Application Client Wrapper Central Configuration Repository (CCR) and Consuming Clients Agent pulls configuration properties via REST / Json Then injects properties to JVM System context MachineMachineMachine Machine Machine Machine Machine MachineMachineMachineMachine Machine Machine Machine Machine Machine REST / Json discoBit A P I Admin UI CCR  
  • 28. Configuration Hierarchies Automated space UUID1 Shared space UUID2 UAT Environment UUID7 UAT node 1 UUID8 UAT Node 2 UUID9 QA: Nightly Build Test System UUID6 Personalized Conf Developer A UUID3 Personalized Conf Developer B UUID5 Ops 1 Ops 2 QA Dev 1 Dev 2 Req Eng Continuous Delivery Cycle
  • 29. Customized (env1) UUID3 Customized (env2) UUID4 Machine Java VM discoBit Java Agent (UUID4) System Context Injection via Java Agent discoBit Agent pulls configuration properties via REST / Json Then injects properties to JVM System context Automated space UUID1 Shared space UUID2
  • 30.
  • 31.
  • 32.
  • 33. jsaade@MacBook-Pro:~/hybris/hybris-commerce-suite-5.4.0.0/hybris/bin/platform$ ./hybrisserver.sh Launching a JVM... Apr 20, 2015 1:42:33 PM com.v3rticle.oss.discobit.client.bootstrap.DiscobitSettings <init> INFORMATION: [discobit] configuring server from system: http://127.0.0.1:8089 Apr 20, 2015 1:42:33 PM com.youngculture.ecom.hybris.discobit.HybrisDiscobitAgent execute INFORMATION: Reading discobit configuration from http://127.0.0.1:8089::bb2835fb-466c-4143-8081-ffcd60c49467 Apr 20, 2015 1:42:33 PM com.v3rticle.oss.discobit.client.bootstrap.DiscobitSettings <init> INFORMATION: [discobit] configuring server from system: http://127.0.0.1:8089 Apr 20, 2015 1:42:33 PM com.v3rticle.oss.discobit.client.bootstrap.DiscobitSettings <init> INFORMATION: [discobit] configuring server from system: http://127.0.0.1:8089 Apr 20, 2015 1:42:33 PM com.v3rticle.oss.discobit.client.DiscobitConnector authenticate INFORMATION: [discobit] authentication response: HTTP/1.1 200 OK Apr 20, 2015 1:42:33 PM com.v3rticle.oss.discobit.client.DiscobitConnector authenticate INFORMATION: [discobit] authentication cookie: [[version: 0][name: JSESSIONID][value: 65452FC130FE2F87E8655BF05D5F0A90][domain: 127.0.0.1][path: /][expiry: null]] Apr 20, 2015 1:42:34 PM com.youngculture.ecom.hybris.discobit.HybrisDiscobitAgent execute INFORMATION: injected 677 properties to system context WrapperManager: Initializing... Apr 20, 2015 1:42:39 PM org.apache.tomcat.util.digester.SetPropertiesRule begin WARNUNG: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'disableURLRewriting' to 'true' did not find a matching property. Apr 20, 2015 1:42:40 PM org.apache.tomcat.util.digester.SetPropertiesRule begin WARNUNG: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'disableURLRewriting' to 'true' did not find a matching property. Apr 20, 2015 1:42:40 PM org.apache.coyote.AbstractProtocol init INFORMATION: Initializing ProtocolHandler ["http-bio-9001"] Apr 20, 2015 1:42:40 PM org.apache.coyote.AbstractProtocol init INFORMATION: Initializing ProtocolHandler ["http-bio-9002"] Apr 20, 2015 1:42:45 PM org.apache.coyote.AbstractProtocol init INFORMATION: Initializing ProtocolHandler ["ajp-bio-8009"] Apr 20, 2015 1:42:45 PM org.apache.catalina.startup.Catalina load INFORMATION: Initialization processed in 5834 ms Apr 20, 2015 1:42:45 PM org.apache.catalina.mbeans.JmxRemoteLifecycleListener createServer INFORMATION: The JMX Remote Listener has configured the registry on port 9003 and the server on port 9004 for the Platform server Apr 20, 2015 1:42:45 PM org.apache.catalina.core.StandardService startInternal INFORMATION: Starting service Catalina
  • 35. Key Take Aways •  Simple, unified approach to avoid wide-spread configuration and their mutation •  Language & product agnostic •  Enabling other teams and colleagues to take controlled influence on configs in general •  Needs a clear strategy concerning delivery cycle, security and infrastructure
  • 36. Usecases •  Configure applications in hosting enviroments, test farms, desktops •  Developers share configurations while creating a solution •  QA configures their testing systems individually •  Dark launching of software changes •  Feature toggling for indidual usage profiles
  • 37. Pros •  Central administration •  Create multi-level configuration inheritance •  Turn from a push-based model to a consumer pull-based self service •  Allow fine grained access to (parts) of configurations for different stakeholder roles •  Change properties without rollouts (trigger reload events instead) + + + + +
  • 38. Cons (yes there are) •  Accessibilty from environment to CCR needs to be resilient, fallbacks needed (e.g. local caching). •  Configuring during runtime can have unforseen side effects in your application (check lifecycle). •  Administrative access to configurations needs to be well thought. -­‐   -­‐   -­‐  
  • 39. Where to go next? Potential Extensions •  Tracking changes possible (who did what and when) •  Add versioning by storing configs in an SCM for rollbacks ore regression testing •  Stage changes for different rollout scenarios •  Add hierarchical config structures like YAML
  • 43. Continuous Delivery Hosting QA Testing Jenkins CI Embedding into Continuous Delivery Flow discoBit Application Instance 2 UUID 2 Application Instance 1 UUID1 Application Instance n UUID n Config Repository REST API Artifactory Distributable Artifact Acceptance Stage Deploy Stage deploybuild configure UI 1   2   3   Commit Stage env.properties project.properties advanced.properties
  • 44. Continuous Delivery QA Testing Source (git) Jenkins Stacked Configurations in the Central Config Repo Commit Stage env.properties discoBit Application Instance 1 UUID3 Acceptance Stage Deploy Stage deploybuild configure Automated space UUID1 Shared space <extends> UUID2 UUID1 <extends> Customized (env2) Customized (env1) UUID3 UUID4 Devs’ Machine Application Instance 3 UUID4 Application Instance 2 UUID3 1   2   project.properties advanced.properties merge