introduction to open source, apache and apache way

30
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

Upload: srinath-perera

Post on 24-Jan-2015

9.159 views

Category:

Technology


1 download

DESCRIPTION

This is a introduction to Open Source and Apache Way. I did talk at Apache Bar Camp 2012 at Engineering Faculty, University of Peradeniya

TRANSCRIPT

Page 1: Introduction to Open Source, Apache and Apache Way

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

Page 2: Introduction to Open Source, Apache and Apache Way

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

Page 3: Introduction to Open Source, Apache and Apache Way

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

Page 4: Introduction to Open Source, Apache and Apache Way

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)

Page 5: Introduction to Open Source, Apache and Apache Way

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.

Page 6: Introduction to Open Source, Apache and Apache Way

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

Page 7: Introduction to Open Source, Apache and Apache Way

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.

Page 8: Introduction to Open Source, Apache and Apache Way

• "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

Page 9: Introduction to Open Source, Apache and Apache Way

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

Page 10: Introduction to Open Source, Apache and Apache Way

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

Page 11: Introduction to Open Source, Apache and Apache Way

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

Page 12: Introduction to Open Source, Apache and Apache Way

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

Page 13: Introduction to Open Source, Apache and Apache Way

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

Page 14: Introduction to Open Source, Apache and Apache Way

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

Page 15: Introduction to Open Source, Apache and Apache Way

How Apache Project Works?

Page 16: Introduction to Open Source, Apache and Apache Way

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

Page 17: Introduction to Open Source, Apache and Apache Way

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/

Page 18: Introduction to Open Source, Apache and Apache Way

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

Page 19: Introduction to Open Source, Apache and Apache Way

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/

Page 20: Introduction to Open Source, Apache and Apache Way

ASF Governance structure - Project, PMC, Broad

Page 21: Introduction to Open Source, Apache and Apache Way

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

Page 22: Introduction to Open Source, Apache and Apache Way

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

Page 23: Introduction to Open Source, Apache and Apache Way

Veto forces Discussion

• Idea of Veto is to force people to discuss and resolve

http://www.flickr.com/photos/novecentino/2596898279/, Licensed CC

Page 24: Introduction to Open Source, Apache and Apache Way

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

Page 25: Introduction to Open Source, Apache and Apache Way

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

Page 26: Introduction to Open Source, Apache and Apache Way

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

Page 27: Introduction to Open Source, Apache and Apache Way

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.

Page 28: Introduction to Open Source, Apache and Apache Way

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

Page 29: Introduction to Open Source, Apache and Apache Way

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

Page 30: Introduction to Open Source, Apache and Apache Way

Questions?

Copyright by romainguy, and licensed for reuse under CC License http://www.flickr.com/photos/romainguy/249370084