SlideShare ist ein Scribd-Unternehmen logo
1 von 27
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 
Bluecoat Services
Bluecoat ServicesBluecoat Services
Bluecoat Services
ChessBall
 
Reversing blue coat proxysg - wa-
Reversing blue coat proxysg - wa-Reversing blue coat proxysg - wa-
Reversing blue coat proxysg - wa-
idsecconf
 
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
 

Was ist angesagt? (20)

F5 Solutions for Service Providers
F5 Solutions for Service ProvidersF5 Solutions for Service Providers
F5 Solutions for Service Providers
 
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...
 
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
 
Novinky F5
Novinky F5Novinky F5
Novinky F5
 
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
 
BIG IP F5 GTM Presentation
BIG IP F5 GTM PresentationBIG IP F5 GTM Presentation
BIG IP F5 GTM Presentation
 
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
 
F5 beyond load balancer (nov 2009)
F5 beyond load balancer (nov 2009)F5 beyond load balancer (nov 2009)
F5 beyond load balancer (nov 2009)
 
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
 
F5 TMOS v13.0
F5 TMOS v13.0F5 TMOS v13.0
F5 TMOS v13.0
 
NGINX Plus R18: What's new
NGINX Plus R18: What's newNGINX Plus R18: What's new
NGINX Plus R18: What's new
 
F5's Dynamic DNS Services
F5's Dynamic DNS ServicesF5's Dynamic DNS Services
F5's Dynamic DNS Services
 
Bluecoat Services
Bluecoat ServicesBluecoat Services
Bluecoat Services
 
Securing Internal Applications with Cloudflare Access
Securing Internal Applications with Cloudflare AccessSecuring Internal Applications with Cloudflare Access
Securing Internal Applications with Cloudflare Access
 
Reversing blue coat proxysg - wa-
Reversing blue coat proxysg - wa-Reversing blue coat proxysg - wa-
Reversing blue coat proxysg - wa-
 
Wccp introduction final2
Wccp introduction final2Wccp introduction final2
Wccp introduction final2
 
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)
 
F5 Cloud Story
F5 Cloud StoryF5 Cloud Story
F5 Cloud Story
 
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
 
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
 

Andere mochten auch

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
 

Andere mochten auch (9)

PuppetDB: One Year Faster - PuppetConf 2014
PuppetDB: One Year Faster - PuppetConf 2014PuppetDB: One Year Faster - PuppetConf 2014
PuppetDB: One Year Faster - PuppetConf 2014
 
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 ...
 
Infrastructure as Code for Beginners
Infrastructure as Code for BeginnersInfrastructure as Code for Beginners
Infrastructure as Code for Beginners
 
Puppetconf2016 Puppet on Windows
Puppetconf2016 Puppet on WindowsPuppetconf2016 Puppet on Windows
Puppetconf2016 Puppet on Windows
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
Mastering DevOps With Oracle
Mastering DevOps With OracleMastering DevOps With Oracle
Mastering DevOps With Oracle
 
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)
 
WebLogic Administration und Deployment mit WLST
WebLogic Administration und Deployment mit WLSTWebLogic Administration und Deployment mit WLST
WebLogic Administration und Deployment mit WLST
 
Digital Strategy 101
Digital Strategy 101Digital Strategy 101
Digital Strategy 101
 

Ähnlich wie Fully Automate Application Delivery with Puppet and F5 - PuppetConf 2014

MesosCon - Be a microservices hero
MesosCon - Be a microservices heroMesosCon - Be a microservices hero
MesosCon - Be a microservices hero
Dragos Dascalita Haut
 
Consuming RESTful services in PHP
Consuming RESTful services in PHPConsuming RESTful services in PHP
Consuming RESTful services in PHP
Zoran Jeremic
 
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
 

Ähnlich wie 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
 
MesosCon - Be a microservices hero
MesosCon - Be a microservices heroMesosCon - Be a microservices hero
MesosCon - Be a microservices hero
 
