Microservice is gaining increased adoption in the Telco NFV world. It is key to understand the design and deployment methodologies involved in developing Microservice based VNF. This talk provides an opensource practitioner approach to building and deploying a Microservice based VNF and includes the following: - Design patterns, workflow models - Design models for VNF placement, capacity management, scale-in/out and resiliency - Deployment considerations that includes handing of scale and fault tolerant VNF using well known Opensource tools.
About the presenter: Prem Sankar works for Ericsson Opensource Ecosystem team and part of the Opendaylight and OPNFV team in Ericsson. Prem evangelizes SDN and Cloud and has given many sessions and conducted workshops around SDN and ODL. Prem is PTL of ODL COE project and currently driving the Kuberenetes and ODL Integration in Opendaylight community. Prem is a frequent speaker at opensource summits and has presented in Opendaylight, OPNFV and Open networking summits.
4. Principles that drive Microservices
architecture
• Services must be loosely coupled so that they can be developed, deployed
and scaled independently
• Organized around business capabilities
• API Focused
• Smart endpoints and dumb pipes
• Decentralized Governance
• Decentralized Data Management
• Infrastructure Automation (infrastructure as code)
• Design for failure
• Evolutionary Design
10. Microservices Design Patterns for VNF
Decomposition Pattern
Subdomain context
Service discovery Pattern
Database per service Pattern
Keep each microservice’s persistent data private to that service and accessible only via its API
RDBMS design approaches
Private-tables-per-service – each service owns a set of tables that must only be accessed by that service
Schema-per-service – each service has a database schema that’s private to that service
Database-server-per-service – each service has it’s own database server.
Circuit Breaker
API Gateway Pattern
11. Opensource Ecosystem
• Workflow Manager and Orchestrator
• ONAP , ARIA, OSM
• Design and Deployment
• CI/CD Pipelines
• Jenkins
• Fabric8 (Jenkins, Kubernetes and Docker)
• Other options – goCD, concourse.ci
• Ansible/Puppet/Chef
• Execution/NFVi
• Kubernetes with ODL/CANAL/Weave, OPNFV
• Service Mesh - Istio
• Monitoring
• Prometheus and other alternatives (https://prometheus.io/docs/introduction/comparison/)
• Tracing
• Zipkin
• Logging
• ELK stack
12. VNF Deployment scenario
Neutron Plugin or Gluon/Proton
Linux Linux Linux Linux
Kubernetes
Datacenter Hardware
Linux
OpenStack
OVS
App
Orchestration Systems
OpenStack APIs
OpenDaylight
Kubernetes APIs
CNI Plugin
KVM KVM ContainerRT
Container RT
App App App
VM Application Container Application
App
App App
14. ONAP
Design Time
Service Design and Creation
Policy
Runtime
Inventory
Controllers
Dashboard
Master Service Orchestrator
Security
Analytics
15. Topology and Orchestration Specification for Cloud Applications
Goals
Automation of service deployment and management
Portability
Interoperability
Vendor-Neutral
Model to define structure of service and how to manage it
Service composition
Topology Template – Structure of a service
Plans to manage service during its life time
TOSCA 101
16. TOPOLOGY TEMPLATE
› Service template
– Topology Template
– Node Type
– Relationship Type
– Plans
› Plans
– Parallel Execution
– Error Handling
– Audit/Trace
– Human tasks
19. Q&A
Any organization that designs a system
(defined broadly) will produce a design
whose structure is a copy of the
organization's communication structure.
-- Melvyn Conway, 1967