View
526
Download
0
Category
Preview:
Citation preview
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
Using Puppet, Chef and Docker
Nordic ACE Director Tour 2015 Ronald van Luttikhuizen Managing partner @ eProseed NL September 2015
PROVISIONING FUSION MIDDLEWARE
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
INTRODUCTION
• About me – Managing partner at eProseed
– Oracle Ace Director, working with Oracle tooling since 1998
– Author of SOA Made Simple
– Experience with Oracle SOA Suite since version 10g
• About eProseed – HQ in Luxemburg
– Local offices in several parts of the world
– Award winning Oracle partner
– eProseed Cloud, eProseed Deployer
2
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | 3
Demo | start
Server provisioning
Puppet
Chef
Docker
Demo | result
AGENDA
3
4
5
2
1
6
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | 4
DEMO | START
WLS Admin Server
WLS Cluster - OSB
WLS Cluster - SOA
Database (SOAINFRA)
• Provisioning of complete Oracle SOA Suite stack
– SOA Cluster
– OSB Cluster
– BAM Cluster
– RCU
• Approx. 20 minutes
• Inspection of the environment and explanation at the end of this session
WLS Cluster - BAM
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | 5
Demo | start
Server provisioning
Puppet
Chef
Docker
Demo | result
AGENDA
3
4
5
2
1
6
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | 6
PROVISIONING STRATEGIES
Appliance
Do-It-Yourself
Cloud
Mix
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | 7
SERVER PROVISONING | DELIVERY
• Automated installations and rollbacks • Inject environment variables, smoke-testing
• Automated builds, tests, and packaging from version control
• Central archiving in repository or artifactory
• Automated provisioning of middleware • High frequency of changes to servers (e.g. patches)
• Automated provisioning of OS-ready images or containers • Low frequency of changes to base images
Machine/Container
Provisioning
Server & Middleware
Provisioning
Application Building &
Packaging
Application Deployment
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | 8
SERVER PROVISONING | EVOLUTION
Artisan Server Crafting
Custom & Non-portable
Scripts
Automated & Standard CM
Tools
Immutable Servers & Unikernels
VMs, Chef, Puppet, etc.
Docker
Manual Installation, Documents
Shell scripts
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
• Artisan server crafting
– Boring
– Stressful
– Error-prone
– Time-consuming
– Non-scalable & expensive
• Too little time for things that matter
SERVER PROVISONING | THE TRADITIONAL WAY
9
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
WLS, OSB, SOA
Suite Database Server
Operating System
WebLogic
OSB
SOA Suite
Domain creation
Initial Domain setup
Operating system
Database software
Database creation
SOA Suite Repository
40
337 Total actions
13
8
10
10
40
40
30
5
8
YUM + Packages / JVM / Ulimits / Kernel / User / Group / Directories
WebLogic / BSU / NodeManager
OSB / OPatch
SOA Suite / OPatch
Create Domain
Logs / Security / JMS / WebApps / DataSources / Resource Adapters
Source: Roll Out a Complete Oracle Fusion Middleware Env in Less than 10min by Edwin Biemond
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
SERVER PROVISIONING | HOW IT CAN BE
• Automated configuration management
– Describe a system once, apply as often as you want
– Automate the repetitive, focus on improvements and “real” problems
– Predictable results
– Fast provisioning
– Keep servers in sync
• Puppet and Chef are examples of tools for automated configuration management
11
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
SERVER PROVISIONING | INFRASTRUCTURE AS CODE
• Advantages
– Configuration is documentation and always up-to-date
– Configuration is version controlled
– Configurations are defined in a machine- and OS-independent domain language so the manifests are portable and can be reused (trade-off)
– Change and test configuration, not the server, and re-apply
12
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | 13
Demo | start
Server provisioning
Puppet
Chef
Docker
Demo | result
AGENDA
4
5
1
6
2
3
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
PUPPET EXAMPLE | APACHE HTTP SERVER
package { "httpd":
name => "httpd.x86_64",
ensure => "present",
}
file { "http.conf":
path => "/etc/httpd/conf/httpd.conf",
owner => root,
group => root,
mode => 0644,
source => "puppet:///modules/apache/httpd.conf",
require => Package["httpd"],
}
service { "httpd":
ensure => running,
enable => true,
subscribe => File["http.conf"],
}
• Manifests
• Resources
– Name
– Attributes and values
• Ordering and dependencies
14
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
MORE ON PUPPET | BUILDING BLOCKS
• Variables and (custom) facts
• Node declarations
• Classes and Modules
• Defined resource types
• Templates
• Puppet Forge
if $operatingsystem == 'CentOS'
node 'www1.example.com' {
include common
include ohs
}
node 'db1.example.com' {
include common
include oraclexe
}
file { "http.conf":
path => "/etc/httpd/conf/httpd.conf",
owner => 'root',
group => 'root',
mode => '0644',
content => template('config/httpd.erb'),
}
15
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
MORE ON PUPPET | ARCHITECTURE & RUNTIME
versus
16
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
MORE ON PUPPET | CONSOLE
17
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
WANT TO KNOW MORE ABOUT PUPPET …
18
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | 19
Demo | start
Server provisioning
Puppet
Chef
Docker
Demo | result
AGENDA
5
1
6
2
3
4
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
CHEF | ARCHITECTURE
Central Chef Server
Multiple Administrators
Repository
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
CHEF | TERMINOLOGY
– Node, Server, Workstation
– Chef-client asks Chef-server about the policy for the node
– Resources: a component and the desired state
– Recipes: describe resources and desired state
– Cookbooks: sets of recipes grouped together, also includes templates and source files, etc.
– Run List: recipes from cookbooks you want to run
– LWRP: custom actions
21
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
CHEF | EXAMPLE RECIPE
• paca
Policy says package
should be installed
This service should be enabled
on reboot, and must be running
Template specifies the contents
required
Source: Chef Fundamentals Webinar 1 #LEARNCHEF
22
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
CHEF MANAGEMENT CONSOLE
23
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
MORE ABOUT CHEF
24
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | 25
Demo | start
Server provisioning
Puppet
Chef
Docker
Demo | result
AGENDA
3
4
5
2
1
6
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
DOCKER | INTRODUCTION
Docker allows you to create reusable “containers” with applications in them. These containers can be distributed and will run on several platforms.
• Container, not VMs and Hypervisor
• Linux-only
• Layering
• Provisioning speed, performance, smaller image size
• Dockerfile, Image, Container, Registry (build/ship/run)
• Maturity and security
26
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
DOCKER
• Docker and CM tools
– Modify nodes versus wipe/create new nodes
– Abstraction and learning-curve
– Support for complex configurations
• Docker versus or together with CM tools?
– CM tool to provision Docker host and perform more complex provisioning inside Docker container
– Docker to create, distribute and run containers
– Docker to easily layer images (e.g. for demo’s)
• Oracle and Docker
– (Limited) support for Docker on Oracle Linux, WebLogic certified to run in Docker container
– Dockerfiles and Docker images (Oracle Linux, WebLogic)
27
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
TAKE-AWAYS | GENERAL
• Automate delivery
• Fundamental, not a value-add anymore
• Holistic approach on software delivery
• Not just technology, people and process as well
• Incremental approach
• No single tool that does it all
28
Do you need and want to do it yourselves?
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | 29
Demo | start
Server provisioning
Puppet
Chef
Docker
Demo | result
AGENDA
3
4
5
2
1
6
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. | 30
DEMO | RESULT
WLS Admin Server
WLS Cluster - OSB
WLS Cluster - SOA
Database (SOAINFRA)
Vagrant
• Create and spin up VM’s
• Trigger Puppet run
Puppet
• Required packages
• Kernel params, users, entropy, etc.
• DB, JDK, WLS, SOA Suite, Service Bus
• RCU
• NodeManager and Domain configuration
• Patches
• Deployment of test composite Source: https://github.com/biemond/biemond-orawls
WLS Cluster - BAM
Copyright © 2014, eProseed and/or its affiliates. All rights reserved. |
TAKE-AWAYS | CHEF VS PUPPET
• Style guides & coding standards
• Open-Source versus Enterprise
• Hosting
• Support for OS & Platforms
• Plug-ins & Tools
• Pricing model
• Language
32
Recommended