SlideShare a Scribd company logo
How to Setup a Development
Environment for ONAP
Victor Morales
December 12th, 2017
Agenda
• Problem statement
• Proposed solution
• ONAP on Vagrant
- Installation process
• Key features
- Why Vagrant?
- Synced Folders
- Plugins
- Shell Provisioning
• Architecture
• Usage
• Benefits
Problem Statement – Multiple Developer Guides
• Every project has their own methods and/or guides for creation a
Development Environment
- A&AI Developer Environment Setup
(https://wiki.onap.org/pages/viewpage.action?pageId=10782088)
- Building & Testing APP-C Component Locally
(https://wiki.onap.org/pages/viewpage.action?pageId=6590586)
- DCAE Controller Development Guide
(https://wiki.onap.org/display/DW/DCAE+Controller+Development+Guide)
- Development Environment for SO (https://wiki.onap.org/display/DW/Development+Environment)
- Portal Build Instructions (https://wiki.onap.org/display/DW/Portal+Build+Instructions)
- OpenECOMP SDC Developer Guide
(https://wiki.onap.org/download/attachments/1015849/OpenECOMP_SDC_Developer_Guide.pdf?v
ersion=1&modificationDate=1499061898000&api=v2)
Problem Statement – Heterogeneous deployments
• Dependencies and instructions omitted or assumed in development
guides
• Unable to quickly replicate a fresh environment for validation of latest
changes on the project
• Documentation requires a separate task to be synchronized with any
latest addition on the project
Proposed solution
Host Machine
Portal
portal-db
portal-wms
portal-apps
Policy
policy-pe
policy-drools
policy-db
policy-nexus
Cloud Provider
AAI
APPC
DCAE
MSO
MSB
SDC
Virtual
Machine
Container
Policy Portal
ONAP on Vagrant
Automated provisioning tool for ONAP
development environments, through
common development tasks such as:
• Clones a group of repositories associated to
specific component.
• Compilation of java artifacts per component.
• Builds Docker images of specific component.
• Deals with networking configuration behind
corporate proxy.
• Manage dependencies required by
component.
Installation process - VirtualBox
http://onap.readthedocs.io/en/latest/submodules/integration.git/bootstrap/vagrant-onap/doc/source/install/index.html
Installation process – Libvirt & OpenStack
http://onap.readthedocs.io/en/latest/submodules/integration.git/bootstrap/vagrant-onap/doc/source/features/openstack.html
Key Features
Why Vagrant?
It’s a tool for building and managing
virtual machine environments in a
single workflow. With an easy-to-use
workflow and focus on automation,
Vagrant lowers development
environment setup time, increases
production parity, and makes the
"works on my machine" excuse a
relic of the past.
Synced Folders
Enables Vagrant to sync a folder on the host machine to the guest
machine, allowing you to continue working on your project's files on
your host machine, but use the resources in the guest machine to
compile or run your project.
Shell Provisioning
Provisioners in Vagrant allow you to automatically install software, alter
configurations, and more on the machine as part of the vagrant up
process. Shell provisioning is ideal for users new to Vagrant who want
to get up and running quickly and provides a strong alternative for users
who are not comfortable with a full configuration management system
such as Chef or Puppet.
Plugins
They are powerful, first-class citizens that extend Vagrant using a well-
documented, stable API that can withstand major version upgrades.
Architecture
• doc – Provides documentation about the
installation and usage of the tool.
• etc – Allows to persist configuration changes
• lib – Contains common development functions
to setup and work with ONAP components.
• opt – Shared folder that synchronizes host and
virtual machine source code changes.
• tests – Used to ensure correct functionality of
the scripts located into lib folder.
• tools – Helper scripts to facilitate some daily
tasks.
• vagrant_utils – Script connectors between
Vagrantfile and lib folder.
Usage - Demo
$ ./tools/run.sh <app_name>
Conclusion
• This can be used as vehicle to standardize process and dependencies
through an automated provisioning mechanism.
• Setup a development environment using only a single instruction.
• Adding this tool into a CI/CD pipeline can prevent any compilation
failure in the future and guarantee building image process works any
time.

More Related Content

PPTX
ONAP on Vagrant
PPTX
ONAP on Vagrant for ONAPers
PPTX
How to contribute to an open source project and don’t die during the Code Rev...
PPTX
Cross Community CI project
PPTX
Validating latest changes with XCI
PPTX
Microsoft ASP.NET 5 - The new kid on the block
PPTX
A Whirldwind Tour of ASP.NET 5
PPTX
Serverless meetup - OpenWhisk overview and architecture
ONAP on Vagrant
ONAP on Vagrant for ONAPers
How to contribute to an open source project and don’t die during the Code Rev...
Cross Community CI project
Validating latest changes with XCI
Microsoft ASP.NET 5 - The new kid on the block
A Whirldwind Tour of ASP.NET 5
Serverless meetup - OpenWhisk overview and architecture

What's hot (20)

PPTX
Apex world 2018 continuously delivering APEX
PDF
The Evolution of Continuous Delivery at Scale @ Linkedin
PPTX
Modern Tools for Building Progressive Web Apps
PDF
Postman for Efficient Professional Services: Collaboration, Mocking Dependenc...
PDF
Serverless Summit - Quiz
PDF
Introduction to Akka Streams
PPTX
Continuous integration
PPTX
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
PPTX
Quick Tour On Zeppelin
PPTX
DevOps: Infrastructure as Code
PDF
Cloud Foundry Summit 2015: 12 Factor Apps For Operations
PPTX
EMC World 2016 12 Factor Apps FTW
PPTX
PDF
Serverless Architecture Patterns - Manoj Ganapathi - Serverless Summit
PPTX
ASP.NET Core Demos
PPTX
PowerShell DSC Partial Configurations and Cross-node Synchronization
PPTX
Jenkins pipeline as code
PPTX
PP_Eric_Gandt
PDF
LCE13: Linaro Infrastructure Update
PPTX
Test in Dockerized System Architecture of LINE NOW
Apex world 2018 continuously delivering APEX
The Evolution of Continuous Delivery at Scale @ Linkedin
Modern Tools for Building Progressive Web Apps
Postman for Efficient Professional Services: Collaboration, Mocking Dependenc...
Serverless Summit - Quiz
Introduction to Akka Streams
Continuous integration
Que hay de nuevo en 2013 en la plataforma Microsoft para desarrolladores
Quick Tour On Zeppelin
DevOps: Infrastructure as Code
Cloud Foundry Summit 2015: 12 Factor Apps For Operations
EMC World 2016 12 Factor Apps FTW
Serverless Architecture Patterns - Manoj Ganapathi - Serverless Summit
ASP.NET Core Demos
PowerShell DSC Partial Configurations and Cross-node Synchronization
Jenkins pipeline as code
PP_Eric_Gandt
LCE13: Linaro Infrastructure Update
Test in Dockerized System Architecture of LINE NOW
Ad

Similar to How to setup a development environment for ONAP (20)

PPTX
Development with Vagrant
PDF
Vagrant - Version control your dev environment
PDF
Create Development and Production Environments with Vagrant
PDF
Keep calm and vagrant up
ODP
Vagrant and puppet: Deployment made easy
PDF
DevOps: Using Vagrant to Enhance Your Day to Day Development
PDF
Vagrant For DevOps
PDF
Virtualize and automate your development environment for fun and profit
PDF
Powering Development and Testing Environments with Vagrant
PDF
Vagrant up-and-running
ODP
Development nightmares
PDF
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PDF
Using Vagrant, Puppet, Testing & Hadoop
PDF
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
PDF
Instant LAMP Stack with Vagrant and Puppet
PPTX
Vagrant + Docker
PDF
Vagrant in 15 minutes
PDF
The future of the php development environment
PDF
Rise of the machines: Continuous Delivery at SEEK - YOW! Night Summary Slides
PDF
Local development environment evolution
Development with Vagrant
Vagrant - Version control your dev environment
Create Development and Production Environments with Vagrant
Keep calm and vagrant up
Vagrant and puppet: Deployment made easy
DevOps: Using Vagrant to Enhance Your Day to Day Development
Vagrant For DevOps
Virtualize and automate your development environment for fun and profit
Powering Development and Testing Environments with Vagrant
Vagrant up-and-running
Development nightmares
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
Using Vagrant, Puppet, Testing & Hadoop
PuppetCamp SEA 1 - Using Vagrant, Puppet, Testing & Hadoop
Instant LAMP Stack with Vagrant and Puppet
Vagrant + Docker
Vagrant in 15 minutes
The future of the php development environment
Rise of the machines: Continuous Delivery at SEEK - YOW! Night Summary Slides
Local development environment evolution
Ad

More from Victor Morales (20)

PPTX
Migrating GitHub Actions with Nested Virtualization to Cloud Native Ecosystem
PPTX
Improving cold start with Distroless techniques
PPTX
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
PDF
Open Discussion: Nephio Test-infra project
PPTX
KCD Costa Rica 2024 - Nephio para parvulitos
PPTX
CCOSS + KCD Mexico 2024 - Embracing GitOps in Telecom with Nephio
PPTX
Nephio 101
PPTX
Tips and tricks for contributing to an Open Source project.pptx
PPTX
Understanding the Cloud-Native origins.pptx
PPTX
My OPNFV journey
PPTX
Deciphering Kubernetes Networking
PPTX
Removing Language Barriers for Spanish-speaking Professionals
PPTX
Understanding kube proxy in ipvs mode
PPTX
Mutating Admission Webhook creation
PPTX
Deep dive networking
PPTX
GW Tester
PPTX
Pod Sandbox workflow creation from Dockershim
PPTX
Kubernetes fundamentals
PPTX
Cloud native fundamentals
PPTX
Building cloud native network functions - outcomes from the gw-tester nsm imp...
Migrating GitHub Actions with Nested Virtualization to Cloud Native Ecosystem
Improving cold start with Distroless techniques
KuberTENes Birthday Bash Guadalajara - K8sGPT first impressions
Open Discussion: Nephio Test-infra project
KCD Costa Rica 2024 - Nephio para parvulitos
CCOSS + KCD Mexico 2024 - Embracing GitOps in Telecom with Nephio
Nephio 101
Tips and tricks for contributing to an Open Source project.pptx
Understanding the Cloud-Native origins.pptx
My OPNFV journey
Deciphering Kubernetes Networking
Removing Language Barriers for Spanish-speaking Professionals
Understanding kube proxy in ipvs mode
Mutating Admission Webhook creation
Deep dive networking
GW Tester
Pod Sandbox workflow creation from Dockershim
Kubernetes fundamentals
Cloud native fundamentals
Building cloud native network functions - outcomes from the gw-tester nsm imp...

Recently uploaded (20)

DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PDF
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PPTX
Sustainable Sites - Green Building Construction
PPTX
bas. eng. economics group 4 presentation 1.pptx
PPTX
UNIT 4 Total Quality Management .pptx
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PPT
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
PPTX
Internet of Things (IOT) - A guide to understanding
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PDF
Digital Logic Computer Design lecture notes
DOCX
573137875-Attendance-Management-System-original
PDF
Well-logging-methods_new................
PDF
PPT on Performance Review to get promotions
PPTX
Geodesy 1.pptx...............................................
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
Embodied AI: Ushering in the Next Era of Intelligent Systems
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
SM_6th-Sem__Cse_Internet-of-Things.pdf IOT
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
Sustainable Sites - Green Building Construction
bas. eng. economics group 4 presentation 1.pptx
UNIT 4 Total Quality Management .pptx
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
Internet of Things (IOT) - A guide to understanding
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
Digital Logic Computer Design lecture notes
573137875-Attendance-Management-System-original
Well-logging-methods_new................
PPT on Performance Review to get promotions
Geodesy 1.pptx...............................................
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
Automation-in-Manufacturing-Chapter-Introduction.pdf
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...

How to setup a development environment for ONAP

  • 1. How to Setup a Development Environment for ONAP Victor Morales December 12th, 2017
  • 2. Agenda • Problem statement • Proposed solution • ONAP on Vagrant - Installation process • Key features - Why Vagrant? - Synced Folders - Plugins - Shell Provisioning • Architecture • Usage • Benefits
  • 3. Problem Statement – Multiple Developer Guides • Every project has their own methods and/or guides for creation a Development Environment - A&AI Developer Environment Setup (https://wiki.onap.org/pages/viewpage.action?pageId=10782088) - Building & Testing APP-C Component Locally (https://wiki.onap.org/pages/viewpage.action?pageId=6590586) - DCAE Controller Development Guide (https://wiki.onap.org/display/DW/DCAE+Controller+Development+Guide) - Development Environment for SO (https://wiki.onap.org/display/DW/Development+Environment) - Portal Build Instructions (https://wiki.onap.org/display/DW/Portal+Build+Instructions) - OpenECOMP SDC Developer Guide (https://wiki.onap.org/download/attachments/1015849/OpenECOMP_SDC_Developer_Guide.pdf?v ersion=1&modificationDate=1499061898000&api=v2)
  • 4. Problem Statement – Heterogeneous deployments • Dependencies and instructions omitted or assumed in development guides • Unable to quickly replicate a fresh environment for validation of latest changes on the project • Documentation requires a separate task to be synchronized with any latest addition on the project
  • 6. ONAP on Vagrant Automated provisioning tool for ONAP development environments, through common development tasks such as: • Clones a group of repositories associated to specific component. • Compilation of java artifacts per component. • Builds Docker images of specific component. • Deals with networking configuration behind corporate proxy. • Manage dependencies required by component.
  • 7. Installation process - VirtualBox http://onap.readthedocs.io/en/latest/submodules/integration.git/bootstrap/vagrant-onap/doc/source/install/index.html
  • 8. Installation process – Libvirt & OpenStack http://onap.readthedocs.io/en/latest/submodules/integration.git/bootstrap/vagrant-onap/doc/source/features/openstack.html
  • 10. Why Vagrant? It’s a tool for building and managing virtual machine environments in a single workflow. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases production parity, and makes the "works on my machine" excuse a relic of the past.
  • 11. Synced Folders Enables Vagrant to sync a folder on the host machine to the guest machine, allowing you to continue working on your project's files on your host machine, but use the resources in the guest machine to compile or run your project.
  • 12. Shell Provisioning Provisioners in Vagrant allow you to automatically install software, alter configurations, and more on the machine as part of the vagrant up process. Shell provisioning is ideal for users new to Vagrant who want to get up and running quickly and provides a strong alternative for users who are not comfortable with a full configuration management system such as Chef or Puppet.
  • 13. Plugins They are powerful, first-class citizens that extend Vagrant using a well- documented, stable API that can withstand major version upgrades.
  • 14. Architecture • doc – Provides documentation about the installation and usage of the tool. • etc – Allows to persist configuration changes • lib – Contains common development functions to setup and work with ONAP components. • opt – Shared folder that synchronizes host and virtual machine source code changes. • tests – Used to ensure correct functionality of the scripts located into lib folder. • tools – Helper scripts to facilitate some daily tasks. • vagrant_utils – Script connectors between Vagrantfile and lib folder.
  • 15. Usage - Demo $ ./tools/run.sh <app_name>
  • 16. Conclusion • This can be used as vehicle to standardize process and dependencies through an automated provisioning mechanism. • Setup a development environment using only a single instruction. • Adding this tool into a CI/CD pipeline can prevent any compilation failure in the future and guarantee building image process works any time.

Editor's Notes

  • #7: Open Network Automation Platform consists of a number of software components that has been developed isolated but are required to work closely together. Every component has defined its own way to setup a development environment and most of the cases the information is placed in a wiki entry which is hard to find it for new contributors. As consequence, the instructions described in those manuals are out of date (because depends on experience developers to maintain it) or some steps are omitted (instructions not captured or assumed). If a new development environment is required, the execution of instructions manually can result in wasting development time.
  • #8: Include the other providers (libvirt and openstack)
  • #9: Include the other providers (libvirt and openstack)
  • #14: vagrant-proxyconf vagrant-libvirt vagrant-openstack-provider