Introduction to CloudStack API
Introduction to CloudStack APIIntroduction to CloudStack API
Introduction to CloudStack API
 
REST API for your WP7 App
REST API for your WP7 AppREST API for your WP7 App
REST API for your WP7 App
 
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
 
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
 
REST in Peace
REST in PeaceREST in Peace
REST in Peace
 
Consuming RESTful Web services in PHP
Consuming RESTful Web services in PHPConsuming RESTful Web services in PHP
Consuming RESTful Web services in PHP
 
Consuming RESTful services in PHP
Consuming RESTful services in PHPConsuming RESTful services in PHP
Consuming RESTful services in PHP
 
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
 
Micro service architecture
Micro service architectureMicro service architecture
Micro service architecture
 
Zendcon 09
Zendcon 09Zendcon 09
Zendcon 09
 
Elasticsearch und die Java-Welt
Elasticsearch und die Java-WeltElasticsearch und die Java-Welt
Elasticsearch und die Java-Welt
 
Automation day red hat ansible
   Automation day red hat ansible    Automation day red hat ansible
Automation day red hat ansible
 
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
 
Intro to node and mongodb 1
Intro to node and mongodb   1Intro to node and mongodb   1
Intro to node and mongodb 1
 
Kong API Gateway
Kong API Gateway Kong API Gateway
Kong API Gateway
 
REST with Eve and Python
REST with Eve and PythonREST with Eve and Python
REST with Eve and Python
 
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)
 
Ato2019 weave-services-istio
Ato2019 weave-services-istioAto2019 weave-services-istio
Ato2019 weave-services-istio
 

Mehr von 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
 
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
 
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
 

Mehr von Puppet (20)

Puppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepoPuppet camp2021 testing modules and controlrepo
Puppet camp2021 testing modules and controlrepo
 
Puppetcamp r10kyaml
Puppetcamp r10kyamlPuppetcamp r10kyaml
Puppetcamp r10kyaml
 
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 camp vscode
Puppet camp vscodePuppet camp vscode
Puppet camp vscode
 
Modules of the twenties
Modules of the twentiesModules of the twenties
Modules of the twenties
 
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
 
KGI compliance as-code approach
KGI compliance as-code approachKGI compliance as-code approach
KGI compliance as-code approach
 
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
 
Keynote: Puppet camp compliance
Keynote: Puppet camp complianceKeynote: Puppet camp compliance
Keynote: Puppet camp compliance
 
Automating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNowAutomating it management with Puppet + ServiceNow
Automating it management with Puppet + ServiceNow
 
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
 
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
 
Accelerating azure adoption with puppet
Accelerating azure adoption with puppetAccelerating azure adoption with puppet
Accelerating azure adoption with puppet
 
Puppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael PinsonPuppet catalog Diff; Raphael Pinson
Puppet catalog Diff; Raphael Pinson
 
ServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin ReeuwijkServiceNow and Puppet- better together, Kevin Reeuwijk
ServiceNow and Puppet- better together, Kevin Reeuwijk
 
Take control of your dev ops dumping ground
Take control of your  dev ops dumping groundTake control of your  dev ops dumping ground
Take control of your dev ops dumping ground
 
100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software100% Puppet Cloud Deployment of Legacy Software
100% Puppet Cloud Deployment of Legacy Software
 
Puppet User Group
Puppet User GroupPuppet User Group
Puppet User Group
 
Continuous Compliance and DevSecOps
Continuous Compliance and DevSecOpsContinuous Compliance and DevSecOps
Continuous Compliance and DevSecOps
 
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick MaludyThe Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
The Dynamic Duo of Puppet and Vault tame SSL Certificates, Nick Maludy
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Kürzlich hochgeladen (20)

Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

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: c.walker@f5.com | @colin_walker

Hinweis der Redaktion

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.