Posted in Debian, Happy Birthday Debian, Mini-DebConf Pune, Open Source, OpenStack, OpenStack Neutron, Outreachy

At Mini-Debian Conference Pune 2016

It was at Mini-Debian Conference 2010 at my alma mater, College of Engineering Pune that my journey with Open Source began. So I was thrilled when our Professor Abhijit A.M. invited us to give a talk at Mini-Debian Conference 2016 which was being held again at our own college.

The proposals were open even for other Open Source projects. Since me and Akanksha are both currently learning about OpenStack, we thought it would be a nice idea to share with the students our learnings.

Akanksha’s session included an Introduction to Cloud and OpenStack. She explained the different components of OpenStack and their roles and their interaction when we spawn a new instance, the OpenStack Development Environment – DevStack, how to Contribute to OpenStack, the Community, the workflow, the reviewing system, and everything else a newbie would want to know. The session was interactive and many students engaged in asking their doubts.

In my session, I gave an Introduction to Virtualization and talked briefly about Network Virtualization. I also gave a demo on the Neutron API using the Horizon Dashboard, explained the Neutron workflow, the Neutron architecture, the different network types supported by OpenvSwitch and finally talked briefly about SDN.

Many students interacted with us after the session. It was great to know a few students were already working on OpenDaylight as a part of their final year project.

Apart from talking about OpenStack, I also attended the session on How to Contribute to GNUKhata which is a python based Open Source Accounting Software. Ishan and Navin gave a nice walkthrough of the GNUKhata code during the session.

The sessions I found most interesting were on Docker. Swapnil explained the Docker basics and Augustine gave an awesome demo on docker compose, where he demonstrated how fast it was to live debug multiple containers each running a random-word-generator JavaScript application.

We also had a group photo that was followed by the Debian India Community Planning Session where both the attendees and the speakers interacted and shared their feedbacks and reviews. The audience, comprising of students from different colleges across Pune, were eager to have more MiniDebConfs at their own colleges, each of them suggesting the different ways in which they would like to increase awareness about Debian, FOSS and Open Source Communities in their respective colleges.

minidebconfpune16_group_photo

debian_bday

And we also celebrated Debian’s 23rd Birthday in advance. Every year, the Debian Community celebrates 16th August as Debian Day (The day on which Debian was founded by its founder Ian Murdock).

Posted in Bangalore, OpenStack, OpenStack Days India, Outreachy

At OpenStack Days India, Bangalore

Got to know about the event very late. Yet, in a jiffy, me and Akanksha decided to give a simple talk on Contributing to OpenStack, in which we intended to pass on whatever we had learned over the few months as newbie contributors. On reaching the venue, we didn’t find our talk on the schedule, which made a tad sad, but then we soon got our speaker badges that made us go ‘Yayie’ again! 🙂

speak_osdi

Summarizing the things I learned from the talks I attended:

The first talk I attended was ‘OpenStack Tempest and REST API Testing‘ by Shashidhar Soppin.

  • He explained that in OpenStack, each project has its own unit tests, and along with it there is also the OpenStack Integration Test Suite called Tempest, which is used to majorly test: OpenStack APIs calls and their responses, Command Line Interface that runs various commands, Scenario based tests (these are used to test integration of several OpenStack components together), and Stress tests.
  • He shared various tips on how to run tempest on DevStack, common issues that are faced and their resolutions.
  • Every single patch we submit on review.openstack.org runs the gate tests with tempest to verify that the submitted patch doesn’t break anything across all Openstack projects.
  • To enable tempest on DevStack, we add enable_service tempest to local.conf file.

Eager to learn more about the Neutron API and to try out the Tempest API tests on my DevStack.

The next session I attended was OPNFV Keynote by Arif Khan. The session was a bit difficult for me to understand because I was learning about Network Function Virtualization for the first time. But I was able to get hold of some speakers backstage to help me understand the concept a bit.

  • OPNFV stands for Open Platform for Network Function Virtualization and is run by the Linux Foundation.
  • Network Function Virtualization involves the implementation of network functions [example: firewalls, load balancers, and wireless network access points] in software, with the goal to decouple the network functions from the physical network hardware.
  • OPNFV builds, as a community,  the core set of components or functionality that is common across different network vendors and infrastructures, and it integrates and tests all the different components together.
  • It is “Systems integration as an open community effort”.

