SlideShare a Scribd company logo
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 2015
Edward 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
 
MySQL User Camp: GTIDs
MySQL User Camp: GTIDsMySQL User Camp: GTIDs
MySQL User Camp: GTIDs
Shivji Kumar Jha
 
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
Arun 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 2015
Edward Burns
 
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
David 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 You
Edward 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 GlassFish
Arun Gupta
 
MVC 1.0 / JSR 371
MVC 1.0 / JSR 371MVC 1.0 / JSR 371
MVC 1.0 / JSR 371
David Delabassee
 
GlassFish BOF
GlassFish BOFGlassFish BOF
GlassFish BOF
glassfish
 
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
Ed 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 7
Bruno 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 JavaFX
Bruno 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
 

Viewers also liked

Bpm company code camp - configuration or coding with pega
Bpm company   code camp - configuration or coding with pegaBpm company   code camp - configuration or coding with pega
Bpm company code camp - configuration or coding with pega
Codecamp Romania
 
Business analysis techniques exercise your 6-pack
Business analysis techniques   exercise your 6-packBusiness analysis techniques   exercise your 6-pack
Business analysis techniques exercise your 6-pack
Codecamp Romania
 
Andrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabaseAndrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabase
Codecamp Romania
 
The case for continuous delivery
The case for continuous deliveryThe case for continuous delivery
The case for continuous delivery
Codecamp Romania
 
2015 dan ardelean develop for windows 10
2015 dan ardelean   develop for windows 10 2015 dan ardelean   develop for windows 10
2015 dan ardelean develop for windows 10
Codecamp Romania
 
Agility and life
Agility and lifeAgility and life
Agility and life
Codecamp Romania
 
The bigrewrite
The bigrewriteThe bigrewrite
The bigrewrite
Codecamp Romania
 
Cloud powered search
Cloud powered searchCloud powered search
Cloud powered search
Codecamp Romania
 
Cezar chitac the edge of experience
Cezar chitac   the edge of experienceCezar chitac   the edge of experience
Cezar chitac the edge of experience
Codecamp Romania
 

Viewers also liked (10)

Ccp
CcpCcp
Ccp
 
Bpm company code camp - configuration or coding with pega
Bpm company   code camp - configuration or coding with pegaBpm company   code camp - configuration or coding with pega
Bpm company code camp - configuration or coding with pega
 
Business analysis techniques exercise your 6-pack
Business analysis techniques   exercise your 6-packBusiness analysis techniques   exercise your 6-pack
Business analysis techniques exercise your 6-pack
 
Andrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabaseAndrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabase
 
The case for continuous delivery
The case for continuous deliveryThe case for continuous delivery
The case for continuous delivery
 
2015 dan ardelean develop for windows 10
2015 dan ardelean   develop for windows 10 2015 dan ardelean   develop for windows 10
2015 dan ardelean develop for windows 10
 
Agility and life
Agility and lifeAgility and life
Agility and life
 
The bigrewrite
The bigrewriteThe bigrewrite
The bigrewrite
 
Cloud powered search
Cloud powered searchCloud powered search
Cloud powered search
 
Cezar chitac the edge of experience
Cezar chitac   the edge of experienceCezar chitac   the edge of experience
Cezar chitac the edge of experience
 

Similar to Codecamp2015 pimp yourpipeline-saade-jens-1.1

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 @BASTAcon
Mario-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 SDK
CA 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 VMware
OlyaSurits
 
Camel on Cloud by Christina Lin
Camel on Cloud by Christina LinCamel on Cloud by Christina Lin
Camel on Cloud by Christina Lin
Tadayoshi 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 management
Joel 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 platform
Packet
 
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
CA 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 Institutions
Angelo 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,2023
Hello 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 System
Hendrik 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 PCF
Roy Braam
 
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
Vietnam Open Infrastructure User Group
 
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
CA Technologies
 

