SlideShare a Scribd company logo
F5 Programmability and Puppet 
Colin Walker, Sr. Product Management Engineer 
September 2014
Programmability
What is Programmability? 
• Custom business logic to solve complex 
problems 
• Glue to hold together deployments 
• Turns “Not possible” into “with a little work…” 
• Offers the ability to be infinitely tunable 
• Leaves no deployment behind 
© F5 Networks, Inc. 3
Programmability – Required for App Fluency 
© F5 Networks, Inc. 4
What is Programmability at F5? 
iRules iControl iApps iCall iSense tmsh 
Data Plane 
Programmability 
Programmable 
Management API in 
SOAP and REST 
Enterprise Apps, 
Orchestration and 
BIG-IQ 
Event based 
handlers 
Scriptable 
monitors 
On-box Tcl based 
shell and 
programming 
utility 
DevCentral 
© F5 Networks, Inc. 5
Automation and Deployment
“High performing organizations deploy code 30 
times more often and 8000 times faster than their 
peers, deploying multiple times a day, versus an 
average of once a month. They also have double 
the change success rate and restore service 12 
times faster than their peers. The net results are 
lower business risk and more operational agility.” 
—2013 State of DevOps Report, 
Puppet Labs 
© F5 Networks, Inc. 7
Typical Application Deployment 
© F5 Networks, Inc. 8
Typical Application Deployment 
© F5 Networks, Inc. 9
REST
Why REST? Why Now? 
• An application programming interface (API) simply specifies how 
some software components should interact with each other 
API Server 
• Traditional APIs were SOAP/CRUD based using XML 
or JSON – REST APIs are more standards based 
© F5 Networks, Inc. 11
iControl – SOAP to REST 
• iControl – The original control plane automation tool from F5 
• Programmatic access to anything that you can do via the CLI or GUI 
• Remote API access 
• SOAP/XML based 
• iControl REST – A new approach to remote BIG-IP scripting 
• REST based architecture uses simple, small command structures. 
• Tied directly to tmsh commands 
• Commands you know, very low bar to entry 
• Less barrier to developers promoting functionality via API 
• Symmetry between GUI/CLI & API dev/maintenance 
• Rapid development and rollout 
© F5 Networks, Inc. 12
tmsh vs iControl REST? 
tmsh: 
modify ltm pool http-pool members modify { 10.133.20.60:any { session user-disabled } } 
iControl REST: 
curl -k -u admin:admin -H "Content-Type: application/json" -X PUT -d '{"session": "user-enabled"}' 
https://localhost/mgmt/tm/ltm/pool/test_1-pool/members/10.133.20.60:any 
© F5 Networks, Inc. 13
Perl – Create Virtual: 
# create virtual 
&create_http_virtual_server($bigip, VS_NAME, VS_ADDRESS, VS_PORT, POOL_NAME); 
print "created virtual server "" . VS_NAME . "" with destination " . VS_ADDRESS . ":" . 
"...n"; 
sub create_http_virtual_server { 
my ($bigip, $name, $address, $port, $pool) = @_; 
# define virtual properties 
my %payload; 
$payload{'kind'} = 'tm:ltm:virtual:virtualstate'; 
$payload{'name'} = $name; 
$payload{'description'} = 'A Perl REST::Client test virtual server'; 
$payload{'destination'} = $address . ':' . $port; 
$payload{'mask'} = '255.255.255.255'; 
$payload{'ipProtocol'} = 'tcp'; 
$payload{'sourceAddressTranslation'} = { 'type' => 'automap' }; 
$payload{'profiles'} = [ 
{ 'kind' => 'ltm:virtual:profile', 'name' => 'http' }, 
{ 'kind' => 'ltm:virtual:profile', 'name' => 'tcp' } 
]; 
$payload{'pool'} = $pool; 
my $json = encode_json %payload; 
$bigip->POST('ltm/virtual', $json); 
© F5 Networks, Inc. 14 
} 
More RESTful Examples 
Python – Create Virtual: 
# create virtual 
create_http_virtual(bigip, VS_NAME, VS_ADDRESS, VS_PORT, POOL_NAME) 
print "created virtual server "%s" with destination %s:%s..." % (VS_NAME, VS_ADDRESS, 
VS_PORT) 
def create_http_virtual(bigip, name, address, port, pool): 
payload = {} 
# define test virtual 
payload['kind'] = 'tm:ltm:virtual:virtualstate' 
payload['name'] = name 
payload['description'] = 'A Python REST client test virtual server' 
payload['destination'] = '%s:%s' % (address, port) 
payload['mask'] = '255.255.255.255' 
payload['ipProtocol'] = 'tcp' 
payload['sourceAddressTranslation'] = { 'type' : 'automap' } 
payload['profiles'] = [ 
{ 'kind' : 'ltm:virtual:profile', 'name' : 'http' }, 
{ 'kind' : 'ltm:virtual:profile', 'name' : 'tcp' } 
] 
payload['pool'] = pool 
bigip.post('%s/ltm/virtual' % BIGIP_URL_BASE, data=json.dumps(payload))
What’s this REST stuff? 
en.wikipedia.org/wiki/Representational_state_transfer 
• REST is based on the following simple ideas: 
• REST uses URIs to refer to and to access resources 
• Uses HTTP methods to change the state of resources: 
GET – retrieve details or a list of something 
POST – create something on the server side 
PUT – update something on the server side 
DELETE – delete something on the server side 
© F5 Networks, Inc. 15
And Who is this JSON guy? 
XML JSON 
<person> 
<first name>Johnny</firstname> 
<last name>Userguy</lastname> 
</person> 
{ "person": 
{ 
"firstname": “Johnny", 
"lastname": “Userguy" 
} 
} 
JSON (JavaScript Object Notation) is simply a way of passing data to a 
web page in a serialized way that is very easy to reconstitute into a 
javascript object. 
JSON classes are built into every major javascript engine, so every 
browser has JSON encode/decode support. 
{ 
"name":"bigip-1-1", 
"protocol":"HTTP", 
"port": "80" 
} 
© F5 Networks, Inc. 16
What does an F5 REST call look like? 
© F5 Networks, Inc. 17
iControl REST API
iControl REST API – How to start? 
• Starting Point at DevCentral : 
• https://devcentral.f5.com/wiki/iControlREST.HomePage.ashx 
• Download Documentation: 
• https://devcentral.f5.com/d/icontrol-rest-user-guide-version-1150?download=true 
• Some good examples are available here: 
• https://devcentral.f5.com/wiki/iControlREST.CodeShare.ashx 
© F5 Networks, Inc. 19
iControl REST API – Direct Access 
• cURL 
• Web Browser 
• Browser Plug-In 
# curl -k -u admin:admin https://172.29.86.62/mgmt/tm/ 
{"items":[{"link":"https://localhost/mgmt/tm/cloud/ltm/node-addresses"},{" 
link":"https://localhost/mgmt/tm/cloud/ltm/pool-members"},{" 
link":"https://localhost/mgmt/tm/cloud/ltm/pools"},{"li 
nk":"https://localhost/mgmt/tm/cloud/ltm/virtual-servers"},{" 
link":"https://localhost/mgmt/tm/cloud/services/iapp/ht 
tp_Charlie_61/health"},{"link":"https://localhost/mgmt/tm"},{"link" 
:"https://localhost/mgmt/tm/shared/licensing/activation"},{"link":" 
https://localhost/mgmt/tm/shared/licensing/registration"},{"link":" 
https://localhost/mgmt/tm/cloud/templates/iapp"},{"link":"https://l 
ocalhost/mgmt/tm/shared/sys/backup"},{"link":"https://localhost/mgm 
t/tm/shared/iapp/blocks"},{"link":"https://localhost/mgmt/tm/shared 
/iapp/health-prefix-map 
© F5 Networks, Inc. 20
REST API example – list selfip 
# curl -k -u admin:admin https://172.29.86.62/mgmt/tm/net/self/internal_self2 | sed s/,/,n/g 
{"kind":"tm:net:self:selfstate", 
"name":"internal_self2", 
"generation":0, 
"lastUpdatedMicros":0, 
"selfLink":"https://localhost/mgmt/tm/net/self/internal_self2", 
"partition":"/Common/", 
"address":"10.81.60.2/8", 
"floating":"disabled", 
"inheritedTrafficGroup":"false", 
"trafficGroup":"traffic-group-local-only", 
"unit":0, 
"vlan":"internal"} 
© F5 Networks, Inc. 21
REST API Example – Self IP 
© F5 Networks, Inc. 22
REST API – Object Creation 
© F5 Networks, Inc. 23
Why Puppet and F5? 
• Security 
• $$$$ / Budgeting 
• Take advantage of virtualization 
• Avoid misconfiguration 
• Lessened provisioning time 
• Replication of efforts 
• Strong Partner Integration 
© F5 Networks, Inc. 24
“Puppet Enterprise Supported Modules, for 
example, are ones that have been fully tested and 
validated for use with Puppet Enterprise. A number 
of such modules are already available, and new 
modules for managing Microsoft SQL Server, F5 
load balancers, and Arista networking equipment 
are coming in the fourth quarter, the company 
said.” 
-Puppet-wearing devs: There's now an app (or two) for that, 
The Register, Setpember, 2014 
© F5 Networks, Inc. 25
Next Steps 
• Check out the code samples on F5.com and DevCentral 
• Read the programmability white paper on DevCentral: 
http://www.f5.com/pdf/white-papers/the-programmable-network-white-paper. 
pdf 
• Provide your engineers with a starting point with free training from F5 
University: https://f5.com/education/training 
If I can be of further assistance please contact me: 
c.walker@f5.com | @colin_walker
Fully Automate Application Delivery with Puppet and F5 - PuppetConf 2014
Ad

More Related Content

What's hot (20)

F5 Solutions for Service Providers
F5 Solutions for Service ProvidersF5 Solutions for Service Providers
F5 Solutions for Service Providers
BAKOTECH
 
Presentation network design and security for your v mware view deployment w...
Presentation   network design and security for your v mware view deployment w...Presentation   network design and security for your v mware view deployment w...
Presentation network design and security for your v mware view deployment w...
solarisyourep
 
Get more versatile and scalable protection with F5 BIG-IP
Get more versatile and scalable protection with F5 BIG-IPGet more versatile and scalable protection with F5 BIG-IP
Get more versatile and scalable protection with F5 BIG-IP
F5NetworksAPJ
 
Novinky F5
Novinky F5Novinky F5
Novinky F5
MarketingArrowECS_CZ
 
New Products Overview: Use Cases and Demos
New Products Overview: Use Cases and DemosNew Products Overview: Use Cases and Demos
New Products Overview: Use Cases and Demos
Caitlin Magat
 
BIG IP F5 GTM Presentation
BIG IP F5 GTM PresentationBIG IP F5 GTM Presentation
BIG IP F5 GTM Presentation
PCCW GLOBAL
 
What’s New at Cloudflare: New Product Launches
What’s New at Cloudflare: New Product LaunchesWhat’s New at Cloudflare: New Product Launches
What’s New at Cloudflare: New Product Launches
Cloudflare
 
F5 beyond load balancer (nov 2009)
F5 beyond load balancer (nov 2009)F5 beyond load balancer (nov 2009)
F5 beyond load balancer (nov 2009)
Information Technology
 
The WAF book intro protection elements v1.0 lior rotkovitch
The WAF book intro protection elements v1.0 lior rotkovitchThe WAF book intro protection elements v1.0 lior rotkovitch
The WAF book intro protection elements v1.0 lior rotkovitch
Lior Rotkovitch
 
F5 TMOS v13.0
F5 TMOS v13.0F5 TMOS v13.0
F5 TMOS v13.0
MarketingArrowECS_CZ
 
NGINX Plus R18: What's new
NGINX Plus R18: What's newNGINX Plus R18: What's new
NGINX Plus R18: What's new
NGINX, Inc.
 
F5's Dynamic DNS Services
F5's Dynamic DNS ServicesF5's Dynamic DNS Services
F5's Dynamic DNS Services
F5 Networks
 
Bluecoat Services
Bluecoat ServicesBluecoat Services
Bluecoat Services
ChessBall
 
Securing Internal Applications with Cloudflare Access
Securing Internal Applications with Cloudflare AccessSecuring Internal Applications with Cloudflare Access
Securing Internal Applications with Cloudflare Access
Cloudflare
 
Reversing blue coat proxysg - wa-
Reversing blue coat proxysg - wa-Reversing blue coat proxysg - wa-
Reversing blue coat proxysg - wa-
idsecconf
 
Wccp introduction final2
Wccp introduction final2Wccp introduction final2
Wccp introduction final2
bui thequan
 
Why Many Websites are still Insecure (and How to Fix Them)
Why Many Websites are still Insecure (and How to Fix Them)Why Many Websites are still Insecure (and How to Fix Them)
Why Many Websites are still Insecure (and How to Fix Them)
Cloudflare
 
F5 Cloud Story
F5 Cloud StoryF5 Cloud Story
F5 Cloud Story
MarketingArrowECS_CZ
 
How CDNs Can improve Mobile Application Performance
How CDNs Can improve Mobile Application PerformanceHow CDNs Can improve Mobile Application Performance
How CDNs Can improve Mobile Application Performance
Cloudflare
 
F5 9.x to 10.x Upgrade Customer Presentation
F5 9.x to 10.x Upgrade Customer PresentationF5 9.x to 10.x Upgrade Customer Presentation
F5 9.x to 10.x Upgrade Customer Presentation
F5 Networks
 
F5 Solutions for Service Providers
F5 Solutions for Service ProvidersF5 Solutions for Service Providers
F5 Solutions for Service Providers
BAKOTECH
 
Presentation network design and security for your v mware view deployment w...
Presentation   network design and security for your v mware view deployment w...Presentation   network design and security for your v mware view deployment w...
Presentation network design and security for your v mware view deployment w...
solarisyourep
 
Get more versatile and scalable protection with F5 BIG-IP
Get more versatile and scalable protection with F5 BIG-IPGet more versatile and scalable protection with F5 BIG-IP
Get more versatile and scalable protection with F5 BIG-IP
F5NetworksAPJ
 
New Products Overview: Use Cases and Demos
New Products Overview: Use Cases and DemosNew Products Overview: Use Cases and Demos
New Products Overview: Use Cases and Demos
Caitlin Magat
 
BIG IP F5 GTM Presentation
BIG IP F5 GTM PresentationBIG IP F5 GTM Presentation
BIG IP F5 GTM Presentation
PCCW GLOBAL
 
What’s New at Cloudflare: New Product Launches
What’s New at Cloudflare: New Product LaunchesWhat’s New at Cloudflare: New Product Launches
What’s New at Cloudflare: New Product Launches
Cloudflare
 
The WAF book intro protection elements v1.0 lior rotkovitch
The WAF book intro protection elements v1.0 lior rotkovitchThe WAF book intro protection elements v1.0 lior rotkovitch
The WAF book intro protection elements v1.0 lior rotkovitch
Lior Rotkovitch
 
NGINX Plus R18: What's new
NGINX Plus R18: What's newNGINX Plus R18: What's new
NGINX Plus R18: What's new
NGINX, Inc.
 
F5's Dynamic DNS Services
F5's Dynamic DNS ServicesF5's Dynamic DNS Services
F5's Dynamic DNS Services
F5 Networks
 
Bluecoat Services
Bluecoat ServicesBluecoat Services
Bluecoat Services
ChessBall
 
Securing Internal Applications with Cloudflare Access
Securing Internal Applications with Cloudflare AccessSecuring Internal Applications with Cloudflare Access
Securing Internal Applications with Cloudflare Access
Cloudflare
 
Reversing blue coat proxysg - wa-
Reversing blue coat proxysg - wa-Reversing blue coat proxysg - wa-
Reversing blue coat proxysg - wa-
idsecconf
 
Wccp introduction final2
Wccp introduction final2Wccp introduction final2
Wccp introduction final2
bui thequan
 
Why Many Websites are still Insecure (and How to Fix Them)
Why Many Websites are still Insecure (and How to Fix Them)Why Many Websites are still Insecure (and How to Fix Them)
Why Many Websites are still Insecure (and How to Fix Them)
Cloudflare
 
How CDNs Can improve Mobile Application Performance
How CDNs Can improve Mobile Application PerformanceHow CDNs Can improve Mobile Application Performance
How CDNs Can improve Mobile Application Performance
Cloudflare
 
F5 9.x to 10.x Upgrade Customer Presentation
F5 9.x to 10.x Upgrade Customer PresentationF5 9.x to 10.x Upgrade Customer Presentation
F5 9.x to 10.x Upgrade Customer Presentation
F5 Networks
 

Viewers also liked (9)

PuppetDB: One Year Faster - PuppetConf 2014
PuppetDB: One Year Faster - PuppetConf 2014PuppetDB: One Year Faster - PuppetConf 2014
PuppetDB: One Year Faster - PuppetConf 2014
Puppet
 
Managing Network Security Monitoring at Large Scale with Puppet - PuppetConf ...
Managing Network Security Monitoring at Large Scale with Puppet - PuppetConf ...Managing Network Security Monitoring at Large Scale with Puppet - PuppetConf ...
Managing Network Security Monitoring at Large Scale with Puppet - PuppetConf ...
Puppet
 
Infrastructure as Code for Beginners
Infrastructure as Code for BeginnersInfrastructure as Code for Beginners
Infrastructure as Code for Beginners
David Völkel
 
Puppetconf2016 Puppet on Windows
Puppetconf2016 Puppet on WindowsPuppetconf2016 Puppet on Windows
Puppetconf2016 Puppet on Windows
Nicolas Corrarello
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
Robert Greiner
 
Mastering DevOps With Oracle
Mastering DevOps With OracleMastering DevOps With Oracle
Mastering DevOps With Oracle
Kelly Goetsch
 
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
enpit GmbH & Co. KG
 
WebLogic Administration und Deployment mit WLST
WebLogic Administration und Deployment mit WLSTWebLogic Administration und Deployment mit WLST
WebLogic Administration und Deployment mit WLST
enpit GmbH & Co. KG
 
Digital Strategy 101
Digital Strategy 101Digital Strategy 101
Digital Strategy 101
Bud Caddell
 
PuppetDB: One Year Faster - PuppetConf 2014
PuppetDB: One Year Faster - PuppetConf 2014PuppetDB: One Year Faster - PuppetConf 2014
PuppetDB: One Year Faster - PuppetConf 2014
Puppet
 
Managing Network Security Monitoring at Large Scale with Puppet - PuppetConf ...
Managing Network Security Monitoring at Large Scale with Puppet - PuppetConf ...Managing Network Security Monitoring at Large Scale with Puppet - PuppetConf ...
Managing Network Security Monitoring at Large Scale with Puppet - PuppetConf ...
Puppet
 
Infrastructure as Code for Beginners
Infrastructure as Code for BeginnersInfrastructure as Code for Beginners
Infrastructure as Code for Beginners
David Völkel
 
Puppetconf2016 Puppet on Windows
Puppetconf2016 Puppet on WindowsPuppetconf2016 Puppet on Windows
Puppetconf2016 Puppet on Windows
Nicolas Corrarello
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
Robert Greiner
 
Mastering DevOps With Oracle
Mastering DevOps With OracleMastering DevOps With Oracle
Mastering DevOps With Oracle
Kelly Goetsch
 
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
Deployment Best Practices on WebLogic Server (DOAG IMC Summit 2013)
enpit GmbH & Co. KG
 
WebLogic Administration und Deployment mit WLST
WebLogic Administration und Deployment mit WLSTWebLogic Administration und Deployment mit WLST
WebLogic Administration und Deployment mit WLST
enpit GmbH & Co. KG
 
Digital Strategy 101
Digital Strategy 101Digital Strategy 101
Digital Strategy 101
Bud Caddell
 
Ad

Similar to Fully Automate Application Delivery with Puppet and F5 - PuppetConf 2014 (20)

how to use openstack api
how to use openstack apihow to use openstack api
how to use openstack api
Liang Bo
 
MesosCon - Be a microservices hero
MesosCon - Be a microservices heroMesosCon - Be a microservices hero
MesosCon - Be a microservices hero
Dragos Dascalita Haut
 
Introduction to CloudStack API
Introduction to CloudStack APIIntroduction to CloudStack API
Introduction to CloudStack API
Krunal Jain
 
REST API for your WP7 App
REST API for your WP7 AppREST API for your WP7 App
REST API for your WP7 App
Agnius Paradnikas
 
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesIBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
Chris Bailey
 
Working with PowerVC via its REST APIs
Working with PowerVC via its REST APIsWorking with PowerVC via its REST APIs
Working with PowerVC via its REST APIs
Joe Cropper
 
REST in Peace
REST in PeaceREST in Peace
REST in Peace
Kate Marshalkina
 
Consuming RESTful services in PHP
Consuming RESTful services in PHPConsuming RESTful services in PHP
Consuming RESTful services in PHP
Zoran Jeremic
 
Consuming RESTful Web services in PHP
Consuming RESTful Web services in PHPConsuming RESTful Web services in PHP
Consuming RESTful Web services in PHP
Zoran Jeremic
 
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesNode Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Chris Bailey
 
Micro service architecture
Micro service architectureMicro service architecture
Micro service architecture
uEngine Solutions
 
Zendcon 09
Zendcon 09Zendcon 09
Zendcon 09
Wade Arnold
 
Elasticsearch und die Java-Welt
Elasticsearch und die Java-WeltElasticsearch und die Java-Welt
Elasticsearch und die Java-Welt
Florian Hopf
 
Automation day red hat ansible
   Automation day red hat ansible    Automation day red hat ansible
Automation day red hat ansible
Rodrigo Missiaggia
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
Lindsay Holmwood
 
Intro to node and mongodb 1
Intro to node and mongodb   1Intro to node and mongodb   1
Intro to node and mongodb 1
Mohammad Qureshi
 
Kong API Gateway
Kong API Gateway Kong API Gateway
Kong API Gateway
Chris Mague
 
REST with Eve and Python
REST with Eve and PythonREST with Eve and Python
REST with Eve and Python
PiXeL16
 
The Real World - Plugging the Enterprise Into It (nodejs)
The Real World - Plugging  the Enterprise Into It (nodejs)The Real World - Plugging  the Enterprise Into It (nodejs)
The Real World - Plugging the Enterprise Into It (nodejs)
Aman Kohli
 
All Things Open 2019 weave-services-istio
All Things Open 2019 weave-services-istioAll Things Open 2019 weave-services-istio
All Things Open 2019 weave-services-istio
Lin Sun
 
how to use openstack api
how to use openstack apihow to use openstack api
how to use openstack api
Liang Bo
 
Introduction to CloudStack API
Introduction to CloudStack APIIntroduction to CloudStack API
Introduction to CloudStack API
Krunal Jain
 
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesIBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
Chris Bailey
 
Working with PowerVC via its REST APIs
Working with PowerVC via its REST APIsWorking with PowerVC via its REST APIs
Working with PowerVC via its REST APIs
Joe Cropper
 
Consuming RESTful services in PHP
Consuming RESTful services in PHPConsuming RESTful services in PHP
Consuming RESTful services in PHP
Zoran Jeremic
 
Consuming RESTful Web services in PHP
Consuming RESTful Web services in PHPConsuming RESTful Web services in PHP
Consuming RESTful Web services in PHP
Zoran Jeremic
 
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesNode Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Chris Bailey
 
Elasticsearch und die Java-Welt
Elasticsearch und die Java-WeltElasticsearch und die Java-Welt
Elasticsearch und die Java-Welt
Florian Hopf
 
Burn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websitesBurn down the silos! Helping dev and ops gel on high availability websites
Burn down the silos! Helping dev and ops gel on high availability websites
Lindsay Holmwood
 
Intro to node and mongodb 1
Intro to node and mongodb   1Intro to node and mongodb   1
Intro to node and mongodb 1
Mohammad Qureshi
 
Kong API Gateway
Kong API Gateway Kong API Gateway
Kong API Gateway
Chris Mague
 
REST with Eve and Python
REST with Eve and PythonREST with Eve and Python
REST with Eve and Python
PiXeL16
 
The Real World - Plugging the Enterprise Into It (nodejs)
The Real World - Plugging  the Enterprise Into It (nodejs)The Real World - Plugging  the Enterprise Into It (nodejs)
The Real World - Plugging the Enterprise Into It (nodejs)
Aman Kohli
 
All Things Open 2019 weave-services-istio
All Things Open 2019 weave-services-istioAll Things Open 2019 weave-services-istio
All Things Open 2019 weave-services-istio
Lin Sun
 
Ad

More from Puppet (20)

Puppet Community Day: Planning the Future Together
Puppet Community Day: Planning the Future TogetherPuppet Community Day: Planning the Future Together
Puppet Community Day: Planning the Future Together
Puppet
 
The Evolution of Puppet: Key Changes and Modernization Tips
The Evolution of Puppet: Key Changes and Modernization TipsThe Evolution of Puppet: Key Changes and Modernization Tips
The Evolution of Puppet: Key Changes and Modernization Tips
Puppet
 
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
Puppet
 
Bolt Dynamic Inventory: Making Puppet Easier
Bolt Dynamic Inventory: Making Puppet EasierBolt Dynamic Inventory: Making Puppet Easier
Bolt Dynamic Inventory: Making Puppet Easier
Puppet
 
Customizing Reporting with the Puppet Report Processor
Customizing Reporting with the Puppet Report ProcessorCustomizing Reporting with the Puppet Report Processor
Customizing Reporting with the Puppet Report Processor
Puppet
 
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
Puppet at ConfigMgmtCamp 2025 Sponsor DeckPuppet at ConfigMgmtCamp 2025 Sponsor Deck
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
Puppet
 
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
Puppet
 
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
Puppet
 
Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
Puppet
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
Puppet
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
Puppet
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
Puppet
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
Puppet
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
Puppet
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
Puppet
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
Puppet
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
Puppet
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
Puppet
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
Puppet
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
Puppet
 
Puppet Community Day: Planning the Future Together
Puppet Community Day: Planning the Future TogetherPuppet Community Day: Planning the Future Together
Puppet Community Day: Planning the Future Together
Puppet
 
The Evolution of Puppet: Key Changes and Modernization Tips
The Evolution of Puppet: Key Changes and Modernization TipsThe Evolution of Puppet: Key Changes and Modernization Tips
The Evolution of Puppet: Key Changes and Modernization Tips
Puppet
 
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
Can You Help Me Upgrade to Puppet 8? Tips, Tools & Best Practices for Your Up...
Puppet
 
Bolt Dynamic Inventory: Making Puppet Easier
Bolt Dynamic Inventory: Making Puppet EasierBolt Dynamic Inventory: Making Puppet Easier
Bolt Dynamic Inventory: Making Puppet Easier
Puppet
 
Customizing Reporting with the Puppet Report Processor
Customizing Reporting with the Puppet Report ProcessorCustomizing Reporting with the Puppet Report Processor
Customizing Reporting with the Puppet Report Processor
Puppet
 
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
Puppet at ConfigMgmtCamp 2025 Sponsor DeckPuppet at ConfigMgmtCamp 2025 Sponsor Deck
Puppet at ConfigMgmtCamp 2025 Sponsor Deck
Puppet
 
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
The State of Puppet in 2025: A Presentation from Developer Relations Lead Dav...
Puppet
 
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
Let Red be Red and Green be Green: The Automated Workflow Restarter in GitHub...
Puppet
 
Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
Puppet
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
Puppet
 
2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)2021 04-15 operational verification (with notes)
2021 04-15 operational verification (with notes)
Puppet
 
Puppet camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
Puppet
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
Puppet
 
Applying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance codeApplying Roles and Profiles method to compliance code
Applying Roles and Profiles method to compliance code
Puppet
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
Puppet
 
Enforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automationEnforce compliance policy with model-driven automation
Enforce compliance policy with model-driven automation
Puppet
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
Puppet
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
Puppet
 
Puppet: The best way to harden Windows
Puppet: The best way to harden WindowsPuppet: The best way to harden Windows
Puppet: The best way to harden Windows
Puppet
 
Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020Simplified Patch Management with Puppet - Oct. 2020
Simplified Patch Management with Puppet - Oct. 2020
Puppet
 

Recently uploaded (20)

Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Linux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdfLinux Professional Institute LPIC-1 Exam.pdf
Linux Professional Institute LPIC-1 Exam.pdf
RHCSA Guru
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...What is Model Context Protocol(MCP) - The new technology for communication bw...
What is Model Context Protocol(MCP) - The new technology for communication bw...
Vishnu Singh Chundawat
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
HCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser EnvironmentsHCL Nomad Web – Best Practices and Managing Multiuser Environments
HCL Nomad Web – Best Practices and Managing Multiuser Environments
panagenda
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 

Fully Automate Application Delivery with Puppet and F5 - PuppetConf 2014

  • 1. F5 Programmability and Puppet Colin Walker, Sr. Product Management Engineer September 2014
  • 3. What is Programmability? • Custom business logic to solve complex problems • Glue to hold together deployments • Turns “Not possible” into “with a little work…” • Offers the ability to be infinitely tunable • Leaves no deployment behind © F5 Networks, Inc. 3
  • 4. Programmability – Required for App Fluency © F5 Networks, Inc. 4
  • 5. What is Programmability at F5? iRules iControl iApps iCall iSense tmsh Data Plane Programmability Programmable Management API in SOAP and REST Enterprise Apps, Orchestration and BIG-IQ Event based handlers Scriptable monitors On-box Tcl based shell and programming utility DevCentral © F5 Networks, Inc. 5
  • 7. “High performing organizations deploy code 30 times more often and 8000 times faster than their peers, deploying multiple times a day, versus an average of once a month. They also have double the change success rate and restore service 12 times faster than their peers. The net results are lower business risk and more operational agility.” —2013 State of DevOps Report, Puppet Labs © F5 Networks, Inc. 7
  • 8. Typical Application Deployment © F5 Networks, Inc. 8
  • 9. Typical Application Deployment © F5 Networks, Inc. 9
  • 10. REST
  • 11. Why REST? Why Now? • An application programming interface (API) simply specifies how some software components should interact with each other API Server • Traditional APIs were SOAP/CRUD based using XML or JSON – REST APIs are more standards based © F5 Networks, Inc. 11
  • 12. iControl – SOAP to REST • iControl – The original control plane automation tool from F5 • Programmatic access to anything that you can do via the CLI or GUI • Remote API access • SOAP/XML based • iControl REST – A new approach to remote BIG-IP scripting • REST based architecture uses simple, small command structures. • Tied directly to tmsh commands • Commands you know, very low bar to entry • Less barrier to developers promoting functionality via API • Symmetry between GUI/CLI & API dev/maintenance • Rapid development and rollout © F5 Networks, Inc. 12
  • 13. tmsh vs iControl REST? tmsh: modify ltm pool http-pool members modify { 10.133.20.60:any { session user-disabled } } iControl REST: curl -k -u admin:admin -H "Content-Type: application/json" -X PUT -d '{"session": "user-enabled"}' https://localhost/mgmt/tm/ltm/pool/test_1-pool/members/10.133.20.60:any © F5 Networks, Inc. 13
  • 14. Perl – Create Virtual: # create virtual &create_http_virtual_server($bigip, VS_NAME, VS_ADDRESS, VS_PORT, POOL_NAME); print "created virtual server "" . VS_NAME . "" with destination " . VS_ADDRESS . ":" . "...n"; sub create_http_virtual_server { my ($bigip, $name, $address, $port, $pool) = @_; # define virtual properties my %payload; $payload{'kind'} = 'tm:ltm:virtual:virtualstate'; $payload{'name'} = $name; $payload{'description'} = 'A Perl REST::Client test virtual server'; $payload{'destination'} = $address . ':' . $port; $payload{'mask'} = '255.255.255.255'; $payload{'ipProtocol'} = 'tcp'; $payload{'sourceAddressTranslation'} = { 'type' => 'automap' }; $payload{'profiles'} = [ { 'kind' => 'ltm:virtual:profile', 'name' => 'http' }, { 'kind' => 'ltm:virtual:profile', 'name' => 'tcp' } ]; $payload{'pool'} = $pool; my $json = encode_json %payload; $bigip->POST('ltm/virtual', $json); © F5 Networks, Inc. 14 } More RESTful Examples Python – Create Virtual: # create virtual create_http_virtual(bigip, VS_NAME, VS_ADDRESS, VS_PORT, POOL_NAME) print "created virtual server "%s" with destination %s:%s..." % (VS_NAME, VS_ADDRESS, VS_PORT) def create_http_virtual(bigip, name, address, port, pool): payload = {} # define test virtual payload['kind'] = 'tm:ltm:virtual:virtualstate' payload['name'] = name payload['description'] = 'A Python REST client test virtual server' payload['destination'] = '%s:%s' % (address, port) payload['mask'] = '255.255.255.255' payload['ipProtocol'] = 'tcp' payload['sourceAddressTranslation'] = { 'type' : 'automap' } payload['profiles'] = [ { 'kind' : 'ltm:virtual:profile', 'name' : 'http' }, { 'kind' : 'ltm:virtual:profile', 'name' : 'tcp' } ] payload['pool'] = pool bigip.post('%s/ltm/virtual' % BIGIP_URL_BASE, data=json.dumps(payload))
  • 15. What’s this REST stuff? en.wikipedia.org/wiki/Representational_state_transfer • REST is based on the following simple ideas: • REST uses URIs to refer to and to access resources • Uses HTTP methods to change the state of resources: GET – retrieve details or a list of something POST – create something on the server side PUT – update something on the server side DELETE – delete something on the server side © F5 Networks, Inc. 15
  • 16. And Who is this JSON guy? XML JSON <person> <first name>Johnny</firstname> <last name>Userguy</lastname> </person> { "person": { "firstname": “Johnny", "lastname": “Userguy" } } JSON (JavaScript Object Notation) is simply a way of passing data to a web page in a serialized way that is very easy to reconstitute into a javascript object. JSON classes are built into every major javascript engine, so every browser has JSON encode/decode support. { "name":"bigip-1-1", "protocol":"HTTP", "port": "80" } © F5 Networks, Inc. 16
  • 17. What does an F5 REST call look like? © F5 Networks, Inc. 17
  • 19. iControl REST API – How to start? • Starting Point at DevCentral : • https://devcentral.f5.com/wiki/iControlREST.HomePage.ashx • Download Documentation: • https://devcentral.f5.com/d/icontrol-rest-user-guide-version-1150?download=true • Some good examples are available here: • https://devcentral.f5.com/wiki/iControlREST.CodeShare.ashx © F5 Networks, Inc. 19
  • 20. iControl REST API – Direct Access • cURL • Web Browser • Browser Plug-In # curl -k -u admin:admin https://172.29.86.62/mgmt/tm/ {"items":[{"link":"https://localhost/mgmt/tm/cloud/ltm/node-addresses"},{" link":"https://localhost/mgmt/tm/cloud/ltm/pool-members"},{" link":"https://localhost/mgmt/tm/cloud/ltm/pools"},{"li nk":"https://localhost/mgmt/tm/cloud/ltm/virtual-servers"},{" link":"https://localhost/mgmt/tm/cloud/services/iapp/ht tp_Charlie_61/health"},{"link":"https://localhost/mgmt/tm"},{"link" :"https://localhost/mgmt/tm/shared/licensing/activation"},{"link":" https://localhost/mgmt/tm/shared/licensing/registration"},{"link":" https://localhost/mgmt/tm/cloud/templates/iapp"},{"link":"https://l ocalhost/mgmt/tm/shared/sys/backup"},{"link":"https://localhost/mgm t/tm/shared/iapp/blocks"},{"link":"https://localhost/mgmt/tm/shared /iapp/health-prefix-map © F5 Networks, Inc. 20
  • 21. REST API example – list selfip # curl -k -u admin:admin https://172.29.86.62/mgmt/tm/net/self/internal_self2 | sed s/,/,n/g {"kind":"tm:net:self:selfstate", "name":"internal_self2", "generation":0, "lastUpdatedMicros":0, "selfLink":"https://localhost/mgmt/tm/net/self/internal_self2", "partition":"/Common/", "address":"10.81.60.2/8", "floating":"disabled", "inheritedTrafficGroup":"false", "trafficGroup":"traffic-group-local-only", "unit":0, "vlan":"internal"} © F5 Networks, Inc. 21
  • 22. REST API Example – Self IP © F5 Networks, Inc. 22
  • 23. REST API – Object Creation © F5 Networks, Inc. 23
  • 24. Why Puppet and F5? • Security • $$$$ / Budgeting • Take advantage of virtualization • Avoid misconfiguration • Lessened provisioning time • Replication of efforts • Strong Partner Integration © F5 Networks, Inc. 24
  • 25. “Puppet Enterprise Supported Modules, for example, are ones that have been fully tested and validated for use with Puppet Enterprise. A number of such modules are already available, and new modules for managing Microsoft SQL Server, F5 load balancers, and Arista networking equipment are coming in the fourth quarter, the company said.” -Puppet-wearing devs: There's now an app (or two) for that, The Register, Setpember, 2014 © F5 Networks, Inc. 25
  • 26. Next Steps • Check out the code samples on F5.com and DevCentral • Read the programmability white paper on DevCentral: http://www.f5.com/pdf/white-papers/the-programmable-network-white-paper. pdf • Provide your engineers with a starting point with free training from F5 University: https://f5.com/education/training If I can be of further assistance please contact me: [email protected] | @colin_walker

Editor's Notes

  • #8: Let’s think about this, 30 times more often and 8000 times faster, resulting in 12 times faster success and restore rates. F5 is seeing is customers split off specific groups to focus on the DevOps mindset.
  • #9: This solution is intended to allow VMware environments (using either vSphere + vCNS, or vSphere + vCNS + vCloud Director) to provision the necessary L4-7 application delivery networking services much more rapidly and efficiently than before. If using vCD, you get the self-service functionality. ADN services become part of the natural vCD provisioning workflow, and rely on the same services consumer/producer model that vCD uses. F5 is a “design partner” of VMware’s vCloud Ecosystem Framework program – and we are the first to do this type of integration. All of the BIG-IP functionality is available through this integration (local load balancing, global load balancing, web application security, web application acceleration, WAN optimization, etc.) Customers can use their legacy BIG-IP equipment – no new purchases required. This integration works with both physical BIG-IP hardware or BIG-IP virtual editions running on vSphere.
  • #10: This solution is intended to allow VMware environments (using either vSphere + vCNS, or vSphere + vCNS + vCloud Director) to provision the necessary L4-7 application delivery networking services much more rapidly and efficiently than before. If using vCD, you get the self-service functionality. ADN services become part of the natural vCD provisioning workflow, and rely on the same services consumer/producer model that vCD uses. F5 is a “design partner” of VMware’s vCloud Ecosystem Framework program – and we are the first to do this type of integration. All of the BIG-IP functionality is available through this integration (local load balancing, global load balancing, web application security, web application acceleration, WAN optimization, etc.) Customers can use their legacy BIG-IP equipment – no new purchases required. This integration works with both physical BIG-IP hardware or BIG-IP virtual editions running on vSphere.
  • #12: Traditional use cases were Client, Mobile, or Application to API Server REST enables easier adoption/integration for Cloud Controllers, ADCs, and Network components. Twitter currently has traffic in excess of 13 Billion API calls a day – definitely not a fad.
  • #25: Think auditing, fat fingering of resources on the wrong network segment, etc. Operational cost will not got down when employing Virtualization without automation. If you can cookie-cutter everything, forecasting budget becomes infinitely easier. I can build out/replicate prod/dev/qa in a single swoop.