My favorite session was the OpenStack Neutron Behind the Scenes session by Anil Bidari. His talk was majorly about Neutron and OpenvSwitch, followed by a demo that explained:

  • The different OVS bridges and their purposes.
  • At what instant each of the ports are created on the OVS bridges. So for example he explained that the Linux bridge interfaces (the veth pairs) and the tap interface on the Virtual Machine are created only after you spawn the instance.
  • He also explained how the packet flows starting from tap interface on the Virtual Machine through the Integration Bridge and the GRE interfaces on the Tunnel Bridge uptill the external interface on the Provider Bridge.

Finally towards the end of the day, me and Akanksha gave our session on why and how you should contribute to OpenStack 🙂

meh

Posted in OpenStack, OpenStack Neutron, Outreachy

Interning with Outreachy – 2016

The Initial Journey

My journey with OpenStack started in December 2015, while I was working, since one and half years, at a Software company in Pune and my friend Akanksha Agrawal told me about Outreachy and the OpenStack Community.

Motivated by her, I decided to learn OpenStack and get back to doing Open Source work that I so much loved during my college days.

The most fulfilling part of my initial journey of learning OpenStack, was when I made my first contribution to OpenStack Ironic. I had picked up a bug to work on for the OpenStack Bug Smash Mitaka Pune and with the help of OpenStack Ironic Community was able to get my patch merged in Ironic. I am really grateful to everyone from the OpenStack Ironic Community to help me get kick started. It had been a very long time since I made another first contribution to an Open Source Project.

After that I started learning Neutron, the networking component of OpenStack and that interested me a lot. As I began understanding the Neutron architecture, I got in touch with my mentor Rossella Sblendido and she further encouraged me to learn OpenvSwitch.

My Internship Project

A Switch is a device that connects multiple devices together on a computer network. In Neutron, a virtual switch connects a physical interface to a virtual interface. OpenvSwitch is a software based switch used by Neutron to implement virtual switches.

My project, Neutron – Metering agent add port statistics, requires me to use the OpenvSwitch tools to provide port statistics to the Neutron Metering Agent.

The Neutron Metering Agent is used to send metering notifications about network related metrics (These are measurable network usage data).

The Switch related meters that provide network port statistics are:

Received Packets:  switch.port.receive.packets
Transmitted Packets:  switch.port.transmit.packets
Received Bytes:  switch.port.receive.bytes
Transmitted Bytes: switch.port.transmit.bytes
Receive Drops: switch.port.receive.drops
Transmit Drops:  switch.port.transmit.drops
Receive Errors:  switch.port.receive.errors
Transmit Errors: switch.port.transmit.errors
Receive Frame Alignment Errors : switch.port.receive.frame_error
Receive Overrun Errors: switch.port.receive.overrun_error
Receive CRC Errors: switch.port.receive.crc_error
Collisions:  switch.port.collision.count

The Neutron Metering Agent sends network metrics via the rpc notification mechanism to Ceilometer. These notifications are gathered by Ceilometer for metering (billing) and monitoring purposes.

Progress So far

  • I have been able to set up Neutron along with its plugins ( ML2, router, metering ) and agents (Metadata agent, L3 agent, Open vSwitch agent, DHCP agent, Metering agent ) on my DevStack setup.
  • I’ve been learning to use the Neutron CLI by playing around ( creating Networks, adding Routers, adding interface to Router, adding gateway to Router, examining routers, understanding namespaces, adding rules to the default security group, attaching floating ip address to public network, etc).
  • I am also learning to use ovs tools: ovs-vsctl and ovs-ofctl and have setup the following Switch configuration on my DevStack :

ovs_daigram

 

  • I’ve set up Ceilometer on my DevStack ( yet to add switch meters).
  • I am working on my patch to add port statistics to the metering agent and hopefully should be able to submit the patch by the end of this week.

I am grateful to my mentor Rossella for being extremely supportive and encouraging. I’ve learned a huge bunch of things and the whole journey is amazing.

That’s all for now. I’ll  be posting soon on my progress further.