Similar to Codecamp2015 pimp yourpipeline-saade-jens-1.1 (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 Codecamp Romania

Stefan stolniceanu spritekit, 2 d or not 2d
Stefan stolniceanu   spritekit, 2 d or not 2dStefan stolniceanu   spritekit, 2 d or not 2d
Stefan stolniceanu spritekit, 2 d or not 2d
Codecamp Romania
 
Sizing epics tales from an agile kingdom
Sizing epics   tales from an agile kingdomSizing epics   tales from an agile kingdom
Sizing epics tales from an agile kingdom
Codecamp Romania
 
Scale net apps in aws
Scale net apps in awsScale net apps in aws
Scale net apps in aws
Codecamp Romania
 
Raluca butnaru corina cilibiu the unknown universe of a product and the cer...
Raluca butnaru corina cilibiu   the unknown universe of a product and the cer...Raluca butnaru corina cilibiu   the unknown universe of a product and the cer...
Raluca butnaru corina cilibiu the unknown universe of a product and the cer...
Codecamp Romania
 
Parallel & async processing using tpl dataflow
Parallel & async processing using tpl dataflowParallel & async processing using tpl dataflow
Parallel & async processing using tpl dataflow
Codecamp Romania
 
Material design screen transitions in android
Material design screen transitions in androidMaterial design screen transitions in android
Material design screen transitions in android
Codecamp Romania
 
Kickstart your own freelancing career
Kickstart your own freelancing careerKickstart your own freelancing career
Kickstart your own freelancing career
Codecamp Romania
 
Ionut grecu the soft stuff is the hard stuff. the agile soft skills toolkit
Ionut grecu   the soft stuff is the hard stuff. the agile soft skills toolkitIonut grecu   the soft stuff is the hard stuff. the agile soft skills toolkit
Ionut grecu the soft stuff is the hard stuff. the agile soft skills toolkit
Codecamp Romania
 
Ecma6 in the wild
Ecma6 in the wildEcma6 in the wild
Ecma6 in the wild
Codecamp Romania
 
Diana antohi me against myself or how to fail and move forward
Diana antohi   me against myself  or how to fail  and move forwardDiana antohi   me against myself  or how to fail  and move forward
Diana antohi me against myself or how to fail and move forward
Codecamp Romania
 
Code camp iasi silviu niculita - machine learning for mere mortals with azu...
Code camp iasi   silviu niculita - machine learning for mere mortals with azu...Code camp iasi   silviu niculita - machine learning for mere mortals with azu...
Code camp iasi silviu niculita - machine learning for mere mortals with azu...
Codecamp Romania
 
Business analysis techniques exercise your 6-pack
Business analysis techniques   exercise your 6-packBusiness analysis techniques   exercise your 6-pack
Business analysis techniques exercise your 6-packCodecamp Romania
 
Bpm company code camp - configuration or coding with pega
Bpm company   code camp - configuration or coding with pegaBpm company   code camp - configuration or coding with pega
Bpm company code camp - configuration or coding with pegaCodecamp Romania
 
Andrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabaseAndrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabaseCodecamp Romania
 
The case for continuous delivery
The case for continuous deliveryThe case for continuous delivery
The case for continuous deliveryCodecamp Romania
 
Stefan stolniceanu spritekit, 2 d or not 2d
Stefan stolniceanu   spritekit, 2 d or not 2dStefan stolniceanu   spritekit, 2 d or not 2d
Stefan stolniceanu spritekit, 2 d or not 2dCodecamp Romania
 
Sizing epics tales from an agile kingdom
Sizing epics   tales from an agile kingdomSizing epics   tales from an agile kingdom
Sizing epics tales from an agile kingdomCodecamp Romania
 

More from Codecamp Romania (20)

Stefan stolniceanu spritekit, 2 d or not 2d
Stefan stolniceanu   spritekit, 2 d or not 2dStefan stolniceanu   spritekit, 2 d or not 2d
Stefan stolniceanu spritekit, 2 d or not 2d
 
Sizing epics tales from an agile kingdom
Sizing epics   tales from an agile kingdomSizing epics   tales from an agile kingdom
Sizing epics tales from an agile kingdom
 
Scale net apps in aws
Scale net apps in awsScale net apps in aws
Scale net apps in aws
 
Raluca butnaru corina cilibiu the unknown universe of a product and the cer...
Raluca butnaru corina cilibiu   the unknown universe of a product and the cer...Raluca butnaru corina cilibiu   the unknown universe of a product and the cer...
Raluca butnaru corina cilibiu the unknown universe of a product and the cer...
 
Parallel & async processing using tpl dataflow
Parallel & async processing using tpl dataflowParallel & async processing using tpl dataflow
Parallel & async processing using tpl dataflow
 
Material design screen transitions in android
Material design screen transitions in androidMaterial design screen transitions in android
Material design screen transitions in android
 
Kickstart your own freelancing career
Kickstart your own freelancing careerKickstart your own freelancing career
Kickstart your own freelancing career
 
Ionut grecu the soft stuff is the hard stuff. the agile soft skills toolkit
Ionut grecu   the soft stuff is the hard stuff. the agile soft skills toolkitIonut grecu   the soft stuff is the hard stuff. the agile soft skills toolkit
Ionut grecu the soft stuff is the hard stuff. the agile soft skills toolkit
 
Ecma6 in the wild
Ecma6 in the wildEcma6 in the wild
Ecma6 in the wild
 
Diana antohi me against myself or how to fail and move forward
Diana antohi   me against myself  or how to fail  and move forwardDiana antohi   me against myself  or how to fail  and move forward
Diana antohi me against myself or how to fail and move forward
 
Code camp iasi silviu niculita - machine learning for mere mortals with azu...
Code camp iasi   silviu niculita - machine learning for mere mortals with azu...Code camp iasi   silviu niculita - machine learning for mere mortals with azu...
Code camp iasi silviu niculita - machine learning for mere mortals with azu...
 
About leadership
About leadershipAbout leadership
About leadership
 
Business analysis techniques exercise your 6-pack
Business analysis techniques   exercise your 6-packBusiness analysis techniques   exercise your 6-pack
Business analysis techniques exercise your 6-pack
 
Bpm company code camp - configuration or coding with pega
Bpm company   code camp - configuration or coding with pegaBpm company   code camp - configuration or coding with pega
Bpm company code camp - configuration or coding with pega
 
Andrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabaseAndrei prisacaru takingtheunitteststothedatabase
Andrei prisacaru takingtheunitteststothedatabase
 
The bigrewrite
The bigrewriteThe bigrewrite
The bigrewrite
 
The case for continuous delivery
The case for continuous deliveryThe case for continuous delivery
The case for continuous delivery
 
Stefan stolniceanu spritekit, 2 d or not 2d
Stefan stolniceanu   spritekit, 2 d or not 2dStefan stolniceanu   spritekit, 2 d or not 2d
Stefan stolniceanu spritekit, 2 d or not 2d
 
Sizing epics tales from an agile kingdom
Sizing epics   tales from an agile kingdomSizing epics   tales from an agile kingdom
Sizing epics tales from an agile kingdom
 
Scale net apps in aws
Scale net apps in awsScale net apps in aws
Scale net apps in aws
 

Recently uploaded

The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
Jen Stirrup
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 

Recently uploaded (20)

The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...The Metaverse and AI: how can decision-makers harness the Metaverse for their...
The Metaverse and AI: how can decision-makers harness the Metaverse for their...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 

Codecamp2015 pimp yourpipeline-saade-jens-1.1

  • 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