Introduction to Open Software Networking Platform : Part 2 March 17, 2015 CS Hong OSSs OpenStack CloudStack Open vSwitch Aduino Rasberry PI 2 What is OpenStack OpenStack: The Mission "To produce the ubiquitous Open Source cloud computing platform that will meet the needs of public and private cloud providers regardless of size, by being simple to implement and massively scalable." 3 History of OpenStack Release history Austin 21 October 2010 Bexar 3 February 2011 Cactus 15 April 2011 Diablo 22 September 2011 Essex 5 April 2012 Folsom 27 September 2012 Grizzly 4 April 2013 Havana 17 October 2013 Icehouse 17 April 2014 Juno October 2014 K-series April 2015 Codenames alphabetically ordered 6 month development cycle 4 OpenStack Founding Principles Apache 2.0 license (OSI), open development process Open design process, 2x year public Design Summits Publicly available open source code repository Open community processes documented and transparent Commitment to drive and adopt open standards Modular design for deployment flexibility via APIs 5 Community with Broad Commercial Support 6 Users disney, zynga, candy crush, youtube, Netflix 7 Official, incubator et al. programs Official Common 8 A fraction of OpenStack architecture 9 Its growth 100 X growth in developers. The crew is multiplying! and it has millions of lines of code, and a dozen projects. 10 OpenStack Isn't Everything 11 Virtual Machines and Storage 12 Object Storage Key Features 13 System Components The Ring: Mapping of names to entities (accounts, containers, objects) on disk. Stores data based on zones, devices, partitions, and replicas Weights can be used to balance the distribution of partitions Used by the Proxy Server for many background processes Proxy Server: Request routing, exposes the public API Replication: Keep the system consistent, handle failures Updaters: Process failed or queued updates Auditors: Verify integrity of objects, containers, and accounts 14 System Components (Cont.) Account Server: Handles listing of containers, stores as SQLite DB Container Server: Handles listing of objects, stores as SQLite DB Object Server: Blob storage server, metadata kept in xattrs, data in binary format Recommended to run on XFS Object location based on hash of name & timestamp 15 Software Dependencies Object Storage should work on most Linux platforms with the following software (main build target for Austin release is Ubuntu 10.04): Python 2.6 rsync 3.0 And the following python libraries: Eventlet 0.9.8 WebOb 0.9.8 Setuptools Simplejson Xattr Nose Sphinx 16 Evolution of Object Storage Architecture 17 Building an OpenStack Cloud Compute OpenStack Compute Key Features 18 Open Stack Compute 19 Apache CloudStack IaaS… 21 IaaS challenges Not out of the box by itself Need a farm of hypervisors Xen, KVM, VMware… Need storage For image catalogue For volume/snapshot management Need flexible network that can be configured on-demand VLANS, no VLANS, existing net infra, SDN… 22 IaaS is really: A Data Center Orchestrator Data storage Data movement Data processing That can: Handle failures Support large scale Be programmed 23 DevOps Bring your developers closer to the operations Make your sys admins develop the apps Move to Software Defined Data Center, Automate everything Dev: Java IDE Ops: Shell CLI 24 “A little bit about the internals” 25 A Very Flexible IaaS Platform Compute Hypervisor XenServer Storage VMware Oracle VM KVM Bare metal Fiber Channel NFS Swift Block & Object Local Disk iSCSI Primary Storage Network Secondary Storage Network & Network Services Network Type Isolation Firewall Load balancer VPN http://www.slideshare.net/cloudstack/cloudstack-architecture 26 Architecture / Language Java application Tomcat6, Axis2, Maven build + ant Ant going away in 4.1 Moving towards a plugin architecture 27 Releases Apache CloudStack 4.4.1 released in Oct. 2014 Time based releases Rather slip features but guarantee release Apache CloudMonkey 5.2.0 released for Aug. 2014 28 Cloud Interactions http://www.slideshare.net/cloudstack/cloudstack-architecture Primary Storage OVM Cluster vcenter Monitori ng Primary CS API Storage vSphere Cluster End User UI Admin UI CS Admin & Domain Admin UI End-user API XS Cluster Clustered CloudStack CloudStack CloudStack Management Server Primary Storage XAPI Primary JSON KVM Cluster Storage NetConf Juniper SRX Cloud user {API client (Fog/etc)} Nitro API ec2 API Cloud user {ec2 API client } Ajax Console Cloud user VNC JSON JSON MySQ L Netscaler Console Console Proxy VM Proxy VM {Proxied} SSH HTTPS Router VM Router VM Router VM Sec. Sec. Storage Storage VM VM NFS Server NFS NFS HTTP (Template Download) HTTP (Template Copy) HTTP (Swift) 29 CloudMonkey The CloudStack CLI, developed by Rohit Yadav ~600 lines of Python can be used both as an interactive shell and as a command line tool that simplifies CloudStack configuration and management. Lots of features: Auto-completion Tabular output Help , scriptable, interactive shell… 30 Info Apache incubator project http://incubator.apache.org/cloudstack #cloudstack and #cloudstack-dev on irc.freenode.net @CloudStack on Twitter http://www.slideshare.net/cloudstack http://incubator.apache.org/cloudstack/mailinglists.html Collaboration Conference, Nov 30th -Dec 2nd http://collab12.cloudstack.org/ http://www.youtube.com/diycloudcomputing 31 What is Open vSwitch Open vSwitch is a production quality, multilayer virtual switch licensed under the open source Apache 2.0 license. It is designed to enable massive network automation through programmatic extension, while still supporting standard management interfaces and protocols (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). 32 What is Virtualization Multiple virtual machines on the same physical host Lowest layer is the hypervisor, which provides the illusion Built by OS people Historically, simple bridge Physical Switch 33 Main Components 34 Forwarding Components ovs-vswitchd (Slow Path) Forwarding logic (learning, mirroring, VLANs, and bonding) Remote configuration and visibility openvswitch_mod.ko (Fast Path) Packet lookup, modification, and forwarding Tunnel encapsulation/decapsulation 35 Centralized Control One OpenFlow connection per datapath Exports idealized view of swtich’s datapath Lookup based on L2‐L4 Full wildcarding and priorities Actions: forward, drop, modify, and queue Missed flows go to central controller One management channel per system Switch‐level configuration Resources Counters 36 Distributed Virtual Switch 37 Performance 38 Raspberry Pi 39 Introduction The Raspberry Pi is a credit-card sized computer It can be plugged into your TV and a keyboard, and can be used for many of the things that your average desktop does - spreadsheets, word-processing, games and it also plays high-definition video. 40 Introduction Measuring approximately 9cm x 5.5cm 41 History Raspberry Pi is the work of the Raspberry Pi Foundation, a charitable organisation UK registered charity (No. 1129409), May 2009 It's supported by the University of Cambridge Computer Laboratory and tech firm Broadcomm 42 Motivation Computer science skills increasingly important Access to computers Computers are the tool of the 21st century Computer Science is concerned with much more than simply being able to use a computer. Children should understand how they work and how to program them 43 What is Raspberry Pi? The Raspberry Pi is a fully featured micro -computer squashed onto a circuit board measuring approximately 9cm x 5.5cm. 44 Features Ultra low-cost (Model A $25, Model B $35) Ultra low-power ~1W Credit-card sized, fanless, instant start-up Complete easy-to-program computer 45 Features Provide a fun environment for experimenting with programming and electronics Inexpensive, simple, open and easy to maintain computer for schools Fun computer for children to experiment with at home(programming, robotics, etc...) 46 Technology The Raspberry Pi has a Broadcom BCM2835 system on a chip (SoC),which includes an ARM1176JZF-S 700 MHz processor Video Core IV GPU originally shipped with 256 megabytes of RAM, later upgraded to 512MB. It does not include a built-in hard disk , but uses an SD card for booting and long-term storage. 47 Hardware 10/100 BaseT Ethernet socket HDMI socket USB 2.0 socket RCA video socket SD card socket Powered from microUSB socket 3.5mm audio out jack Header footprint for camera connection 48 Hardware 49 Operating System Linux on a bootable SD card Fedora Raspbian Debian ArchLinux ARM 50 How to make it work! 51 Programming By default, supporting Python as the educational language. Any language which will compile for ARMv6 can be used with the Raspberry Pi. 52 Price Model A - $ 25 Model B - $ 35 Why so cheap ? SoC - System on a chip, a computer on a single low voltage chip Linux OS 53 Applications Can be used for making super computers 54 Applications Raspberry Pi Medical Device Input Shield 55 Applications Solar Raspberry Pi Power Pack 56 Applications Voice-Activated Coffee Machine Raspberry Pi Dynamic Bike Headlight Prototype 57 Applications It can make your Old TV in to a smart TV. (You can play Videos, 3D Games, Music, Browse Inter net and much more. Raspberry Pi can Act as Full HD 1080p Media Pl ayer. Its a Mini Computer which just cost Rs.2,350/You can connect a Monitor, Keyboard and Mous e and use it as a normal computer. Its Graphics Capabilities is better than Apple Pr oducts. 58 Raspberry Pi 2020 Exploit process scaling and keep price constant: 8 cores, improved GPU, 8GB main memory WiFi, camera, matchbox sized case holographic laser projector, virtual keyboard FPGA logic on main SoC, high speed links, …. < $25 59 Introduction to Arduino Micro-Controller: It is a micro-computer. As any computer it has internal CPU, RAM, IOs interface. It is used for control purposes, and for data analysis. Famous microcontroller manufacturers are MicroChip, Atmel, Intel, Analog devices, and more. 60 What is Arduino? A microcontroller board, contains on-board power supply, USB port to communicate with PC, and an Atmel microcontroller chip. It simplify the process of creating any control system by providing the standard board that can be programmed and connected to the system without the need to any sophisticated PCB design and implementation. It is an open source hardware, any one can get the details of its design and modify it or make his own one himself. 61 What is Arduino? Large community Multi platform Win/Mac/Linux Based on ATmega328 – 8 BIT Specs •RISC @ 16 Mhz, 20 MIPS •32 K Memory •6 Ch 10 Bit A/D •PWM, I2C, SPI Inexpensive - $31.95 Sparkfun Electronics - $34.99 Radioshack 62 Arduino UNO: Digital output ~: PWM. 0,1: Serial port. In circuit Serial programming Atmel MicroController USB port Power input Power Supply Analog input. 63 Arduino IDE: You can download the Arduino IDE (The program used to write code and uploading it to arduino boards) from: http://arduino.cc/en/Main/Software 64 What do these do? Digital IO (LEDs, switches) Analog IO (resistive sensor data) Serial Connection (Sensors, GPS, etc) Program from your computer Your limit is only your creativity! 65 Terminology I/O Board - main microcontroller Shield - add-on boards Sketch - the program Sensor - components (thermistors, etc.) Modules - serial data (GPS module, etc.) 66 Arduino I/O boards UNO Mega LilyPad Arduino BT Arduino Nano Arduino Mini 67 Shields 68 Shields 69 More Shields… XBee Shield WiFiShield Ethernet Shield 70 Sensors 71 References http://www.openstack.org/ http://www.slideshare.net/cloudstack http://openvswitch.org Source repository: gitclonegit://openvswitch.org/openvswitch Electronics For You, November 2012, Page 18 http://en.wikipedia.org/wiki/Raspberry_Pi http://www.raspberrypi.org http://www.element14.com/community/groups/raspbe rry-pi http://arduino.cc 72