숭실대 김영한(younghak@ssu.ac.kr) IoT , Openstack, DevOps 숭실대 김영한(younghak@ssu.ac.kr)
Contents IoT Platform using Openstack in NTT DATA ( Openstack Austin Summit) New Considerations in Network Side Conclusion
IoT Platform Using Openstack for IoT Cloud Platform : NTT DATA case
4 Key elements for IoT service Source: NTT Data at Austin Openstack Summit Device + Network + Platform + Application = IoT service
Key Features of IoT Data Key performance measure are “connections”, “Transactions” and “Accumulation”
Technical requests for Openstack as a IoT-Cloud Platform QoS, I/O guaranteed Feature of Message Broking Management Integration Application performance monitoring Easy to manage data stores and ETL(Extract, Transform, Load)
1. QoS, I/O guaranteed
2. Feature of Message Broking Message Broker : Pub/Sub model (Distributed processing) Asynchronous I/O Retrying tasks if workers fail Support multiple protocol for IoT : MQTT Kafka (Apache Kafka: A high-throughput, distributed, publish-subscribe messaging system) CoAP HTTP/2 QoS Control: Bandwidth Priority
3. Management integration Management integration includes: Deploy Automation Authentication Monitoring
4. Application performance monitoring Data Gathering and Visualizing for AP monitoring :
5. Easy to manage data stores and ETL Easy to manage various data stores RDB : mysql, PostgreSQL NoSQL : mongoDB, CouchDB,… KVS(cache) : Redis, Couchbase, Cassandra, … Easy to manage various data extract, transform and load (ex.1) KVS to NoSQL (ex.2) NoSQL to Object storage
IoT architecture in NTT DATA
IoT architecture on Openstack
Some other Requirements in Platform Scalability Lifecycle Management Peer to Peer
Network Side New Considerations Source: HPE
Endpoint-Aware Service Function Chaining
Service function chaining for the IoT data plane Protect IoT assets, gather network telemetry data, prescribe high value network services
Mobile Network Slicing for IoT
Mobile Edge Computing and vCPE network services Virtual network services are now available at the network edge
Conclusion : DevOps (CI,CD)
Recall IoT Building Blocks Connectivity Device Management Information Management
What’s Continuous Integration? In software engineering, continuous integration (CI) implements continuous processes of applying quality control – smart pieces of effort, applied frequently. Continuous integration aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development. Ref: http://en.wikipedia.org/wiki/Continuous_integration
Continuous Integration Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily – leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Ref: http://martinfowler.com/articles/continuousIntegration.html
Continuous Integration Benefit Project Management Detect system development problems earlier Reduce risks of cost, schedule, and budget Code Quality Measureable and visible code quality Continuous automatic regression unit test
Ingredients of DevOps Tools Principles and Practices Source Code Management, e.g. Git Artifact repository, e.g. maven Review Management System, e.g. Gerrit Integration Engine, e.g. Jenkins Configuration management system, e.g. Ansible, Chef Test Harness, e.g rally, tempest, yardstick Flexible System Deployment, e.g Vagrant Principles and Practices Infrastructure as code Declarative Topologies Test driven development Agile development
Jenkins – Fitting in
Jenkins Features Trigger a build Get source code from repository Automatically build and test Generate report & notify Deploy Distributed build
Case Study : Verizon PoC : Problems Take 2~3 months to release new features With DevOps change IT development lifecycle Spin environment in minutes Run thousand of test cases in a single click Make releases in week Network Function Upgrades Upgrade a firewall or a packet gateway setup environment, take a week not end-to-end automation How to make upgades agile ?
NFV CI/CD Automation Use cases Ericsson Virtual Router Onboard and Instantiate Virtual Router Seamless Upgrade NFV CI/CD benefits Enable DevOps for VNF deployments Shorten TTM for product features updates Increase quality by streaming deployments Minimize recurring costs and efforts for deployments and upgrades
NFV DevOps Life cycle Automation PoC Integrate two development life cycle
Infrastructure as code Configuration management on steroid Core tenet of DevOps Bring tried and tested practices from software engineering into infrastructure operations Revision control Use git tools Track both what was changed and why Audit all changes to the cluster See precisely what has changed between two points in time
Other Case :OPNFV Octopus CI/CD approach
Discussion Standards vs OpenSource Project ? Protocol vs API ? KR Position in IoT ?