3. • What IS DevOps
• Chef | Puppet | IBM UrbanCode Deploy
• Directed vs convergent
2
4. • What IS DevOps
• Chef | Puppet | IBM UrbanCode Deploy
• Directed vs convergent
• What IS IBM WebSphere Liberty Profile?
2
5. • What IS DevOps
• Chef | Puppet | IBM UrbanCode Deploy
• Directed vs convergent
• What IS IBM WebSphere Liberty Profile?
• Why they’re good together?
2
6. Silos in the business
5
Lack of feedback
between customers and
the business leading to
unclear requirements
CHALLENGES
Upgrade risk due to
managing multiple
application configurations
and versions across servers
Slow deployment
to test environments
leave teams waiting and
unproductive
CHALLENGES
Operations/
Production
Development/
Test
Customers
Business
Owners
Lack of visibility
and governance,
difficult to understand
impact of a change
7. Deliver better products, faster, and at lower cost
Capability for continuous software delivery that enables clients to seize market
opportunities and reduce time to customer feedback
66
Continuous Innovation, Feedback and Improvements
DevOps Lifecycle
Operations/
Production
Development/
TestCustomers
Business
Owners
Accelerate Software Delivery by enabling collaboration
Balance speed, cost, quality and risk by automating & eliminating waste
Speed up the customer feedback loop by delivering small changes, rapidly
What is DevOps?
8. 7
Optimizing the software delivery pipeline
• Reduce time to market
• Improve quality
• Decrease costs
7
DevOps as the Optimization of the Software Delivery Pipeline
25. App LBs
App Servers
DB slaves
Cache
DB Cache
DBs
...and change happens!
Central Log Host
24
26. App LBs
App Servers
DB slaves
Cache
DB Cache
DBs
...and change happens!
Central Log Host
25
27. Chef Solves This Problem
• But you already
guessed that, didn’t
you?
26
28. Chef is Infrastructure as Code
• Programmatically
provision and configure
components
• Treat like any other code
base
• Reconstruct business
from code repository,
data backup, and
compute resources
http://www.flickr.com/photos/louisb/455529518
7/
27
29. Configuration Code
• Chef ensures each Node complies with the policy
• Policy is determined by the configurations in each
Node’s run list
• Reduce management complexity through abstraction
• Store the configuration of your infrastructure in
version control
28
30. Declarative Interface to Resources
• You define the policy in your Chef configuration
• Your policy states what state each resource should
be in, but not how to get there
• Chef-client will pull the policy from the Chef Server
and enforce the policy on the Node
29
32. Environments Define Policy
• Environments may include data attributes necessary
for configuring your infrastructure, e.g.
• The URL of your payment service’s API
• The location of your package repository
• The version of the Chef configuration files that
should be used
31
35. Nodes
• Nodes represent the servers in your infrastructure
• Could be physical servers or virtual servers
• May represent hardware that you own or compute
instances in a public or private cloud
• Could also be network hardware - switches, routers,
etc
34
36. Node
• Each Node will
• Belong to one Organization
• Belong to one Environment
• Have zero or more Roles
35
37. Nodes Adhere to Policy
• The chef-client application runs on each node, which
• Gathers the current system configuration of the
node
• Downloads the desired system configuration
policies from the Chef server for that node
• Configures the node such that it adheres to those
policies
36
38. Resources
• A Resource represents a piece of the system and its
desired state
• A package that should be installed
• A service that should be running
• A file that should be generated
• A cron job that should be configured
• A user that should be managed
• and more
37
39. Resources in Recipes
• Resources are the fundamental building blocks of
Chef configuration
• Resources are gathered into Recipes
• Recipes ensure the system is in the desired state
38
40. Recipes
• Configuration files that describe resources and their
desired state
• Recipes can:
• Install and configure software components
• Manage files
• Deploy applications
• Execute other recipes
• and more
39
41. Example Recipe
package "apache2"
template "/etc/apache2/apache2.conf" do
source "apache2.conf.erb"
owner "root"
group "root"
mode "0644"
variables(:allow_override => "All")
notifies :reload, "service[apache2]"
end
service "apache2" do
action [:enable,:start]
supports :reload => true
end
40
42. Cookbooks
• Recipes are stored in
Cookbooks
• Cookbooks contain recipes,
templates, files, custom
resources, etc
• Code re-use and modularity
http://www.flickr.com/photos/shutterhacks/4474421855/
41
56. WAS is the JavaTM Foundation for IBM Software
Over 400 IBM offerings embed
or build upon WAS
57. Reasons to love WebSphere Application Server……
66
Secure
Well-tooled
Robust
Scalable
Very
Fast!
Java EE
Compliant IBM Support and
Training
58. … but you asked us for something more…..
• Ops use WAS for stability, scalability, performance …
67
59. … but you asked us for something more…..
• Ops use WAS for stability, scalability, performance …
• Dev less so. They have other requirements
67
60. … but you asked us for something more…..
• Ops use WAS for stability, scalability, performance …
• Dev less so. They have other requirements
• Simple to configure
67
61. … but you asked us for something more…..
• Ops use WAS for stability, scalability, performance …
• Dev less so. They have other requirements
• Simple to configure
• Small and fast
67
62. … but you asked us for something more…..
• Ops use WAS for stability, scalability, performance …
• Dev less so. They have other requirements
• Simple to configure
• Small and fast
• Quick to cycle through code, compile, test, debug in an IDE
67
63. … but you asked us for something more…..
• Ops use WAS for stability, scalability, performance …
• Dev less so. They have other requirements
• Simple to configure
• Small and fast
• Quick to cycle through code, compile, test, debug in an IDE
• Mac
67
64. … but you asked us for something more…..
• Ops use WAS for stability, scalability, performance …
• Dev less so. They have other requirements
• Simple to configure
• Small and fast
• Quick to cycle through code, compile, test, debug in an IDE
• Mac
Variety of appservers used in Dev
67
65. … but you asked us for something more…..
• Lightweight
• Composable
• Simple
• Flexible
• Dynamic
• Open & Extensible
• Cloud-ready
…. but as production-ready as the original…..
…. with even higher management scale!
68
WebSphere Application Server
Liberty Profile
WAS 8.5, June 2012
66. 69
Initial install features – archive or IM
webProfile-6.0
zosSecurity-1.0 zosTransaction-1.0 zosWlm-1.0
zos
collectiveController-1.0 clusterMember-1.0
ndbase
wab-1.0
concurrent-1.0
collectiveMember-1.0
restConnector-1.0
sessionDatabase-1.0
ldapRegistry-3.0
webCache-1.0
jaxrs-1.1
distributedMap-1.0
osgiConsole-1.0
json-1.0
timedOperations-1.0monitor-1.0
oauth-2.0
blueprint-1.0
servlet-3.0
jsp-2.2
jsf-2.0
ejbLite-3.1 jdbc-4.0
jndi-1.0
appSecurity-2.0
managedBeans-1.0
core
ssl-1.0
beanValidation-1.0
cdi-1.0
jpa-2.0
serverStatus-1.0
Initial install content varies
by edition
• Base adds entitlement
to features not included
in initial install
• ND adds clustering
• z/OS adds z/OS
platform integration
69. Simple to configure
72
• ONE required configuration file
• ${wlp.install.dir}/usr/servers/server_name/server.xml
• User configuration for kernel and features
70. Simple to configure
72
• ONE required configuration file
• ${wlp.install.dir}/usr/servers/server_name/server.xml
• User configuration for kernel and features
• Optional files in same server directory
• jvm.options
– provided to JVM at startup
• bootstrap.properties
– used by runtime during startup
• server.env
– read by server script
– useful to override locations using env vars
71. Simple to configure
74
• server create command generates simple working server.xml
Runs servlets and
JSPs
Default endpoint
shown to make port
overrides easy
80. wlp cookbook
supermarket.chef.io/cookbooks/wlp
Install Liberty: archive|zip
•Note: IBM Licensing
Create server/s
•Separate wlp/usr dir
Set JVM options
Install & Create … cookbook “wlp”
81
Chef ServerChef workstation
node_1 node_2 node_3
chef-client chef-client chef-client
81. wlp cookbook
supermarket.chef.io/cookbooks/wlp
Install Liberty: archive|zip
•Note: IBM Licensing
Create server/s
•Separate wlp/usr dir
Set JVM options
Manipulate server’s live
server.xml as Ruby hash
Install & Create … cookbook “wlp”
81
Chef ServerChef workstation
node_1 node_2 node_3
chef-client chef-client chef-client
82. wlp cookbook
supermarket.chef.io/cookbooks/wlp
Install Liberty: archive|zip
•Note: IBM Licensing
Create server/s
•Separate wlp/usr dir
Set JVM options
Manipulate server’s live
server.xml as Ruby hash
Create init.d service
wlp-<server_name>
…
Install & Create … cookbook “wlp”
81
Chef ServerChef workstation
node_1 node_2 node_3
chef-client chef-client chef-client
83. wlp cookbook
supermarket.chef.io/cookbooks/wlp
Install Liberty: archive|zip
•Note: IBM Licensing
Create server/s
•Separate wlp/usr dir
Set JVM options
Manipulate server’s live
server.xml as Ruby hash
Create init.d service
wlp-<server_name>
…
Install & Create … cookbook “wlp”
81
Chef ServerChef workstation
node_1 node_2 node_3
poll
chef-client chef-client chef-client
84. wlp cookbook
supermarket.chef.io/cookbooks/wlp
Install Liberty: archive|zip
•Note: IBM Licensing
Create server/s
•Separate wlp/usr dir
Set JVM options
Manipulate server’s live
server.xml as Ruby hash
Create init.d service
wlp-<server_name>
…
Install & Create … cookbook “wlp”
81
Chef ServerChef workstation
node_1 node_2 node_3
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 1
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 2
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 3
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 4
poll poll poll
chef-client chef-client chef-client
85. wlp cookbook
supermarket.chef.io/cookbooks/wlp
Install Liberty: archive|zip
•Note: IBM Licensing
Create server/s
•Separate wlp/usr dir
Set JVM options
Manipulate server’s live
server.xml as Ruby hash
Create init.d service
wlp-<server_name>
…
Install & Create … cookbook “wlp”
81
Chef ServerChef workstation
node_1 node_2 node_3
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 1
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 2
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 3
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 4
poll poll poll
chef-client chef-client chef-client
86. wlp_collective resource
Collective management
80
Chef ServerChef workstation
node_1 node_2 node_3
poll poll poll
chef-client chef-client chef-client
node_4
chef-client
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
ServerA
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
ServerB
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
ServerC
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
ServerD
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
ServerE
Liberty
Collective
poll
A B C
D
E
JMX
Client
87. wlp_collective resource
Collective management
80
Chef ServerChef workstation
node_1 node_2 node_3
poll poll poll
chef-client chef-client chef-client
node_4
chef-client
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
ServerA
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
ServerB
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
ServerC
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
ServerD
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
ServerE
Liberty
Collective
poll
A B C
D
E
JMX
Client
88. wlp_collective resource
Collective management
80
Chef ServerChef workstation
node_1 node_2 node_3
poll poll poll
chef-client chef-client chef-client
node_4
chef-client
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
ServerA
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
ServerB
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
ServerC
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
ServerD
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
ServerE
Liberty
Collective
poll
A B C
D
E
JMX
Client
89. application_wlp cookbook
supermarket.chef.io/cookbooks/application_wlp
Deploy application … cookbook “application_wlp”
85
Chef Server
node_1
chef-client
node_2
chef-client
node_3
chef-client
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 1
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 2
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 3
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 4
chef-client chef-client chef-client
90. application_wlp cookbook
supermarket.chef.io/cookbooks/application_wlp
Extends ‘application’
•Template Method pattern
Deploy application … cookbook “application_wlp”
85
Chef Server
node_1
chef-client
node_2
chef-client
node_3
chef-client
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 1
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 2
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 3
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 4
chef-client chef-client chef-client
91. application_wlp cookbook
supermarket.chef.io/cookbooks/application_wlp
Extends ‘application’
•Template Method pattern
Deploy application of any type
.ear | .war | .eba
Deploy application … cookbook “application_wlp”
85
Chef Server
node_1
chef-client
node_2
chef-client
node_3
chef-client
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 1
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 2
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 3
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 4
chef-client chef-client chef-client
92. application_wlp cookbook
supermarket.chef.io/cookbooks/application_wlp
Extends ‘application’
•Template Method pattern
Deploy application of any type
.ear | .war | .eba
Deploy application … cookbook “application_wlp”
85
Chef ServerChef workstation
node_1
chef-client
node_2
chef-client
node_3
chef-client
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 1
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 2
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 3
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 4
poll poll poll
Apps
Apps
Apps
Apps
Apps
Apps
Apps
Apps
chef-client chef-client chef-client
95. Modelling server.xml … and <include>s
• Simple, minimal, but rich (!!)
• 128 different element types
• How to represent server config in code?
87
96. 1. Manage raw server.xml
•Low level control
•Variables & bootstrap.properties
Modelling server.xml … and <include>s
• Simple, minimal, but rich (!!)
• 128 different element types
• How to represent server config in code?
87
97. 2. server.xml.erb template
• Model the xml as a template into which other
configuration / properties are inserted
• Inserts can be variables or Ruby code
• To generate 0..n XML elements
• Include just the elements you need
Modelling server.xml … and <include>s
• Simple, minimal, but rich (!!)
• 128 different element types
• How to represent server config in code?
88
98. 3. Manipulate using REXML pure Ruby parser
• Ruby hash <-> XML
• XPath to check for presence of required
elements
• Use <include> and variables to simplify
Modelling server.xml … and <include>s
• Simple, minimal, but rich (!!)
• 128 different element types
• How to represent server config in code?
89
119. Puppet and WebSphere Liberty Profile
95
Puppet MasterPuppet workstation
node_2 node_3
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Apps
Liberty Profile
Server 2
Apps
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Apps
Liberty Profile
Server 3
Apps
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 4
Apps
Apps
node_1
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Apps
Liberty Profile
Server 1
Apps
…
Grid
Container
WXS
Caching
Tier
Grid
Container
Grid
Container
Grid
Container
Grid
Container
Grid
Container
Catalog
Server
poll poll poll
upload puppet module
puppet-agent puppet-agent puppet-agent
node_4
HTTP Server
puppet-agent
120. Puppet and WebSphere Liberty Profile
95
Puppet MasterPuppet workstation
node_2 node_3
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Apps
Liberty Profile
Server 2
Apps
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Apps
Liberty Profile
Server 3
Apps
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Liberty Profile
Server 4
Apps
Apps
node_1
F
e
a
t
u
r
e
M
a
n
a
g
e
r
H
T
T
P
T
r
a
n
s
p
o
r
t
A
p
p
l
i
c
a
t
i
o
n
M
a
n
a
g
e
r
s
e
r
v
l
e
t
-
3
.
0
j
s
p
-
2
.
2
a
p
p
s
e
c
u
r
i
t
y
-
1
.
0
r
e
s
t
c
o
n
n
e
c
t
o
r
-
1
.
0
j
p
a
-
2
.
0
Apps
Liberty Profile
Server 1
Apps
…
Grid
Container
WXS
Caching
Tier
Grid
Container
Grid
Container
Grid
Container
Grid
Container
Grid
Container
Catalog
Server
poll poll poll
upload puppet module
Puppet: http://github.com/WASdev/ci.puppet.wlp Article: http://ibm.biz/liberty-p
puppet-agent puppet-agent puppet-agent
node_4
HTTP Server
puppet-agent
121. UrbanCode Deploy: Deployment Automation
96
• Manage application
components and versions
• Manage configurations across
all environments
• Offer secure ‘self-service’ capabilities
• Increase transparency
• Ensure governance and compliancy
Visibility and automated control of your application deployment process
125. Version applications with Snapshots
100
Capture tested component versions and configuration settings as a snapshot
that is promoted to other environments for better visibility and control
126. Reliable Middleware Configuration Management
101
Artifact Library
Application
EAR
WAR
DB
Cluster
template
Exemplar
WAS Cell
Plugin
Import
configuration
WAS Configuration Template Creation
+ Template
Assembled
PROD
QA
Dev
Deploy and promote application and
configuration across environments
127. How do they fit?
• Convergent
• Chef, Puppet poll for
updated configuration, to
ensure a defined state
E.g. O/S and middleware
patches and configuration
• Directed
• UrbanCode directs & co-
ordinates changes across
machines
E.g. DB schema before
application update before
web server change
103
Networking
Storage
Servers
Virtualization
O/S
Middleware
Mid Config
Data
Applications
Infrastructure
as a Service
UC Deploy
Man/Auto
PureApplication
System
SmartCloud
Orchestrator
SoftLayer
Increasingfrequencyofchange
128. Try it out …
104
• Continuous development pipeline ‘lab’ on wasdev.net
• http://ibm.biz/liberty-devops
• Getting started with Liberty & Puppet
• http://ibm.biz/liberty-p
• Deploying Liberty with UCD
• http://ibm.biz/liberty-ucd
129. Chef, Puppet & UrbanCode Deploy
• “Infrastructure as Code” – Chef and Puppet
• Open source (ASLv2 license)
• IBM UrbanCode Deploy
• Free trial
• Find out more at
• www.puppetlabs.com
• www.chef.io
• developer.ibm.com/urbancode
105
130. Visit the WASdev community
• WebSphere Liberty Profile Developers Edition
• Free to download anonymously
• Can be put into production (max 2Gb heap per organisation)
• WebSphere Application Server Developer Tools
• Downloads, Articles, QA
• Open source projects: samples, libraries, tools, integrations
106wasdev.net
github.com/WASdev
132. Notices and Disclaimers (con’t)
Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products in connection with this
publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM
products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products.
IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to
interoperate with IBM’s products. IBM EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED,
INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE.
The provision of the information contained herein is not intended to, and does not, grant any right or license under any
IBM patents, copyrights, trademarks or other intellectual property right.
• IBM, the IBM logo, ibm.com, Bluemix, Blueworks Live, CICS, Clearcase, DOORS®, Enterprise Document
Management System™, Global Business Services ®, Global Technology Services ®, Information on Demand,
ILOG, Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™,
PureApplication®, pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®,
pureScale®, PureSystems®, QRadar®, Rational®, Rhapsody®, SoDA, SPSS, StoredIQ, Tivoli®, Trusteer®,
urban{code}®, Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of
International Business Machines Corporation, registered in many jurisdictions worldwide. Other product and
service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on
the Web at "Copyright and trademark information" at: www.ibm.com/legal/copytrade.shtml.
133. Thank You
Your Feedback is
Important!
Access the InterConnect 2015
Conference CONNECT Attendee
Portal to complete your session
surveys from your smartphone,
laptop or conference kiosk.