Introduction to Open Source, Apache and
Apache Way
Srinath Perera Ph.D. Senior Software Architect, WSO2 Inc.
Member, Apache Software Foundation Visiting Faculty, University of Moratuwa
Research Scientist, Lanka Software Foundation
Outline
• Introduction to Open Source
• What is Apache?• Composition of a
Project • How it work?• Conclusion
photo by John Trainoron Flickr http://www.flickr.com/photos/trainor/2902023575/, Licensed under CC
Open Source Market Share• Apache (60%)• Linux (Servers 16%)• Firefox (25%)• Tomcat and most of
middleware • Android (43%)• Even Microsoft looking
favorably at Opensource projects
• There are lot of open source projects bundled inside the proprietary products
Gartner Predicted that by 2012 most systems will use open source
components
Copyright kafka4prez and licensed for reuse under CC License , http://www.flickr.com/photos/kafka4prez/198465913
What is Open Source?• Most commercial software does
not distribute the source code, and developed and managed in a closed world.
• Idea of open source is to have the code in the open, and to improve it though volunteer contributions using “open development”
• Idea is that the project becomes a eco-system– More ideas– More developers– More Testers– More Bug fixers
“There is no delight in owning anything
unshared.” Seneca (Roman philosopher,
mid-1st century AD)
How does a Open Source Work?• Open code repository (SVN or Git
etc.)• Two parts of the community
– Developer Community– User Community
• Communication through Mailing lists / IRC Channel– Develop mailing list– User mailing list
• Bug tracking database to track errors (Jira, Bugzilla)
• People submit improvements as patches through Jira etc.
Committers have write access to repository Committers review and apply patches, and when you
submit lot of them, they will make you a committer.
History of Opensource• 1970s – UNIX, Emacs• 1982 - TeX• 1984-85 - GNU project and
Free Software Foundation• 1990 - GNU project almost
complete .. well not OS• 1991 - Linus Torvalds announce
Linux, Phython• 1993 - Net BSD and Free BSD• 1994-95 - Linux 1.0 released• 1995 - Apache, KDE, PHP, Ruby• 1997 - Genome• 1999 Linux 2.2, OpenOffice• 2003 - Firefox, Android
http://www.geograph.org.uk/photo/916456http://www.fotopedia.com/items/flickr-3320704544
Why People Contribute?• As a way to improve your profile
(looking for a Job)• To gain experience• To work with “like minded” People• To be part of something bigger• To be a “Geek”• As a Job – if you a well known
open source developer, chances are that you will get payed for contribution
• As a competitive strategy
Great investments need faith and patience
Copyright U. S. Fish and Wildlife Service and licensed for reuse under CC License , http://www.flickr.com/photos/usfwsnortheast/4754624921 and Copyright WxMom and licensed
for reuse under CC License , http://www.flickr.com/photos/wxmom/1359996991.
• "If a tree falls in a forest and no one is around to hear it, does it make a sound?”
• “If a open source project was developed, but no one used it, did it exists?”
http://www.geograph.org.uk/photo/1842872
Why People use Open Source Software?
• It is cheaper• It is better• Because it is open source (Religiously)• More visibility into the code, better
security, auditing • If there is a problem, I can fix it • More control over releases, roadmap• Patches become available faster • Easy to understand how it works• Can fork the code if needed • Not own by one person, less risk to depend
on it. • Do not have to maintain the code
History of Apache
• Apache HTTP Server development started on 1994 based on NCSA HTTP Server
• IBM Stop developing their HTTP Server and start using Apache
• Apache Officially established at 1999• June 2010 – 291 Members, 2300 committers,
75 top level projects, 400+ mailing lists and about 2500 emails/day
What is Apache?• It is named after “Native American Nation”
and “A Patchy Server”• Apache is not a group sharing a server• It is a community of developers and users
What is Apache?
• Framework– Legal– Social – Infrastructure
• Projects– 97 top level projects– 50+ incubating Projects– 2500 commiters .. About
400 members Copyright Jeff Kubina and licensed for reuse under CC License ,
http://www.flickr.com/photos/95118988@N00/416015918
What Apache Do?
• Let developers do what they do best
• Open source vs. source open • Everyone is equal, a volunteer
(no payment)• All technical decisions are
public • Harder you work, louder your
voice will be heard• No money, donation of
people/time and H/W
Ada Lovelace
http://suttonhoo.blogspot.com/2010/03/what-happens-when-father-of-analytical.html
Apache Project
• Code/SVN – this is the code repository• JIRA – Record of known and fixed bugs • Mailing list – Developer List– User List
• Automated Build• Website / WIki
How Apache Project Works?
Apache License
• It is very “Open License”• You can change and redistribute• You can do anything pretty much, just keep
the license. • Can be used commercially • However, ownership of the code has to be
donated to Apache
Apache vs. GPL License• Both allow
– Free use and Changes (privately)• Apache can be changed, combined
and redistributed • If GPL is changed or combined,
results must be GPL• Two Philosophies
– “I need as many to use it” vs. “You cannot make money”
– Business Model :Sell support vs. Duel License
– I am not going to argue either way (at least try not to). It is your own decision.
photo by hans s on Flickr, http://www.flickr.com/photos/archeon/2359334908/
Community
• Community – Developer– User
• Community helps each other– Even new people can help
others on how to install stuff etc.
• Every decision is taken in the mailing list
• More you work, louder you will be heard
• Never break the build – this will drive most nicest developer crazy
http://www.fotopedia.com/items/flickr-2548697541 ,
• Diversity requirements – People from different
Organizations– No ganging up to
beat someone
Open source vs. Source Open(Giving up control)
• Open source is little bit more than opening up the source.
• Initial developers has to be able to give up control and welcome other’s ideas and help
http://www.flickr.com/photos/7726011@N07/4079868523/
ASF Governance structure - Project, PMC, Broad
Communication and taking decisions• Rule 1: “Giving up control”
is part of the deal• Rule 2: Public Mailing lists.
If it did not happened in the list, it did not happen. No private decisions.
• Rule 3: Conflicts are resolved through Voting with a “Veto”
• Rule 4: Every one is a volunteer – “Thanks for volunteering”
photo by Todd Anderson on Flickr, http://www.flickr.com/photos/toddography/12034661/,
Licensed under CC
Voting Process• Ask for a “Vote” in the list. • Users vote as
– -1 : We must not do this. – -0 : I do not like it, but if you really
know what you are doing – 0 : Neutral– 0+ : I think it is a good idea– +1 : I support it
• Note that -1 means a veto– That means it cannot be done– But veto needs explanation and
willingness to code an alternative approach
– Code can be vetoed, but not releases • Minimum of 3 votes + wait for 72 hours
http://misterbijou.blogspot.com/2007_03_01_archive.html
• When to ask for vote?– Commit and review– Review and commit – Decided based on the impact
Veto forces Discussion
• Idea of Veto is to force people to discuss and resolve
http://www.flickr.com/photos/novecentino/2596898279/, Licensed CC
Avoid Undue influence
• Lot of cooperate users/ developers
• Avoid one group controlling
• Achieved through diversity
• Oversight by the board and members http://www.artelista.com/ypobra.php?o=19550
Meritocracy
• Apache does not recognize organizations, rather only individuals – Individuals holds Any
apache position even when they change the Job etc.
• Each individual are treated solely based on his merits to the project alone
http://www.public-domain-image.com/sport-public-domain-images-pictures/canoeing-and-
kayaking-pictures/lone-canoe-on-water.jpg.html
Your Merits Alone
How to Start?• Try things out• Join the user list• Read, Read ..• Start by helping
others• Fix bugs and patches• Talk, and explain http://molenda.us/photos/hockey-2006-12-
09/_DSC9580-r.html
How to Bring a Project in to Apache
• Submit a Proposal to Incubator • If accepted, join the incubator. Will have a
champion (who has to be an apache member) and mentors.
• Receive feedback and improve• When project has matured and built a
community around itself, it graduates.
ApacheCon, Hackathon, Roadshow
• Apache Con (generally every year at US and EU) gathering of Apache developers and users.
• Hackathon – developer gets together (F2F or remotely) and work on specific parts of the project. A concentrated effort.
• Roadshow – something like today’s event
This may sounds easy ..
• But it takes years and lot of work to build a successful open Source project
• It is not a dump and run for your code
• Community is the key ..
http://www.flickr.com/photos/mariachily/5250487136, Licensed CC
Questions?
Copyright by romainguy, and licensed for reuse under CC License http://www.flickr.com/photos/romainguy/249370084
Top Related