Tacker
Project Update, OpenStack Summit Vancouver
May 2018
Yong Sheng Gong - 99Cloud
Dharmendra Kushwaha – NEC
Cong Phuoc Hoang - IISTRC
https://www.openstack.org/summit/vancouver-2018/summit-schedule/global-search?t=tacker
1
2
3
4
What is Tacker?
• Tacker is an OpenStack based NFV Orchestration
framework used to deploy and operate Virtual
Network Functions (VNFs).
• Tacker is compatible with ETSI NFV Architectural
Framework and provides full functional stack to
manage VNFs and orchestrate end-to-end
Network Services on various VIMs.
Queens Contributions
keystone
horizon tacker-horizon
tacker-server
python-tackerclient
MySql
Restful
API
Restful
API
Restful
API
Lib invoke
Mysql API
client
GUI
workflows in
mistral
barbican
tacker-conductor
AMQP
tacker-conductor
workflows in
mistral
barbican
keystone
tacker components
To run a complete tacker system, it
needs following external softwares:
1. mistral, a workflow engine
2. Mysql, the NFV catalogue and
resource states storage
3. AMQP message system, which
connects tacker server, mistral
workflow tasks and tacker
conductor
4. keystone, identity manager
5. babican, the credential storage for
target VIMs
The consistent components of tacker repos:
1. python-tackerclient, openstack command plugin
2. tacker horizon, tacker resources GUI
3. tacker server, MANO API implementer
4. tacker conductor, policy action executor
New features ( https://docs.openstack.org/releasenotes/tacker/queens.html)
• Multiple flow classifiers per VNF forwarding graph (VNFFG).
• Symmetric VNFFG.
• VNFFG updating.
• VNFFG without flow classifiers.
• Reusing VNFs in VNFFG.
• Zabbix plugin for monitoring VNF’s application.
• Kubernetes VIM.
• Container based VNFs.
OpenStack Queens Features
Updates on Tacker Architecture
k8s vim and c-nf
VIM plugin
and drivers
NFVO and
VNFM
API
(WSGI, extension /plugin framework)
NFV Catalog
VNFDNSD FFGD
VNFM
Management
Driver
Framework
Monitoring
Driver
Framework
VNF
Instances
TOSCA
Template
Validation
NFVO
Multi-Site
VNF
Fwd Graph
Network
Service
Instances
VIM
Instances
Horizon CLI
Alarm
Monitor
Event Audit
Log
Infra Driver
(OpenStack)
Infra Driver
(Kubernetes)
Target VIM
systems k8s clusterOpenstack
tenant provided zabbix
vnf metrics monitoring
vnffg enhancement:
multiple classifier,no
classifier,vnf mapping
modification
openstack tacker plugin
commands
tacker vim-register aaa
tacker vnfd-create xxx
tacker vnf-create yyy
tacker vnffg-create zzz
openstack vim register aaa
openstack vnf descriptor create xxx
openstack vnf create yyy
openstack vnf graph descriptor create zzz
Will be removed after
Rocky version is
released
Update on tacker python client
Multiple flow classifiers per VNFFG
https://github.com/openstack/tacker/blob/master/samples/tosca-templates/vnffgd/tosca-vnffgd-legacy-multiple-classifiers-sample.yaml
Update on VNFFG
Symmetric VNFFG
VNF1
CP1
VNF2
CP1
VNF3
CP1 CP2CP2
VL1
VL2
Traffic
flow
Forward path
Reversed path
https://github.com/openstack/tacker/blob/master/doc/source/user/vnffg_usage_guide.rst
Update on VNFFG
VNF1
CP1
VNF2
CP1
VNF3
CP1 CP2CP2
VL1
VL2
FC1
Update on VNFFG
flow classifier can be added, removed, updated
VNF1
CP1
VNF2
CP1
VNF3
CP1 CP2CP2
VL1
VL2
FC1
FC2
Update on VNFFG
VNFFG updating
VNF1
CP1
VNF2
CP1
VNF3
CP1 CP2CP2
VL1
VL2
FC1
FC2
VNFFG without flow classifiers
VNF1
CP1
VNF2
CP1
VNF3
CP1 CP2CP2
VL1
VL2
Update on VNFFG
Reusing VNFs in VNFFG
VNF1
CP1
VNF2
CP1
VNF3
CP1 CP2CP2
VL1
VL2
FC1
FC2
VNFFG1
VNFFG2
Update on VNFFG
NFVI
VDU
Zabbix agent
Tacker VNFM
Zabbix Plugin
Zabbix Server
Tosca Zabbix
Template
https://github.com/openstack/tacker/blob/master/doc/source/contributor/zabbix-plugin.rst
New zabbix vnf monitoring
cofigure
monitor and
trigger actions
New zabbix vnf monitoring
app_monitoring_policy:
name: zabbix
zabbix_username: Admin
zabbix_password: zabbix
zabbix_server_ip: 192.168.11.53
zabbix_server_port: 80
parameters:
application:
app_name: apache2
app_port: 80
ssh_username: ubuntu
ssh_password: ubuntu
app_status:
condition: [down]
actionname: cmd
cmd-action: sudo service apache2 restart
app_memory:
condition: [greater,22]
actionname: cmd
cmd-action: sudo service apache2 stop
OS:
os_agent_info:
condition: [down]
actionname: cmd
cmd-action: sudo service zabbix-agent restart
os_proc_value:
condition: [and less,22]
actionname: cmd
cmd-action: sudo reboot
os_cpu_load:
condition: [and greater,30]
actionname: cmd
cmd-action: sudo reboot
os_cpu_usage:
condition: [less,30]
actionname: cmd
cmd-action: sudo reboot
TOSCA Template
Kubernetes VIM
Kubernetes VIM
• auth_url: https://192.168.11.110:6443
• username: “admin”
• password: “admin”
• ssl_ca_cert: None
• type: “kubernetes”
Tacker
New c-VNF
Container based VNFs (c-VNFs)
• TOSCA VNF template for c-VNFs.
• Basic CRUD c-VNFs.
• Simple TOSCA VNF to Kubernetes translation is supported.
• Unified networking with kuryr-kubernetes.
New c-VNF
Container based VNFs
TOSCA
VNF Template
TOSCA Parser
TOSCA to K8S
translator
Sample VNFD template
New c-VNF
Container based VNFs
IDS Firewall
kuryr-kubernetes / neutron / networking-sfc
Kubernetes VIMOpenStack VIM
NFVI
Classifier
HTTP
server
HTTP
client
New c-VNF
OpenStack Rocky
• SFC feature for hybrid container and VM based VNFs (with Kuryr-kubernetes and networking-sfc)
• Mistral workflow for VNF monitoring
• Resource reservation for VNFs (with Blazar)
• Clustering feature
• Multiple forwarding path in VNFFG
• VNFFG support in network service
• Doc cleanup & bug fix
NFVO VNFM
API
(WSGI, extension /plugin framework)
COMMON
VNFD
NSD FFGD Management
Driver
Framework
Monitoring
Driver
Framework
VNF
Instances
TOSCA
Template
Validation
Fwd Graph instances
VIM
Instances
CLI
Alarm
Monitor
Event Audit
Log
Infra Driver
(OpenStack)
Tacker Server Architecture
kubernetes
Event
Network Service
Instances
Mistral
integration
Barbican
integration
Horizon
VIM
openstack k8s clusterkuryr k8s cluster
Kuryr k8s
vnffg across k8s and
openstack vim
Beyond Rocky
• Micro service Architecture
• Update VM based VNFs
• Focus on stability
• Focus on user scenarios
• Support different VNFs (VNF market places?)
Cross-Project Work
OPNFV Community (OPNFV SFC)
How to give feedback
Project IRC : #tacker
Weekly Meeting : #openstack-meeting
Meeting timing : Tuesday 08:00 UTC: 60 mins
How to contribute
Same as other OpenStack projects.
https://docs.openstack.org/tacker/latest/contributor/dev-process.html
• Reviews: https://review.openstack.org/#/q/project:openstack/tacker
• Contribute your ideas with blueprints: https://blueprints.launchpad.net/tacker
• Bugs: https://bugs.launchpad.net/tacker
• Team meeting: Tuesday 08:00 UTC #openstack-meeting
@OpenStack
Q&A
Thank you!
openstack openstack OpenStackFoundation

Tacker vancouver project update

  • 1.
    Tacker Project Update, OpenStackSummit Vancouver May 2018 Yong Sheng Gong - 99Cloud Dharmendra Kushwaha – NEC Cong Phuoc Hoang - IISTRC
  • 2.
  • 3.
    What is Tacker? •Tacker is an OpenStack based NFV Orchestration framework used to deploy and operate Virtual Network Functions (VNFs). • Tacker is compatible with ETSI NFV Architectural Framework and provides full functional stack to manage VNFs and orchestrate end-to-end Network Services on various VIMs.
  • 4.
  • 5.
    keystone horizon tacker-horizon tacker-server python-tackerclient MySql Restful API Restful API Restful API Lib invoke MysqlAPI client GUI workflows in mistral barbican tacker-conductor AMQP tacker-conductor workflows in mistral barbican keystone tacker components To run a complete tacker system, it needs following external softwares: 1. mistral, a workflow engine 2. Mysql, the NFV catalogue and resource states storage 3. AMQP message system, which connects tacker server, mistral workflow tasks and tacker conductor 4. keystone, identity manager 5. babican, the credential storage for target VIMs The consistent components of tacker repos: 1. python-tackerclient, openstack command plugin 2. tacker horizon, tacker resources GUI 3. tacker server, MANO API implementer 4. tacker conductor, policy action executor
  • 6.
    New features (https://docs.openstack.org/releasenotes/tacker/queens.html) • Multiple flow classifiers per VNF forwarding graph (VNFFG). • Symmetric VNFFG. • VNFFG updating. • VNFFG without flow classifiers. • Reusing VNFs in VNFFG. • Zabbix plugin for monitoring VNF’s application. • Kubernetes VIM. • Container based VNFs. OpenStack Queens Features
  • 7.
    Updates on TackerArchitecture k8s vim and c-nf VIM plugin and drivers NFVO and VNFM API (WSGI, extension /plugin framework) NFV Catalog VNFDNSD FFGD VNFM Management Driver Framework Monitoring Driver Framework VNF Instances TOSCA Template Validation NFVO Multi-Site VNF Fwd Graph Network Service Instances VIM Instances Horizon CLI Alarm Monitor Event Audit Log Infra Driver (OpenStack) Infra Driver (Kubernetes) Target VIM systems k8s clusterOpenstack tenant provided zabbix vnf metrics monitoring vnffg enhancement: multiple classifier,no classifier,vnf mapping modification openstack tacker plugin commands
  • 8.
    tacker vim-register aaa tackervnfd-create xxx tacker vnf-create yyy tacker vnffg-create zzz openstack vim register aaa openstack vnf descriptor create xxx openstack vnf create yyy openstack vnf graph descriptor create zzz Will be removed after Rocky version is released Update on tacker python client
  • 9.
    Multiple flow classifiersper VNFFG https://github.com/openstack/tacker/blob/master/samples/tosca-templates/vnffgd/tosca-vnffgd-legacy-multiple-classifiers-sample.yaml Update on VNFFG
  • 10.
    Symmetric VNFFG VNF1 CP1 VNF2 CP1 VNF3 CP1 CP2CP2 VL1 VL2 Traffic flow Forwardpath Reversed path https://github.com/openstack/tacker/blob/master/doc/source/user/vnffg_usage_guide.rst Update on VNFFG
  • 11.
  • 12.
    flow classifier canbe added, removed, updated VNF1 CP1 VNF2 CP1 VNF3 CP1 CP2CP2 VL1 VL2 FC1 FC2 Update on VNFFG
  • 13.
  • 14.
    VNFFG without flowclassifiers VNF1 CP1 VNF2 CP1 VNF3 CP1 CP2CP2 VL1 VL2 Update on VNFFG
  • 15.
    Reusing VNFs inVNFFG VNF1 CP1 VNF2 CP1 VNF3 CP1 CP2CP2 VL1 VL2 FC1 FC2 VNFFG1 VNFFG2 Update on VNFFG
  • 16.
    NFVI VDU Zabbix agent Tacker VNFM ZabbixPlugin Zabbix Server Tosca Zabbix Template https://github.com/openstack/tacker/blob/master/doc/source/contributor/zabbix-plugin.rst New zabbix vnf monitoring cofigure monitor and trigger actions
  • 17.
    New zabbix vnfmonitoring app_monitoring_policy: name: zabbix zabbix_username: Admin zabbix_password: zabbix zabbix_server_ip: 192.168.11.53 zabbix_server_port: 80 parameters: application: app_name: apache2 app_port: 80 ssh_username: ubuntu ssh_password: ubuntu app_status: condition: [down] actionname: cmd cmd-action: sudo service apache2 restart app_memory: condition: [greater,22] actionname: cmd cmd-action: sudo service apache2 stop OS: os_agent_info: condition: [down] actionname: cmd cmd-action: sudo service zabbix-agent restart os_proc_value: condition: [and less,22] actionname: cmd cmd-action: sudo reboot os_cpu_load: condition: [and greater,30] actionname: cmd cmd-action: sudo reboot os_cpu_usage: condition: [less,30] actionname: cmd cmd-action: sudo reboot TOSCA Template
  • 18.
    Kubernetes VIM Kubernetes VIM •auth_url: https://192.168.11.110:6443 • username: “admin” • password: “admin” • ssl_ca_cert: None • type: “kubernetes” Tacker New c-VNF
  • 19.
    Container based VNFs(c-VNFs) • TOSCA VNF template for c-VNFs. • Basic CRUD c-VNFs. • Simple TOSCA VNF to Kubernetes translation is supported. • Unified networking with kuryr-kubernetes. New c-VNF
  • 20.
    Container based VNFs TOSCA VNFTemplate TOSCA Parser TOSCA to K8S translator Sample VNFD template New c-VNF
  • 21.
    Container based VNFs IDSFirewall kuryr-kubernetes / neutron / networking-sfc Kubernetes VIMOpenStack VIM NFVI Classifier HTTP server HTTP client New c-VNF
  • 22.
    OpenStack Rocky • SFCfeature for hybrid container and VM based VNFs (with Kuryr-kubernetes and networking-sfc) • Mistral workflow for VNF monitoring • Resource reservation for VNFs (with Blazar) • Clustering feature • Multiple forwarding path in VNFFG • VNFFG support in network service • Doc cleanup & bug fix
  • 23.
    NFVO VNFM API (WSGI, extension/plugin framework) COMMON VNFD NSD FFGD Management Driver Framework Monitoring Driver Framework VNF Instances TOSCA Template Validation Fwd Graph instances VIM Instances CLI Alarm Monitor Event Audit Log Infra Driver (OpenStack) Tacker Server Architecture kubernetes Event Network Service Instances Mistral integration Barbican integration Horizon VIM openstack k8s clusterkuryr k8s cluster Kuryr k8s vnffg across k8s and openstack vim
  • 24.
    Beyond Rocky • Microservice Architecture • Update VM based VNFs • Focus on stability • Focus on user scenarios • Support different VNFs (VNF market places?)
  • 25.
  • 26.
    How to givefeedback Project IRC : #tacker Weekly Meeting : #openstack-meeting Meeting timing : Tuesday 08:00 UTC: 60 mins
  • 27.
    How to contribute Sameas other OpenStack projects. https://docs.openstack.org/tacker/latest/contributor/dev-process.html • Reviews: https://review.openstack.org/#/q/project:openstack/tacker • Contribute your ideas with blueprints: https://blueprints.launchpad.net/tacker • Bugs: https://bugs.launchpad.net/tacker • Team meeting: Tuesday 08:00 UTC #openstack-meeting
  • 28.