Contenu connexe Similaire à Institutionalizing Open Source - Puneet Sachdev - Nasscom Tech Series - June 6th 2013 (20) Institutionalizing Open Source - Puneet Sachdev - Nasscom Tech Series - June 6th 20131. June 6th, 2013
Puneet Sachdev, Enterprise Architect
Head - Open Source CoE
@psachdev
puneet.sachdev@niit-tech.com
2. © 2013 NIIT Technologies Ltd. 2
Three Types of Enterprise Adopters
3. © 2013 NIIT Technologies Ltd. 3
IT Service Vendors
Reduced Cost of Development
Better Quality
Flexibility / Multiple Options
4. © 2013 NIIT Technologies Ltd. 4
Product Vendors
Better Quality Software
Competitive Features
Freedom, No Vendor Lock In
Reduced Cost
5. © 2013 NIIT Technologies Ltd. 5
End User Enterprises
Better Quality
Security
Open Standards Support
No Vendor Lock-In
Reduced TCO
7. © 2013 NIIT Technologies Ltd. 7
Barrier 1 – Too Many Choices
Forges (e.g: SourceForge)
Foundations (e.g: Apache)
Project Specific Repositories (e.g: Drupal)
1 Million+ FOSS Projects
> 38K Ajax Libraries
8. © 2013 NIIT Technologies Ltd. 8
Barrier 2 – Licensing
Diverse Licenses
Viral Nature
Unknown Licenses
10. © 2013 NIIT Technologies Ltd. 10
Structured Evaluation Process
Age License Team
Community Release Calendar Success Stories
11. © 2013 NIIT Technologies Ltd. 11
Operating System
Database
Middleware (Containers, MOM)
Core Services (Logging, caching, Persistence, Security etc)
Application Frameworks
Infrastructure Applications (Portals, ERP/CRM, Mail Server, Http Server, Security
Proxy Servers, Reverse Proxy Servers, Integration)
Applications
Reference Framework
Lifecycle Mgmt
I
D
E
A
P
P
M
O
D
E
L
L
I
N
G
V
E
R
S
I
O
N
C
O
N
T
R
O
L
B
U
I
L
D
T
O
O
L
S
T
E
S
T
I
N
G
12. © 2013 NIIT Technologies Ltd. 12
Reference Framework
OS
CentOS Ubuntu Lifecycle Mgmt
Database MySQL MongoDB Cassandra
JBoss
ActiveMQ JBOSS Messaging
Axis2Web Services
MOM
JEE
Integration
Middleware
SpringWS
Spring Integration Mule
Drools ActivitiBRS/BPM
Spring MVC Struts1.3.x/Struts 2.xApplication Framework CakePHP
jQuery YUI
GWT
RIA Frameworks
Flex
ESAPIWeb Security
EclipseRCPSMART Client
Social Spring Social
E
C
L
I
P
S
E
A
N
T
/
M
A
V
E
N
H
U
D
S
O
N
C
R
U
I
S
E
S
U
B
V
E
R
S
I
O
N
B
U
G
Z
I
L
L
A
S
O
N
A
R
T
P
T
P
/
L
A
M
B
D
A
S
O
A
P
U
I
O
P
E
N
S
T
A
S
E
L
E
N
I
U
M
J
U
N
I
T
D
R
U
P
P
A
L
I
D
E
B
U
I
L
D
V
E
R
S
.
B
U
G
S
R
E
V
T
E
S
T
C
O
L
L
A
B
Cache MemCache
Hibernate
Spring3.x
AspectJ
Persistence
Logging
IoC/DI
AOP
Schedule
Apache VelocityTemplating
Commons Suite of LibrariesLibraries
JACOB – Java COM BridgeBridge
Core
Services
Freemarker
Log4j LogBack
RXTXComm
HazelCast
Quartz Spring Batch
Hadoop and Related Projects
Portal, CMS, Search
Big Data
Apache HTTP Server Tomcat
HTTP/Web
Server
Infrastructure
JasperBI
Drupal Solr Liferay
D3
Storm
13. © 2013 NIIT Technologies Ltd. 13
E-Commerce Website
CentOS
OS
Lifecycle Mgmt
MySQLDatabase
Middleware
MemCache
Hibernate
Spring3.x
AspectJ
Cache
Persistence
Logging
IoC/DI
AOP
Commons Suite of LibrariesLibraries
Core
Services
Log4j
Spring MVCApplication Framework
RIA Frameworks
ESAPIWeb Security
Apache HTTP Server Tomcat
HTTP/Web
Server
Infrastructure
E
C
L
I
P
S
E
A
N
T
/
M
A
V
E
N
H
U
D
S
O
N
S
U
B
V
E
R
S
I
O
N
B
U
G
Z
I
L
L
A
S
O
N
A
R
T
P
T
P
/
L
A
M
B
D
A
O
P
E
N
S
T
A
S
E
L
E
N
I
U
M
J
U
N
I
T
I
D
E
B
U
I
L
D
V
E
R
S
.
B
U
G
S
R
E
V
T
E
S
T
jQuery
14. © 2013 NIIT Technologies Ltd. 14
BigData
CentOS
OS
Lifecycle Mgmt
Database Cassandra
JBossJ2EE
Middleware
Spring3.x
Cache
Logging
IoC/DI
Schedule
Templating
Jakarta Commons Suite of LibrariesLibraries
Bridge
Core
Services
Log4j
Comm
HazelCast
Spring MVCApplication Framework
jQuery
RIA Frameworks
Web Security
SMART Client
Social
Hadoop and Related Projects
Portal, CMS, Search
Big Data
Apache HTTP Server
HTTP/Web
Server
Infrastructure
BI
Solr
E
C
L
I
P
S
E
A
N
T
/
M
A
V
E
N
H
U
D
S
O
N
S
U
B
V
E
R
S
I
O
N
B
U
G
Z
I
L
L
A
S
O
N
A
R
J
U
N
I
T
I
D
E
B
U
I
L
D
V
E
R
S
.
B
U
G
S
R
E
V
T
E
S
T
D3
Spring Batch
15. © 2013 NIIT Technologies Ltd. 15
Web Services/Integration
CentOS
OS
Lifecycle Mgmt
MySQLDatabase
JBoss
ActiveMQ
Web Services
MOM
J2EE
Integration
Middleware
SpringWS
Spring Integration Mule
Drools ActivitiBRS/BPM
Spring3.x
Cache
Persistence
Logging
IoC/DI
Jakarta Commons Suite of LibrariesLibraries
Core
Services
Log4j
Spring MVCApplication Framework
E
C
L
I
P
S
E
A
N
T
/
M
A
V
E
N
H
U
D
S
O
N
S
U
B
V
E
R
S
I
O
N
B
U
G
Z
I
L
L
A
S
O
N
A
R
S
O
A
P
U
I
J
U
N
I
T
I
D
E
V
E
R
S
.
B
U
G
S
R
E
V
T
E
S
T
16. © 2013 NIIT Technologies Ltd. 16
Integrate with Architecture Methodology
17. © 2013 NIIT Technologies Ltd. 17
Recommendations
Structured Evaluation
Reference Framework
Prescriptive Stacks
Starter Applications
In-House Repositories
Approved Versions
Customized Libraries
Centralized Lifecycle Management Tools
19. © 2013 NIIT Technologies Ltd. 19
Development Scenarios
Code
Internal
Use
IP –
License
Customer’s
Internal Use
IP –
SaaS/ASP
Customer’s
IP
20. © 2013 NIIT Technologies Ltd. 20
Risks
Internal Use
• No Distribution
• Minimal Risk. Obligations need to be complied.
Customer’s
Internal Use
• Distribution Customer
• Minimal to Medium Risk. Obligations need to be complied.
Internal IP –
Hosted/ASP
• No Distribution/Distribution
• IP can get infected
• Loss of IP
IP - License
• Distribution Multiple Customers
• IP can get infected
• Loss of IP
Customer’s IP
• Distribution to Customer Multiple end Customers
• Customer’s IP can get infected
• Loss of Customer’s IP
21. © 2013 NIIT Technologies Ltd. 21
Usage Scenarios
OS Usage
Linked
Code
Fragment/
Snippet
ModifiedUnmodified
22. © 2013 NIIT Technologies Ltd. 22
License Specific Implications
Almost half of projects on GitHub do not have clearly identifiable
license information
23. © 2013 NIIT Technologies Ltd. 23
Recommendations
Open Source Policy
License White List
Reference Framework
Governance Board
Well Documented Procedure & Checklists
Checkpoints and Audits to ensure compliance
24. © 2013 NIIT Technologies Ltd. 24
THANK YOU
Puneet Sachdev, Enterprise Architect
Head - Open Source CoE
@psachdev
puneet.sachdev@niit-tech.com