Posted in Fossasia, Outreachy, Science Center, Singapore

At FossAsia 2017, Singapore

Thanks to Outreachy, I got an opportunity to attend the FossAsia Summit that took place from March 17th – 19th at Science Center, Singapore.

The event had the most interesting talks under more than a dozen tracks ranging from Python to Kernel & Platform, Debian Mini-DebConf to Security and Privacy,  Science,  AI & Machine Learning and many more. And so the first difficulty I had was in deciding which talks should I be attending. The FossAsia android app was somewhat useful in finally narrowing down the talks I was most interested in. But with so many overlapping sessions, I still missed many that otherwise I would have loved to attend. For those who would want to watch the recorded videos, here’s the link to the FossAsia Youtube channel.

So here I am, summarizing the things I learned from the talks I attended:

  1. Deploying Open Event WebApp to Google Cloud
    Open Event is an open source project that makes it really simple and easy to create and manage an event website by automating the generation of required files for creating the website. The FossAsia website is itself built using the Open Event system. Open Event WebApp Generator takes a JSON file containing event data as input. It merges the JSON data file with the Handlebar templates to create the HTML files. The generated website can then be previewed locally or can be downloaded as a zip file. Following the steps here, the Open Event WebApp can then be deployed on Google Cloud.


  2. Among my favorite sessions were Frank Karlitschek’s keynote on ‘Protecting privacy with free software‘. Frank talked about how crucial it is to have distributed, decentralized, privacy-enabled, federated approaches of storing and sharing content across the internet and further showcased nextCloud. NextCloud provides file storage services over user’s own personal cloud, giving users full control over their data by letting them store and maintain their data on their own server.

    Federated sharing approaches enable each user to have their own Federated Cloud ID for their server, just like having an email address, which they can use to share their content with their friend’s servers who will also have their own Cloud ID.


  3. Michael Meskes in his talk on Debian – The Best Linux Distribution explained why one should contribute to Debian and how Debian is Special. He talked about the Debian Community, the Debian Social Contract, and the Debian Free Software Guidelines and how valuable they are for the community.


  4. There was also the FreedomBox stall which had lots of interesting discussions along with the demonstration by Nikhil Rayaprolu.

  5. Vaishali Thakkar in her talk on Coccinelle: Finding bugs in the Linux Kernel explained the different issues that are faced during code maintenance and why there’s a need for a tool that is that is fast, systematic, reliable and follows the standards. She further explained the goals of the tool Coccinelle which is to automatically find and fix bugs based on a pattern and also demonstrated a few examples which were a bit difficult for me to follow. 😦  After the session, I requested her for some newbie friendly resources to refer which she did help point to.


  6.  Another of my favorite sessions was the FreeBSD is not a Linux Distro session by Philip Paeps of the FreeBSD Foundation. The session was just perfect for a newbie to gain an understanding of the Free BSD operating system, the community and how to begin contributing to it. Philip talked about everything a newbie would want to know, from FreeBSD’s history, to its different flavors, the license, the filesystems, security features, compilers, tools like DTrace, networking, virtualisation et al.

  7.  Praveen Patil also gave an interesting talk on Learning adventures with Python in Science where he demonstrated different ways in which Python can be used to effectively teach Maths and Science concepts to students. He demonstrated damping of sine waves, energy transfer through a coupled spring in oscillating pendulums, Faraday’s laws of electromagnetic induction and various other concepts in Physics through different simple setups and visualizations coded in python.


  8. Also learned about KVM, Qemu and libvirt in Bandan Das’s session on The Qemu/KVM ecosystem: Navigating the code! This was the first time I was learning about KVM internals and so found it a bit advanced, but I am curious to learn more about it after having attended the session.

  9. Got to learn about OpenStack’s CI System in Matthew Treinish’s session on Better Testing Through Statistics in which he explained how when we push a change upstream in OpenStack, it spins up a lot of test jobs and how the test data and log information can be better utilized by having statistics and data mining tools that help in tracking down the reason behind the test failures, and also in detecting patterns and trends behind these failures on a larger scale. He talked about tools like Graphite, Grafana, ELK (Elasticsearch, Logstash, Kibana), StackViz and OpenStack Health that can be used on top of the CI system.

Apart from the talks, also got to meet Matthew Treinish, Samuel de Medeiros Queiroz, Masayuki Igawa and Dong Ma. I am grateful to the Outreachy team for giving me this opportunity where I could learn so much 🙂

IMG_20170318_171558

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.