SlideShare une entreprise Scribd logo
1  sur  76
Télécharger pour lire hors ligne
Integrate (Yourself) with the
Apache Software Foundation
Krzysztof Sobkowiak
@ksobkowiak
The Apache Software Foundation Member, V.P. Apache ServiceMix
Senior Solution Architect at Capgemini
About me
✗ Apache Software Foundation
✗ Member
✗ Apache ServiceMix Committer & PMC Chair (V.P. ServiceMix)
✗ Contributor @ Apache Karaf, Apache CXF, Apache Camel, Apache ActiveMQ
✗ Capgemini
✗ Senior Solution Architect, Trainer
✗ JEE & OSS solutions, system integration
✗ Other Activities
✗ RoboCAP – programming & robot workshops for kids
✗ OASP – Open Application Standard Platform
Views in this presentation are my personal views and do not
necessarily reflect the views of the Apache Software Foundation.
Outline
✗ What is it? – The Apache Software Foundation
✗ How does it work? – The Apache Way
✗ Who does the work? – Apache Projects
✗ Some sample projects? – Apache ServiceMix & Co
✗ How to start? – Contributing to ASF Projects
1.
What is it?
The Apache Software Foundation
The ASF
✗ ASF == The Apache Software Foundation
✗ Non-profit corporation
✗ 501(c)3 charity
✗ Volunteer organization
✗ Virtual world-wide organization
✗ Exists to provide the organizational, legal and financial support for various OSS
projects
The Apache Group
✗ Before the ASF there was “The Apache Group”
✗ Informal corporate structure
✗ 8 members
✗ Resumed work on NCSA httpd in Feb. 1995
✗ Choose permissive licensing
https://github.com/rbowen/presentations/blob/master/apache_way/slides.md
The ASF
Then
✗ Incorporated in 1999
✗ Started with 21 members
✗ 2 projects
✗ All servers and services donated
Now
✗ 675 members
✗ 168 TLPs
✗ 112 subprojects
✗ 47 Incubator podlings
✗ Tons of committers (literally)
✗ ~ 4500 committers,
✗ ~ 2150 PMC members,
✗ ~ 6900 signed ICLAs
✗ Very large and growing infrastructure
The ASF's Mission
What?
✗ Provide open source software to public
free of charge
✗ Let the coders code – foundation exists
to do the rest
How?
✗ Infrastructure for open source
development
✗ Legal entity for donation purposes
✗ Shelter from law suits
✗ Protection of the Apache brand
Structure of the ASF - dev
✗ Volunteer Driven Organization
✗ Software Projects are managed by Project Management Committees (PMCs)
✗ vote in new PMC members and committers
✗ vote in new releases
✗ establish rules, report to board
✗ oversee legal aspects, and community health
✗ Each PMC has a Chair (appointed by board) – eyes and ears of the board (oversight
only)
Structure of the ASF - legal
✗ Member-based corporation – individuals only
✗ Members nominate and elect new members
✗ Members elect a board – 9 seats
✗ manage and oversee the corporation, its assets and resources
✗ Annual meetings via IRC
✗ Board elects 10 officers
✗ oversee the day-to-day affairs
ASF – Org Chart
PMC Members
Committers
Contributors
Patchers/Buggers
Users
Development
Members
Officers
Board
Administrative
PMC's
(TLP's)
2.
How does it work?
The Apache Way
Why Open Source?
✗ Avoid vendor lock-in
✗ Control your destiny
✗ Better security record (more eyes)
✗ Frequent releases
✗ Direct user input
The Apache Way
✗ A method of developing software
✗ A method of running communities
✗ A method of governing a Foundation
✗ Although the term is deprecated, The Apache Way relates to how the ASF (and its
projects) work and operate
✗ Basically, the least common denominators on how PMCs operate
Basic Memes
Peer-based
Meritocracy
Consensus
decision
making
Responsible
oversight
Collaborative
development
Meritocracy
✗ “Govern by Merit”
✗ Merit is based on what you do
✗ Merit never expires
✗ Those with merit, get more
responsibility
✗ The best ideas win
✗ Any constructive contribution earns
merit
✗ Not just code
✗ Evangelism
✗ Bug reports and triage
✗ Testing
✗ Documentation
✗ Design feedback
✗ User support
✗ Etc.
Peer-based
✗ Developers represent themselves –
individuals
✗ Mutual trust and respect
✗ All votes hold the same weight
✗ Community over the code
✗ Healthy communities create
healthy code
✗ Poisonous communities don't
How Open Source Projects Survive Poisonous People (And You Can Too)
by Ben Collins-Sussman & Brian Fitzpatrick –
https://youtu.be/Q52kFL8zVoM
Why Community > Code
✗ Since we are all volunteers, people's time and interests change
✗ A healthy community is “warm and inviting” and encourages a continued influx of
developers
✗ Poisonous people/communities turn people off, and the project will die
✗ End result – better code, long-term code
Consensus decision making
✗ Key is the idea of voting
✗ +1 – yes
✗ 0 – no real comment
✗ - 1 – veto
✗ Sometimes you'll also see stuff like -0, -0.5, etc...
Voting
✗ The main intent is to gauge developer acceptance
✗ Vetos must be justifiable and sound technical merit
✗ If valid, vetos cannot be overruled
✗ Vetos are very rare
Commit Process
✗ Review Then Commit (RTC)
✗ A patch is submitted to the project for inclusion
✗ 72+ hour window for voting/discussion
✗ If at least 3 +1s and no -1s, code is committed
✗ Ensures enough “eyes on the code” on a direct-to-release path
Commit Process
✗ Commit Then Review (CTR)
✗ A patch is committed to the code
✗ Review Process happens post commit
✗ Good for development branches
✗ Depends on people doing reviews after the fact
✗ Allows very fast development
Commit Process
✗ Lazy Consensus
✗ variant of RTC
✗ “I plan on committing this in 3 days”
✗ Provides opportunity for oversight, but with known “deadline”
✗ As always, can be vetoed after the fact
Collaborative Development
✗ Code is developed by the community
✗ Voting ensures at least 3 active developers
✗ Decisions done online and on-list
✗ If it didn’t happen on-list, it didn’t happen
Collaborative Development
✗ Mailing lists are the preferred method
✗ Archived
✗ Asynchronous
✗ Available to anyone – public list
✗ Other methods are OK
✗ Wikis, IRC, F2F
✗ Always bring back to the list
Collaborative Development
✗ Shared vision
✗ Real-time updates
✗ Real-time help requests
✗ Self-service archives
Responsible Oversight
✗ Ensure clean IP in all Apache releases
✗ Ensure license compliance
✗ Quality code
✗ Quality community
3.
Who does this work?
Apache Projects
Apache Projects
✗ Responsible for their own code, community and direction
✗ Board provides oversight, but has no say on what code gets written, what direction
projects take, what new projects we should start etc
✗ Foundation provides support (e.g. infra, branding, press) so that projects can focus
just on their code + community
Apache Projects
✗ Over 160 top-level projects (TLPs)
✗ Diversity: Java, C, C++, Perl, …
✗ Leading technology
✗ Web servers, Java tools & stacks,
search, cloud, big data, build tools,
CMS/web framework, databases, OSGi
containers, integration frameworks,
graphics, …
✗ And end user Office suites!
✗ Over 40 projects currently in “pipeline”
Apache Projects
✗ It’s okay for projects to be in “same” space
✗ Ant/Maven, Pig/Hive, Axis/CXF...
✗ “Competing” project technology is OK
✗ If an active community following the Apache Way wants to join, great!
Apache Projects
Who pays?
✗ Apache does not pay for development
✗ Voluntary contributions only!
✗ Many (not all!) developers are paid by a third-party to work on the project
✗ Foundation bears indirect support costs
✗ Infrastructure, publicity, etc.
The Apache Incubator
✗ Entry point for all new projects
✗ Indoctrinates the Apache Way to the podling
✗ Ensures and tracks IP
The Apache License (AL)
✗ A liberal open source software license – BSD-like
✗ Business friendly
✗ Requires attribution
✗ Includes Patent Grant
✗ Easily reused by other projects & organizations
4.
Some sample projects?
Apache ServiceMix & Co
Integration Projects
✗ Hard and painful
✗ Different technologies, systems, infrastructures
✗ Many standards, products, tools (SOA, EAI, …)
✗ Many formats (XML, CSV, EDI, ...)
✗ Implementations are resource and time consuming
✗ SOA, BPEL, EAI not sucessfull
ASF & Integration
✗ Apache Camel – messaging and routing
✗ Apache CXF – web services (SOAP/REST)
✗ Apache ActiveMQ – message broker
✗ Apache ServiceMix – flexible integration container
Not covered here:
✗ Apache ODE – BPEL
✗ Apache Tuscany – SCA
✗ Apache Synapse – ESB
Apache ServiceMix
✗ Flexible, open-source integration container
✗ Powered by OSGi
Main features
✗ OSGi-based runtime powered by Apache Karaf
✗ Reliable messaging with Apache ActiveMQ
✗ Messaging, routing and EIP with Apache Camel
✗ SOAP/REST web services with Apache CXF
Apache ServiceMix
The beginning
✗ Started in 2005 to implement the Java Business Integration specification
✗ Decoupling of the components (business, technical) by using XML messages
✗ Define a model to package/deploy applications (SU/SA)
✗ Transport layer Normalized Message Router→
Apache ServiceMix
Problems with JBI
✗ JBI approach interesting but restrictive
✗ XML format
✗ Heavy deployment model
✗ Component development (25 vs more than 100 for Camel)
✗ Few support from IT actors (IBM, Oracle, …) to improve specification 1.0 2.0→
Apache ServiceMix
New architecture
✗ Become independent of JBI specification
✗ Propose new kernel (= new architecture design)
✗ Use modularity for jars management, versioning based on OSGi, OSGi enterprise
✗ Platform as multi-container or container ship
✗ Adopt Camel as new routing engine
Apache ServiceMix 4+
✗ Based on OSGi kernel
✗ Why? Offers modularity, jar management and versioning→
✗ Becomes integration platform for
✗ Camel
✗ ActiveMQ
✗ CXF
✗ Aries (JPA, Transaction, JNDI)
✗ JBI (removed in ServiceMix 5+)
✗ …
ServiceMix Architecture
ServiceMix Kernel
Apache Karaf
✗ Small OSGi based server
✗ Lightweight container where
applications, components, routes, etc.
can be deployed
✗ Modular system – install features you
need
✗ Supported runtimes
✗ Apache Felix
✗ Eclipse Equinox
Application types
✗ OSGi Blueprint, DS or plain bundles
✗ Spring DM bundles (legacy)
✗ Camel routes
✗ Business rules & processes
ServiceMix Kernel
Features
✗ Hot deployment
✗ Dynamic configuration
✗ Logging system
✗ Provisioning system (features, OBR,
KAR, EBA, ESA)
✗ Native OS integration
✗ Security integration (JAAS ldap, jdbc,→
file, …)
✗ Managed instances
✗ Versioning
✗ Service Registry
✗ Clustering (Master/Slave with jdbc or
file lock)
✗ ….
ServiceMix Kernel
Administration & monitoring
✗ Extensible Shell Console (local, remote, ssh)
✗ JMX
✗ Web Console
✗ Hawt.io
✗ Apache Karaf Decanter
Messaging & Routing
Apache Camel
✗ Open Source integration framework
✗ Implements EIP paterns (book by Gregor Hohpe)
✗ Provides word definition, grammar and language when designing integration
solutions
✗ Uses Domain Specific Languages – XML, Java, Scala,...
Messaging & Routing
Features
✗ In memory bus Alternative to JBI←→
using NMR
✗ Route objects can be XML, File,→
Stream, Bytes, …
✗ Transactional architecture
✗ Sync/Async exchanges
✗ Error and exception handling
✗ ...
Messaging & Routing
✗ More than 50 EIPs implemented
Aggregator Channel
Adapter
Channel Channel
Purger
Command
Message
Competing
Consumers
Content
Based
Content
Filter
Control Bus Correlation
ID
Content
Enricher
Datatype
Channel
Dead Letter
Channel
Detour
Composed
Message
Document
Message
Durable
Subscriber
Envelope
Wrapper
Event-Driven
Consumer
Event Message Message
Filter
Guaranteed
Delivery
Message Bus Message
Dispatcher
Message
Endpoint
Message Message BranchInvalid
Message
C
A B
D
!
E
http://camel.apache.org/enterprise-integration-patterns.html
Messaging & Routing
✗ More than 100 components
http://camel.apache.org/components.html
Messaging & Routing
✗ Many data formatters
✗ Simplify data exchange between
layers and applications
✗ Example: JAXB, Bindy,...
✗ Use marshaller (xml object) and→
unmarshaller (object xml)→
http://camel.apache.org/data-format.html
Reliable Messaging
Apache ActiveMQ
✗ A high performance, reliable message
broker
✗ Persistence for messages
✗ Bridge between broker instances
✗ Languages for client – Java, C, C++, C#,
Ruby, …
✗ Protocols – OpenWire, Stomp, AMQP, MQTT
✗ Publish/subscribe, point to point, request
and reply
✗ Clustering and Fault Tolerance
✗ ...
Reliable Messaging
Architecture
✗ Clients connect to the broker using
connectors
✗ Topics and queues created dynamically
✗ File and jdbc message stores supported
✗ Network connectors control how the
broker interacts with other brokers for
✗ discovery,
✗ replication,
✗ failover,
✗ clustering...
Web Services
Apache CXF
✗ Simplifies the creation and deployment of web services
✗ Java to WSDL
✗ WSDL to Java
✗ WS-Addressing – data exchange in
SOAP header for the routing
✗ WS-RM – message delivery guarantee
✗ DOSGi – reference implementation of
OSGi Remote Services specification
Supported standards
✗ JAX-WS SOAP Services (SOAP/XML)→
✗ JAX-RS RESTfull Services (JSON)→
✗ SOAP 1.1, 1.2, WSDL 1.1
✗ WS-Security – secures the client/server
connection
Apache ServiceMix
Additional features
✗ Business rule engine with Drools
✗ BPM engine with Activiti
✗ JPA support and XA transactions via Apache Aries
✗ JPA implementations – Apache OpenJPA, Hibernate
✗ Web support via Jetty and Pax Web
✗ IoC support via Apache Aries and Spring
✗ CDI support via Pax CDI
Clustering & Fault Tolerance
Kernel
✗ Active/Passive mode with file/jdbc lock
✗ Bundles can be installed in Active/Passive mode
Broker
✗ Master/Slave with shared file system, shared database, replicated LevelDB store
✗ Network of brokers
Clustering & Fault Tolerance
Apache Karaf Cellar
✗ Allows powerful synchronisation of multiple ServiceMix instances
✗ Leverage Hazelcast data distribution
✗ Easy to install and use: just a feature to install on each node
✗ No point of failure (each node embeds Hazelcast instance)
✗ Provides DOSGi implementation
Federated SOA with Apache ServiceMix
ServiceMix Tooling
✗ Integration with InteliJ, Eclipse, Netbeans
✗ JBoss Tools Integration Stack
✗ JBoss Developer Studio
ServiceMix Demo
✗ https://github.com/sobkowiak/smx-order-service-demo
5.
How to start?
Contributing to ASF Projects
Why to Contribute? – Indivuduals
✗ Better end easy recognition of work
✗ Publicly verifiable resume
✗ Work with best programmers, with the best programming practices
✗ No managers, no boss
✗ Work on what you like when you like
✗ Discuss technical designs and issues in writing
✗ Networking opportunities
✗ Build software used by millions around the world
✗ ApacheCon
Why to Contribute? – Companies
✗ Recognition as company contributing to open source
✗ Attract better people to come and join
✗ Make sure the technologies you use sustain
✗ Contributing developers
✗ Having in-house expertise
✗ Making sure you can influence the directions
✗ Free training for your developers in all aspects of development, management, QA and
maintenance
✗ Pooling the developers to work on a project important to the company
How to Contribute? – Indivuduals
✗ Apache wants voluntary contributions
✗ Documentation, Tutorials and Examples
✗ Helping others with queries and questions
✗ Issue / bug tracker triage
✗ Testing new fixes, helping reproduce problems
✗ Bug Fixes and New Features
✗ Writing add-ons and extensions
✗ Mentoring, volunteering for the Foundation
✗ Many different ways to get involved, all are important!
How to Contribute? – Companies
✗ Provide testimonials about the OSS your enterprise uses
✗ Allow staff members to work on OSS libraries/applications used by your company
✗ Push changes to OSS back
✗ Host ASF club meetings on your premises
✗ Extract out and make open source the libraries/applications developed in-house
✗ Free up the paid software/services for OSS communities
✗ Contributing is easier than you think!
Start contributing
✗ Choose your project
✗ Join the mailing list or forum
✗ Check out the code
✗ Download the binary and play with it
✗ Find open issues and feature requests
✗ Ask the developers on what you can
work on
✗ Sign ICLA
✗ Filter by your interest area
✗ Filter by language
✗ Something you use
✗ Something you want to learn
✗ Using the project is very
important
✗ English
✗ A programming language
✗ Debugging
✗ Passion
✗ Perseverance
✗ Time
Require-
ments
Choosing
the right
project
How to
start?
Become a Committer
Invitation of commit access
✗ Current PMC member nominates
individual
✗ Discussions on private@ list
✗ Key ?: Do we trust this individual?
✗ PMCs are free to set own bar
Beyond a committer
✗ Once you are committer, you can then
become a
✗ PMC member
✗ foundation member
✗ Director...
✗ even President!
✗ You can nominate other foundation (or
PMC) members; can serve as mentor for
Incubating projects; vote for Board.
We are more than a group of projects
sharing a server, we are a community of
developers and users.
“
thanks!
Any questions?
You can find me at
@ksobkowiak
ksobkowiak@apache.org
krzys.sobkowiak@gmail.com
https://github.com/sobkowiak
References
✗ The Apache Software Foundation
✗ http://apache.org
✗ http://community.apache.org
✗ Apache ServiceMix
✗ http://servicemix.apache.org
✗ users@servicemix.apache.org
✗ #apache-servicemix @ irc.freenode.net
✗ Apache Karaf
✗ http://karaf.apache.org
✗ Apache Camel
✗ http://camel.apache.org
✗ Apache CXF
✗ http://cxf.apache.org
✗ Apache ActiveMQ
✗ http://activemq.apache.org
✗ Apache Aries
✗ http://aries.apache.org
✗ Apache Felix
✗ http://felix.apache.org
Credits
Special thanks to all the people who made and released these awesome resources for free:
✗ Past Apache Way slides by Jim Jagielski, Shane Curcuru, Justin Erenkrantz, Rich Bowen and
Ross Gardler
✗ Past Apache ServiceMix, Apache Karaf and Apache Camel slides by Jean-Baptiste Onofré,
Gert Vanthienen, Achim Nierbeck, Christian Schneider and Charles Moulliard
This work is licensed under the Apache License, Version 2.0
Apache, the Apache feather logo, Apache ServiceMix, Apache Karaf, Apache Camel, Apache CXF, Apache ActiveMQ and other Apache project names
mentioned in this presentation and their logos are trademarks of The Apache Software Foundation in the United States and/or other countries.
All other marks mentioned may be trademarks or registered trademarks of their respective owners.

Contenu connexe

Tendances

Ratpack Web Framework
Ratpack Web FrameworkRatpack Web Framework
Ratpack Web FrameworkDaniel Woods
 
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...Symphony Software Foundation
 
Fuse integration-services
Fuse integration-servicesFuse integration-services
Fuse integration-servicesChristian Posta
 
Integrating Alfresco @ Scale (via event-driven micro-services)
Integrating Alfresco @ Scale (via event-driven micro-services)Integrating Alfresco @ Scale (via event-driven micro-services)
Integrating Alfresco @ Scale (via event-driven micro-services)J V
 
10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco projectSymphony Software Foundation
 
An evolution of application networking: service mesh
An evolution of application networking: service meshAn evolution of application networking: service mesh
An evolution of application networking: service meshChristian Posta
 
Simplify integrations-final-pdf
Simplify integrations-final-pdfSimplify integrations-final-pdf
Simplify integrations-final-pdfChristian Posta
 
The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...
The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...
The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...VMware Tanzu
 
Solving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache CamelSolving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache CamelChristian Posta
 
Content-Centric Web Development with Apache Sling
Content-Centric Web Development with Apache SlingContent-Centric Web Development with Apache Sling
Content-Centric Web Development with Apache SlingKoen Van Eeghem
 
The State of WebSockets in Django
The State of WebSockets in DjangoThe State of WebSockets in Django
The State of WebSockets in DjangoRami Sayar
 
Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Daniel Woods
 
Microservices Practitioner Summit Jan '15 - Microservice Ecosystems At Scale ...
Microservices Practitioner Summit Jan '15 - Microservice Ecosystems At Scale ...Microservices Practitioner Summit Jan '15 - Microservice Ecosystems At Scale ...
Microservices Practitioner Summit Jan '15 - Microservice Ecosystems At Scale ...Ambassador Labs
 
提到 DevOps 到底在談些什麼玩意兒?
提到 DevOps 到底在談些什麼玩意兒?提到 DevOps 到底在談些什麼玩意兒?
提到 DevOps 到底在談些什麼玩意兒?Chen Cheng-Wei
 

Tendances (17)

DevNexus 2015
DevNexus 2015DevNexus 2015
DevNexus 2015
 
Ratpack Web Framework
Ratpack Web FrameworkRatpack Web Framework
Ratpack Web Framework
 
Unsafe SSL webinar
Unsafe SSL webinarUnsafe SSL webinar
Unsafe SSL webinar
 
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...
ApacheCon NA 2015 - Gabriele Columbro - Is Open Source the right model in the...
 
Fuse integration-services
Fuse integration-servicesFuse integration-services
Fuse integration-services
 
Integrating Alfresco @ Scale (via event-driven micro-services)
Integrating Alfresco @ Scale (via event-driven micro-services)Integrating Alfresco @ Scale (via event-driven micro-services)
Integrating Alfresco @ Scale (via event-driven micro-services)
 
10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project10 things you need to know to deliver a successful Alfresco project
10 things you need to know to deliver a successful Alfresco project
 
An evolution of application networking: service mesh
An evolution of application networking: service meshAn evolution of application networking: service mesh
An evolution of application networking: service mesh
 
Simplify integrations-final-pdf
Simplify integrations-final-pdfSimplify integrations-final-pdf
Simplify integrations-final-pdf
 
The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...
The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...
The Pivotal Engineering Dojo: Earning Your Black Belt in Cloud Foundry Engine...
 
Solving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache CamelSolving Enterprise Integration with Apache Camel
Solving Enterprise Integration with Apache Camel
 
Content-Centric Web Development with Apache Sling
Content-Centric Web Development with Apache SlingContent-Centric Web Development with Apache Sling
Content-Centric Web Development with Apache Sling
 
The State of WebSockets in Django
The State of WebSockets in DjangoThe State of WebSockets in Django
The State of WebSockets in Django
 
Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015Ratpack - SpringOne2GX 2015
Ratpack - SpringOne2GX 2015
 
Microservices Practitioner Summit Jan '15 - Microservice Ecosystems At Scale ...
Microservices Practitioner Summit Jan '15 - Microservice Ecosystems At Scale ...Microservices Practitioner Summit Jan '15 - Microservice Ecosystems At Scale ...
Microservices Practitioner Summit Jan '15 - Microservice Ecosystems At Scale ...
 
提到 DevOps 到底在談些什麼玩意兒?
提到 DevOps 到底在談些什麼玩意兒?提到 DevOps 到底在談些什麼玩意兒?
提到 DevOps 到底在談些什麼玩意兒?
 
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee
JavaCro'15 - HTTP2 Comes to Java! - David DelabasseeJavaCro'15 - HTTP2 Comes to Java! - David Delabassee
JavaCro'15 - HTTP2 Comes to Java! - David Delabassee
 

Similaire à Integrate (Yourself) with the Apache Software Foundation - Full Version

Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charity
Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charityIntegrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charity
Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charityKrzysztof Sobkowiak
 
Running Successful Open Source Projects
Running Successful Open Source ProjectsRunning Successful Open Source Projects
Running Successful Open Source ProjectsJim Jagielski
 
Integrate (Yourself) with the Apache Software Foundation - Open Source Day 2015
Integrate (Yourself) with the Apache Software Foundation - Open Source Day 2015Integrate (Yourself) with the Apache Software Foundation - Open Source Day 2015
Integrate (Yourself) with the Apache Software Foundation - Open Source Day 2015Krzysztof Sobkowiak
 
Opensource development and apache software foundation
Opensource development and apache software foundationOpensource development and apache software foundation
Opensource development and apache software foundationEran Chinthaka Withana
 
OpenChain at EOLE 2017
OpenChain at EOLE 2017OpenChain at EOLE 2017
OpenChain at EOLE 2017Shane Coughlan
 
But we're already open source! Why would I want to bring my code to Apache?
But we're already open source! Why would I want to bring my code to Apache?But we're already open source! Why would I want to bring my code to Apache?
But we're already open source! Why would I want to bring my code to Apache?gagravarr
 
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...SmartBear
 
The Apache Way: A Proven Way Toward Success
The Apache Way: A Proven Way Toward SuccessThe Apache Way: A Proven Way Toward Success
The Apache Way: A Proven Way Toward SuccessEvans Ye
 
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?gagravarr
 
What to expect when you're Incubating
What to expect when you're IncubatingWhat to expect when you're Incubating
What to expect when you're IncubatingJulian Hyde
 
Mastering DevOps With Oracle
Mastering DevOps With OracleMastering DevOps With Oracle
Mastering DevOps With OracleKelly Goetsch
 
Apache: Code, Community and Open Source
Apache: Code, Community and Open SourceApache: Code, Community and Open Source
Apache: Code, Community and Open SourceOPNFV
 
ASWF Technical Advisory Council: How to Enable An Open Source Community
ASWF Technical Advisory Council: How to Enable An Open Source CommunityASWF Technical Advisory Council: How to Enable An Open Source Community
ASWF Technical Advisory Council: How to Enable An Open Source CommunityAcademySoftwareFoundation
 
7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer DayKimihiko Kitase
 
Open Source at the Apache Software Foundation
Open Source at the Apache Software Foundation Open Source at the Apache Software Foundation
Open Source at the Apache Software Foundation wgstoddard
 
Craig The apache Way
Craig The apache Way Craig The apache Way
Craig The apache Way jixuan1989
 
openstack-overview-india-keynote-2012.ppt
openstack-overview-india-keynote-2012.pptopenstack-overview-india-keynote-2012.ppt
openstack-overview-india-keynote-2012.pptweekendguru02
 

Similaire à Integrate (Yourself) with the Apache Software Foundation - Full Version (20)

Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charity
Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charityIntegrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charity
Integrate (Yourself) with the Apache Software Foundation - 33rd Degree 4charity
 
Running Successful Open Source Projects
Running Successful Open Source ProjectsRunning Successful Open Source Projects
Running Successful Open Source Projects
 
Integrate (Yourself) with the Apache Software Foundation - Open Source Day 2015
Integrate (Yourself) with the Apache Software Foundation - Open Source Day 2015Integrate (Yourself) with the Apache Software Foundation - Open Source Day 2015
Integrate (Yourself) with the Apache Software Foundation - Open Source Day 2015
 
Opensource development and apache software foundation
Opensource development and apache software foundationOpensource development and apache software foundation
Opensource development and apache software foundation
 
The Apache Way
The Apache WayThe Apache Way
The Apache Way
 
OpenChain at EOLE 2017
OpenChain at EOLE 2017OpenChain at EOLE 2017
OpenChain at EOLE 2017
 
But we're already open source! Why would I want to bring my code to Apache?
But we're already open source! Why would I want to bring my code to Apache?But we're already open source! Why would I want to bring my code to Apache?
But we're already open source! Why would I want to bring my code to Apache?
 
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
The API Lifecycle Series: Exploring Design-First and Code-First Approaches to...
 
The Apache Way: A Proven Way Toward Success
The Apache Way: A Proven Way Toward SuccessThe Apache Way: A Proven Way Toward Success
The Apache Way: A Proven Way Toward Success
 
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
 
What to expect when you're Incubating
What to expect when you're IncubatingWhat to expect when you're Incubating
What to expect when you're Incubating
 
Mastering DevOps With Oracle
Mastering DevOps With OracleMastering DevOps With Oracle
Mastering DevOps With Oracle
 
Apache: Code, Community and Open Source
Apache: Code, Community and Open SourceApache: Code, Community and Open Source
Apache: Code, Community and Open Source
 
Case study
Case studyCase study
Case study
 
ASWF Technical Advisory Council: How to Enable An Open Source Community
ASWF Technical Advisory Council: How to Enable An Open Source CommunityASWF Technical Advisory Council: How to Enable An Open Source Community
ASWF Technical Advisory Council: How to Enable An Open Source Community
 
7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day7 Apache Process Cloudstack Developer Day
7 Apache Process Cloudstack Developer Day
 
Open Source at the Apache Software Foundation
Open Source at the Apache Software Foundation Open Source at the Apache Software Foundation
Open Source at the Apache Software Foundation
 
Craig The apache Way
Craig The apache Way Craig The apache Way
Craig The apache Way
 
openstack-overview-india-keynote-2012.ppt
openstack-overview-india-keynote-2012.pptopenstack-overview-india-keynote-2012.ppt
openstack-overview-india-keynote-2012.ppt
 
OaaS:Open as a Strategy
OaaS:Open as a StrategyOaaS:Open as a Strategy
OaaS:Open as a Strategy
 

Dernier

Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...itnewsafrica
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sectoritnewsafrica
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialJoão Esperancinha
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 

Dernier (20)

Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
Irene Moetsana-Moeng: Stakeholders in Cybersecurity: Collaborative Defence fo...
 
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
4. Cobus Valentine- Cybersecurity Threats and Solutions for the Public Sector
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorial
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 

Integrate (Yourself) with the Apache Software Foundation - Full Version

  • 1. Integrate (Yourself) with the Apache Software Foundation Krzysztof Sobkowiak @ksobkowiak The Apache Software Foundation Member, V.P. Apache ServiceMix Senior Solution Architect at Capgemini
  • 2. About me ✗ Apache Software Foundation ✗ Member ✗ Apache ServiceMix Committer & PMC Chair (V.P. ServiceMix) ✗ Contributor @ Apache Karaf, Apache CXF, Apache Camel, Apache ActiveMQ ✗ Capgemini ✗ Senior Solution Architect, Trainer ✗ JEE & OSS solutions, system integration ✗ Other Activities ✗ RoboCAP – programming & robot workshops for kids ✗ OASP – Open Application Standard Platform
  • 3. Views in this presentation are my personal views and do not necessarily reflect the views of the Apache Software Foundation.
  • 4.
  • 5.
  • 6.
  • 7. Outline ✗ What is it? – The Apache Software Foundation ✗ How does it work? – The Apache Way ✗ Who does the work? – Apache Projects ✗ Some sample projects? – Apache ServiceMix & Co ✗ How to start? – Contributing to ASF Projects
  • 8. 1. What is it? The Apache Software Foundation
  • 9. The ASF ✗ ASF == The Apache Software Foundation ✗ Non-profit corporation ✗ 501(c)3 charity ✗ Volunteer organization ✗ Virtual world-wide organization ✗ Exists to provide the organizational, legal and financial support for various OSS projects
  • 10. The Apache Group ✗ Before the ASF there was “The Apache Group” ✗ Informal corporate structure ✗ 8 members ✗ Resumed work on NCSA httpd in Feb. 1995 ✗ Choose permissive licensing https://github.com/rbowen/presentations/blob/master/apache_way/slides.md
  • 11. The ASF Then ✗ Incorporated in 1999 ✗ Started with 21 members ✗ 2 projects ✗ All servers and services donated Now ✗ 675 members ✗ 168 TLPs ✗ 112 subprojects ✗ 47 Incubator podlings ✗ Tons of committers (literally) ✗ ~ 4500 committers, ✗ ~ 2150 PMC members, ✗ ~ 6900 signed ICLAs ✗ Very large and growing infrastructure
  • 12. The ASF's Mission What? ✗ Provide open source software to public free of charge ✗ Let the coders code – foundation exists to do the rest How? ✗ Infrastructure for open source development ✗ Legal entity for donation purposes ✗ Shelter from law suits ✗ Protection of the Apache brand
  • 13. Structure of the ASF - dev ✗ Volunteer Driven Organization ✗ Software Projects are managed by Project Management Committees (PMCs) ✗ vote in new PMC members and committers ✗ vote in new releases ✗ establish rules, report to board ✗ oversee legal aspects, and community health ✗ Each PMC has a Chair (appointed by board) – eyes and ears of the board (oversight only)
  • 14. Structure of the ASF - legal ✗ Member-based corporation – individuals only ✗ Members nominate and elect new members ✗ Members elect a board – 9 seats ✗ manage and oversee the corporation, its assets and resources ✗ Annual meetings via IRC ✗ Board elects 10 officers ✗ oversee the day-to-day affairs
  • 15. ASF – Org Chart PMC Members Committers Contributors Patchers/Buggers Users Development Members Officers Board Administrative PMC's (TLP's)
  • 16. 2. How does it work? The Apache Way
  • 17. Why Open Source? ✗ Avoid vendor lock-in ✗ Control your destiny ✗ Better security record (more eyes) ✗ Frequent releases ✗ Direct user input
  • 18. The Apache Way ✗ A method of developing software ✗ A method of running communities ✗ A method of governing a Foundation ✗ Although the term is deprecated, The Apache Way relates to how the ASF (and its projects) work and operate ✗ Basically, the least common denominators on how PMCs operate
  • 20. Meritocracy ✗ “Govern by Merit” ✗ Merit is based on what you do ✗ Merit never expires ✗ Those with merit, get more responsibility ✗ The best ideas win ✗ Any constructive contribution earns merit ✗ Not just code ✗ Evangelism ✗ Bug reports and triage ✗ Testing ✗ Documentation ✗ Design feedback ✗ User support ✗ Etc.
  • 21. Peer-based ✗ Developers represent themselves – individuals ✗ Mutual trust and respect ✗ All votes hold the same weight ✗ Community over the code ✗ Healthy communities create healthy code ✗ Poisonous communities don't How Open Source Projects Survive Poisonous People (And You Can Too) by Ben Collins-Sussman & Brian Fitzpatrick – https://youtu.be/Q52kFL8zVoM
  • 22. Why Community > Code ✗ Since we are all volunteers, people's time and interests change ✗ A healthy community is “warm and inviting” and encourages a continued influx of developers ✗ Poisonous people/communities turn people off, and the project will die ✗ End result – better code, long-term code
  • 23. Consensus decision making ✗ Key is the idea of voting ✗ +1 – yes ✗ 0 – no real comment ✗ - 1 – veto ✗ Sometimes you'll also see stuff like -0, -0.5, etc...
  • 24. Voting ✗ The main intent is to gauge developer acceptance ✗ Vetos must be justifiable and sound technical merit ✗ If valid, vetos cannot be overruled ✗ Vetos are very rare
  • 25. Commit Process ✗ Review Then Commit (RTC) ✗ A patch is submitted to the project for inclusion ✗ 72+ hour window for voting/discussion ✗ If at least 3 +1s and no -1s, code is committed ✗ Ensures enough “eyes on the code” on a direct-to-release path
  • 26. Commit Process ✗ Commit Then Review (CTR) ✗ A patch is committed to the code ✗ Review Process happens post commit ✗ Good for development branches ✗ Depends on people doing reviews after the fact ✗ Allows very fast development
  • 27. Commit Process ✗ Lazy Consensus ✗ variant of RTC ✗ “I plan on committing this in 3 days” ✗ Provides opportunity for oversight, but with known “deadline” ✗ As always, can be vetoed after the fact
  • 28. Collaborative Development ✗ Code is developed by the community ✗ Voting ensures at least 3 active developers ✗ Decisions done online and on-list ✗ If it didn’t happen on-list, it didn’t happen
  • 29. Collaborative Development ✗ Mailing lists are the preferred method ✗ Archived ✗ Asynchronous ✗ Available to anyone – public list ✗ Other methods are OK ✗ Wikis, IRC, F2F ✗ Always bring back to the list
  • 30. Collaborative Development ✗ Shared vision ✗ Real-time updates ✗ Real-time help requests ✗ Self-service archives
  • 31. Responsible Oversight ✗ Ensure clean IP in all Apache releases ✗ Ensure license compliance ✗ Quality code ✗ Quality community
  • 32. 3. Who does this work? Apache Projects
  • 33. Apache Projects ✗ Responsible for their own code, community and direction ✗ Board provides oversight, but has no say on what code gets written, what direction projects take, what new projects we should start etc ✗ Foundation provides support (e.g. infra, branding, press) so that projects can focus just on their code + community
  • 34. Apache Projects ✗ Over 160 top-level projects (TLPs) ✗ Diversity: Java, C, C++, Perl, … ✗ Leading technology ✗ Web servers, Java tools & stacks, search, cloud, big data, build tools, CMS/web framework, databases, OSGi containers, integration frameworks, graphics, … ✗ And end user Office suites! ✗ Over 40 projects currently in “pipeline”
  • 35. Apache Projects ✗ It’s okay for projects to be in “same” space ✗ Ant/Maven, Pig/Hive, Axis/CXF... ✗ “Competing” project technology is OK ✗ If an active community following the Apache Way wants to join, great!
  • 37. Who pays? ✗ Apache does not pay for development ✗ Voluntary contributions only! ✗ Many (not all!) developers are paid by a third-party to work on the project ✗ Foundation bears indirect support costs ✗ Infrastructure, publicity, etc.
  • 38. The Apache Incubator ✗ Entry point for all new projects ✗ Indoctrinates the Apache Way to the podling ✗ Ensures and tracks IP
  • 39. The Apache License (AL) ✗ A liberal open source software license – BSD-like ✗ Business friendly ✗ Requires attribution ✗ Includes Patent Grant ✗ Easily reused by other projects & organizations
  • 41. Integration Projects ✗ Hard and painful ✗ Different technologies, systems, infrastructures ✗ Many standards, products, tools (SOA, EAI, …) ✗ Many formats (XML, CSV, EDI, ...) ✗ Implementations are resource and time consuming ✗ SOA, BPEL, EAI not sucessfull
  • 42. ASF & Integration ✗ Apache Camel – messaging and routing ✗ Apache CXF – web services (SOAP/REST) ✗ Apache ActiveMQ – message broker ✗ Apache ServiceMix – flexible integration container Not covered here: ✗ Apache ODE – BPEL ✗ Apache Tuscany – SCA ✗ Apache Synapse – ESB
  • 43. Apache ServiceMix ✗ Flexible, open-source integration container ✗ Powered by OSGi Main features ✗ OSGi-based runtime powered by Apache Karaf ✗ Reliable messaging with Apache ActiveMQ ✗ Messaging, routing and EIP with Apache Camel ✗ SOAP/REST web services with Apache CXF
  • 44. Apache ServiceMix The beginning ✗ Started in 2005 to implement the Java Business Integration specification ✗ Decoupling of the components (business, technical) by using XML messages ✗ Define a model to package/deploy applications (SU/SA) ✗ Transport layer Normalized Message Router→
  • 45. Apache ServiceMix Problems with JBI ✗ JBI approach interesting but restrictive ✗ XML format ✗ Heavy deployment model ✗ Component development (25 vs more than 100 for Camel) ✗ Few support from IT actors (IBM, Oracle, …) to improve specification 1.0 2.0→
  • 46. Apache ServiceMix New architecture ✗ Become independent of JBI specification ✗ Propose new kernel (= new architecture design) ✗ Use modularity for jars management, versioning based on OSGi, OSGi enterprise ✗ Platform as multi-container or container ship ✗ Adopt Camel as new routing engine
  • 47. Apache ServiceMix 4+ ✗ Based on OSGi kernel ✗ Why? Offers modularity, jar management and versioning→ ✗ Becomes integration platform for ✗ Camel ✗ ActiveMQ ✗ CXF ✗ Aries (JPA, Transaction, JNDI) ✗ JBI (removed in ServiceMix 5+) ✗ …
  • 49. ServiceMix Kernel Apache Karaf ✗ Small OSGi based server ✗ Lightweight container where applications, components, routes, etc. can be deployed ✗ Modular system – install features you need ✗ Supported runtimes ✗ Apache Felix ✗ Eclipse Equinox Application types ✗ OSGi Blueprint, DS or plain bundles ✗ Spring DM bundles (legacy) ✗ Camel routes ✗ Business rules & processes
  • 50. ServiceMix Kernel Features ✗ Hot deployment ✗ Dynamic configuration ✗ Logging system ✗ Provisioning system (features, OBR, KAR, EBA, ESA) ✗ Native OS integration ✗ Security integration (JAAS ldap, jdbc,→ file, …) ✗ Managed instances ✗ Versioning ✗ Service Registry ✗ Clustering (Master/Slave with jdbc or file lock) ✗ ….
  • 51. ServiceMix Kernel Administration & monitoring ✗ Extensible Shell Console (local, remote, ssh) ✗ JMX ✗ Web Console ✗ Hawt.io ✗ Apache Karaf Decanter
  • 52. Messaging & Routing Apache Camel ✗ Open Source integration framework ✗ Implements EIP paterns (book by Gregor Hohpe) ✗ Provides word definition, grammar and language when designing integration solutions ✗ Uses Domain Specific Languages – XML, Java, Scala,...
  • 53. Messaging & Routing Features ✗ In memory bus Alternative to JBI←→ using NMR ✗ Route objects can be XML, File,→ Stream, Bytes, … ✗ Transactional architecture ✗ Sync/Async exchanges ✗ Error and exception handling ✗ ...
  • 54. Messaging & Routing ✗ More than 50 EIPs implemented Aggregator Channel Adapter Channel Channel Purger Command Message Competing Consumers Content Based Content Filter Control Bus Correlation ID Content Enricher Datatype Channel Dead Letter Channel Detour Composed Message Document Message Durable Subscriber Envelope Wrapper Event-Driven Consumer Event Message Message Filter Guaranteed Delivery Message Bus Message Dispatcher Message Endpoint Message Message BranchInvalid Message C A B D ! E http://camel.apache.org/enterprise-integration-patterns.html
  • 55. Messaging & Routing ✗ More than 100 components http://camel.apache.org/components.html
  • 56. Messaging & Routing ✗ Many data formatters ✗ Simplify data exchange between layers and applications ✗ Example: JAXB, Bindy,... ✗ Use marshaller (xml object) and→ unmarshaller (object xml)→ http://camel.apache.org/data-format.html
  • 57. Reliable Messaging Apache ActiveMQ ✗ A high performance, reliable message broker ✗ Persistence for messages ✗ Bridge between broker instances ✗ Languages for client – Java, C, C++, C#, Ruby, … ✗ Protocols – OpenWire, Stomp, AMQP, MQTT ✗ Publish/subscribe, point to point, request and reply ✗ Clustering and Fault Tolerance ✗ ...
  • 58. Reliable Messaging Architecture ✗ Clients connect to the broker using connectors ✗ Topics and queues created dynamically ✗ File and jdbc message stores supported ✗ Network connectors control how the broker interacts with other brokers for ✗ discovery, ✗ replication, ✗ failover, ✗ clustering...
  • 59. Web Services Apache CXF ✗ Simplifies the creation and deployment of web services ✗ Java to WSDL ✗ WSDL to Java ✗ WS-Addressing – data exchange in SOAP header for the routing ✗ WS-RM – message delivery guarantee ✗ DOSGi – reference implementation of OSGi Remote Services specification Supported standards ✗ JAX-WS SOAP Services (SOAP/XML)→ ✗ JAX-RS RESTfull Services (JSON)→ ✗ SOAP 1.1, 1.2, WSDL 1.1 ✗ WS-Security – secures the client/server connection
  • 60. Apache ServiceMix Additional features ✗ Business rule engine with Drools ✗ BPM engine with Activiti ✗ JPA support and XA transactions via Apache Aries ✗ JPA implementations – Apache OpenJPA, Hibernate ✗ Web support via Jetty and Pax Web ✗ IoC support via Apache Aries and Spring ✗ CDI support via Pax CDI
  • 61. Clustering & Fault Tolerance Kernel ✗ Active/Passive mode with file/jdbc lock ✗ Bundles can be installed in Active/Passive mode Broker ✗ Master/Slave with shared file system, shared database, replicated LevelDB store ✗ Network of brokers
  • 62. Clustering & Fault Tolerance Apache Karaf Cellar ✗ Allows powerful synchronisation of multiple ServiceMix instances ✗ Leverage Hazelcast data distribution ✗ Easy to install and use: just a feature to install on each node ✗ No point of failure (each node embeds Hazelcast instance) ✗ Provides DOSGi implementation
  • 63. Federated SOA with Apache ServiceMix
  • 64. ServiceMix Tooling ✗ Integration with InteliJ, Eclipse, Netbeans ✗ JBoss Tools Integration Stack ✗ JBoss Developer Studio
  • 66. 5. How to start? Contributing to ASF Projects
  • 67. Why to Contribute? – Indivuduals ✗ Better end easy recognition of work ✗ Publicly verifiable resume ✗ Work with best programmers, with the best programming practices ✗ No managers, no boss ✗ Work on what you like when you like ✗ Discuss technical designs and issues in writing ✗ Networking opportunities ✗ Build software used by millions around the world ✗ ApacheCon
  • 68. Why to Contribute? – Companies ✗ Recognition as company contributing to open source ✗ Attract better people to come and join ✗ Make sure the technologies you use sustain ✗ Contributing developers ✗ Having in-house expertise ✗ Making sure you can influence the directions ✗ Free training for your developers in all aspects of development, management, QA and maintenance ✗ Pooling the developers to work on a project important to the company
  • 69. How to Contribute? – Indivuduals ✗ Apache wants voluntary contributions ✗ Documentation, Tutorials and Examples ✗ Helping others with queries and questions ✗ Issue / bug tracker triage ✗ Testing new fixes, helping reproduce problems ✗ Bug Fixes and New Features ✗ Writing add-ons and extensions ✗ Mentoring, volunteering for the Foundation ✗ Many different ways to get involved, all are important!
  • 70. How to Contribute? – Companies ✗ Provide testimonials about the OSS your enterprise uses ✗ Allow staff members to work on OSS libraries/applications used by your company ✗ Push changes to OSS back ✗ Host ASF club meetings on your premises ✗ Extract out and make open source the libraries/applications developed in-house ✗ Free up the paid software/services for OSS communities ✗ Contributing is easier than you think!
  • 71. Start contributing ✗ Choose your project ✗ Join the mailing list or forum ✗ Check out the code ✗ Download the binary and play with it ✗ Find open issues and feature requests ✗ Ask the developers on what you can work on ✗ Sign ICLA ✗ Filter by your interest area ✗ Filter by language ✗ Something you use ✗ Something you want to learn ✗ Using the project is very important ✗ English ✗ A programming language ✗ Debugging ✗ Passion ✗ Perseverance ✗ Time Require- ments Choosing the right project How to start?
  • 72. Become a Committer Invitation of commit access ✗ Current PMC member nominates individual ✗ Discussions on private@ list ✗ Key ?: Do we trust this individual? ✗ PMCs are free to set own bar Beyond a committer ✗ Once you are committer, you can then become a ✗ PMC member ✗ foundation member ✗ Director... ✗ even President! ✗ You can nominate other foundation (or PMC) members; can serve as mentor for Incubating projects; vote for Board.
  • 73. We are more than a group of projects sharing a server, we are a community of developers and users. “
  • 74. thanks! Any questions? You can find me at @ksobkowiak ksobkowiak@apache.org krzys.sobkowiak@gmail.com https://github.com/sobkowiak
  • 75. References ✗ The Apache Software Foundation ✗ http://apache.org ✗ http://community.apache.org ✗ Apache ServiceMix ✗ http://servicemix.apache.org ✗ users@servicemix.apache.org ✗ #apache-servicemix @ irc.freenode.net ✗ Apache Karaf ✗ http://karaf.apache.org ✗ Apache Camel ✗ http://camel.apache.org ✗ Apache CXF ✗ http://cxf.apache.org ✗ Apache ActiveMQ ✗ http://activemq.apache.org ✗ Apache Aries ✗ http://aries.apache.org ✗ Apache Felix ✗ http://felix.apache.org
  • 76. Credits Special thanks to all the people who made and released these awesome resources for free: ✗ Past Apache Way slides by Jim Jagielski, Shane Curcuru, Justin Erenkrantz, Rich Bowen and Ross Gardler ✗ Past Apache ServiceMix, Apache Karaf and Apache Camel slides by Jean-Baptiste Onofré, Gert Vanthienen, Achim Nierbeck, Christian Schneider and Charles Moulliard This work is licensed under the Apache License, Version 2.0 Apache, the Apache feather logo, Apache ServiceMix, Apache Karaf, Apache Camel, Apache CXF, Apache ActiveMQ and other Apache project names mentioned in this presentation and their logos are trademarks of The Apache Software Foundation in the United States and/or other countries. All other marks mentioned may be trademarks or registered trademarks of their respective owners.