22
Use of Open Source in critical business applications BBS use of Open Source David Elboth Version 1.10 Date: 20.04.10

GoOpen 2010: David Elboth

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: GoOpen 2010: David Elboth

Use of Open Source in critical business

applications

BBS use of Open Source

David Elboth

Version 1.10

Date: 20.04.10

Page 2: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010

s.2s.2

Abstract

Abstract. We have identified BBS use of Open

Source over the last 5 years conducting field

studies with employees and collecting data from

14 large developments projects. This presentation

gives both method and our result. We hope this will

provide insight for the Open Source community in

what is a proven open standard for the company.

Page 3: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.3 Tekst endres i Topp- og Bunntekst 07.05.2010s.3

The BBS lecturer

• Head architect/BIS – IT-løsninger og Drift/BIS (Basis infrastruktur og drift)

E-post: [email protected]

Tlf: +47 22 89 85 06/Mob: +47 920 66 633

• My production

– Published

• 5 books on Open Source/Linux

• 140 articles on Open Source/Linux

• GPL (GNU General Public License) version of the book ”The Linux

book” (www.linuxbok.no)

• Beta site for Red Hat Linux

• Adviser for students (Bachelor/Master degree in Open Source)

• Positions

– Abeo (Acando, Leader of Open Source department)

– CIBER (Ecsoft, Leader of Open Integration department)

Page 4: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.4 Tekst endres i Topp- og Bunntekst 07.05.2010s.4

Agenda

Open Source (internal and external)

Who are using OSS (Open Source

Software)?

Well known OSS?

Our arguments for using OSS

Where do BBS use OSS?

Our use of Open Source

Our Java environment (customer solutions)

Our use of Java

Some of our restrictions

The use of Java libraries and applications

Internal code, external Open Source code

and external closed source code

OSS in our business

Conclusion

Page 5: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.5 Tekst endres i Topp- og Bunntekst 07.05.2010s.5

Who are using open source?

Everyone

Page 6: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.6 Tekst endres i Topp- og Bunntekst 07.05.2010s.6

Who are using open source?

• World's largest organizations:

– Including Google, NASA, Sabre Holdings, MS (Z-lib, Hotmail e-mail

service, *), Sun/Oracle and Cox Communications are realizing

significant cost savings by using open business-critical

enterprise applications source products to power web sites, and

packaged software.

• Well known Norwegian companies using Open Source inn

critical applications:

– BBS, Telenor, EDB, A-pressen (Zett), Oslo University etc.

– Also a well known example is the Norwegian “Forbrukerportalen”

with their website. It is interesting to note that this government

institution also is promoting open source software.

• SSB (Statistics Norway) show that over 50% of all Norwegian

software manufacturers are now using the free OSS

components in their system solutions.

(*) Contributed with Open Source code to the projects PHP and Apache

Page 7: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.7 Tekst endres i Topp- og Bunntekst 07.05.2010s.7

OSS solutions?

All types of

applications

Page 8: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.8 Tekst endres i Topp- og Bunntekst 07.05.2010s.8

Open Source in practice

• Well known user applications

– FireFox, Thunderbird, OpenOffice

• Well known server applications

– TCP/IP (DNS, NTP etc), NFS, SAMBA, Apache

– Tomcat, Jboss

• Development tools

– Gcc, Perl, Java, Eclipse, NetBeans

• Test tools

– JUnit and Fitnesse

• Operating system

– Linux, Open Solaris, BSD, “Symbian” etc

• Products started in Norway

– QT (Trolltech, Nokia)

– Varnish http cache (Linpro)

– Documentation: “Boken om Linux” (http://www.linuxbok.no/node/5)

Page 9: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.9 Tekst endres i Topp- og Bunntekst 07.05.2010s.9

Why BBS is using Open Source?

• Open Source software is an alternative to commercial software,

which has always been popular in some areas of use and is

gaining more and more visibility. For BBS it has shown to

give low cost of ownership and has generally better level

of security and interoperability. It offers a possible solution to

some fundamental problems that have vexed commercial

software like Microsoft Office, IBM WebSphere Application

Server (WAS) and Oracle with their specific license politics.

• BBS has used Open Source in many years. Over the years we

have seen that Open Source software is more stable and

easier to check than closed code. Especially when we have

technically problems its must easier to find error and fix the

error before this creates problems for our customer. This

argument has been more important than saving money on

different software license programs.

Page 10: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.10 Tekst endres i Topp- og Bunntekst 07.05.2010s.10

Our arguments for using Open Source

• Deliver faster and better service for BBS’s customer

– Controlling

• the business code and all the dependencies

– Easier to

• share internally

• improve quality for BBS

– Reduce amount of

• special knowledge needed internally

• documentation needed

• Free from

– the high cost and inflexible software

– vendor lock-in risks of traditional enterprise

software (read: reduce software cost)

• Free to outsource

– Most outsourcing partners use Open Source

– Easier for outsourcing partners to implement Open Source solutions

Page 11: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.11 Tekst endres i Topp- og Bunntekst 07.05.2010s.11

Buying Software and your restrictions

• If you have no access to the source code

– want to add a feature? No.

– want to fix a bug? No.

– want to do a security audit? No.

– want to give copies to other projects (or friends)? You can't, legally.

• You get slow deployment/implementation

• For fixes/improvements, you have to wait for the “upgrade”

• New bugs, more money, runs slower (needs new computer)

• Why do I want the source code? I can't program?

– Sure, you can't. but that dork down the hall in IT/dev can.

• Million typewriters (dev., test, doc.)."Given a large enough beta-tester and

co-developer base, almost every problem will be characterized quickly and

the fix will be obvious to someone." The rule was formulated and named by

Eric S. Raymond in his essay "The Cathedral and the Bazaar".

• Somebody will find that obscure bug or security hole

Page 12: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.12 Tekst endres i Topp- og Bunntekst 07.05.2010s.12

Requirements for success for using Open Source?

One of Open Source’s most touted benefits is its price. Download the

software, install it? And don’t pay a penny?

• The Open Source success in BBS is believed to be a result of:

– Developer with high competence in java

– Developer/sysadmin with high competence Open Source

products

– Developers/sysadmin willing to learn (self learn) new products

– BBS developer has the possibility to allocate 10% of work time to

private Open Source activities

• We are self-reliant with in-house expertise on our basic needs.

• Important to have guidelines for use of Open Source

– Choose products that will live on ….

• Time and Money Code Library

– timeandmoney-v0_5_1.jar (2006)

free beer,

free download, etc

Page 13: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.13 Tekst endres i Topp- og Bunntekst 07.05.2010s.13

Where do BBS use Open Source?

• The use of Open Source has over the years has grown. Today

open source is vital part of the business logic of BBS. In

nearly every division you will find use of Open Source including

development, deployment, test and production.

• Today BBS has a IBM Mainframe and HP Nonstop

environment and a traditional UNIX environment with about 720

servers distributed on 200 Linux, 400 Solaris hosts. BBS

has also a traditional Windows server environment with about

100 Windows servers, but less than 10% of all new business

code is developed on .net architecture.

Page 14: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.14 Tekst endres i Topp- og Bunntekst 07.05.2010s.14

Our use of Open Source utilities I/II

• Technical architecture (web = Linux, application= Linux,

database=Solaris)

Server tools Description Users

Linux

kernel/Solaris +

GNU utilities

Basic server

utilities

Used by all

NTP, DNS, Apache Basic server

utilities

Used by all

Syslog-ng Log Used by operation

NFS Fileserver Production

Used by nearly all projects in the

development phase (“BBS software

factory”). Used by operation developers.

Postfix/smtp Mail server Production

Basically used in the projects B2B, B2C,

fakturaprint, Nordea Brukerstedsportalen

and brukerstedsportalen (DNBNOR).

Lpr Lpr server Production

Basically used in the projects B2B, B2C,

fakturaprint, Nordea Brukerstedsportalen,

brukerstedsportalen and Randsborg.

Page 15: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.15 Tekst endres i Topp- og Bunntekst 07.05.2010s.15

Our use of Open Source utilities II/II

• Well known basic utilities used in many projects are listed in the

table below:

Tools Description Users

Bash, ksh, sh Shell (scripts) Used by all projects in

development phase

Ruby Development

tool

Used by some projects for

deploy.

Vi, emacs, xemacs Editor Used by all projects in

development phase

Sed, awk, cut, perl Text tool Used by some project by

operation developers

Gcc Development

tool

Some projects also need gcc for

recompiling C and C++ utilities

and applications.

Ssh, scp, wget

(and standard

Linux commands)

Batch tools Used by operation developers

Page 16: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.16 Tekst endres i Topp- og Bunntekst 07.05.2010s.16

Our use of Java …

• BBS first java project started around 1999 but Java was first deeply rooted

when the Stay project started. In 2004 BBS started the STAY program which

main objective was to develop applications mainly written in COBOL, running

on mainframe and DB2, to java applications running on PC/Intel Linux with

Oracle as the preferred database.

• Since the first java project in BBS the Java language has undergone many

changes. In addition to the language changes, much more dramatic changes

have been made to the Java class library over the years. Many of the original

JDK 1.0 classes and methods have been deprecated. A consequence of this is

that BBS does not support lower versions of Java than JDK 1.4. A Linux

application server will therefore support different versions of Java from JDK 1.4

to 1.x.

Page 17: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.17 Tekst endres i Topp- og Bunntekst 07.05.2010s.17

Restrictions using Java …

• Negative experience with JAVA EE-application server like IBM WebSphere

Application Server and its ESB implementation (Enterprise Service Bus). JEE

has traditionally been a path to vendor lock-in even though specifications are

free and open.

– This has led us to a server solution based on the open source

servlet container jetty and tomcat.

– No message queue infrastructure will be based JMS and no message queue

infrastructure will be based on SIBus. All message queue should be based on a

revised implementation of meldingspumpe (1).

• Use of Open Source Java libraries

– Small products (less than 10.000 lines) with APL, MIT, BSD

licenses can be used at team’s discretion

– Products using GPL and LGPL must be formally evaluated

(1) Virgin and Vocalink

Page 18: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.18 Tekst endres i Topp- og Bunntekst 07.05.2010s.18

The use of Java libraries and applications

The table lists

important open source

products/libraries in

use for java projects at

BBS.

Library group About Used in

Java standard

library

The java platform All projects

Springframework Enterprise java

platform covers

most of the stack

All projects

Apache-commons Large collection of

utility libraries

covering most

areas

All projects

Hibernate ORM framework Most projects

Jetty Web application

server

Most projects, Nettbank,

Kundeportalen, BW

Tomcat (1) Web application

server

Some projects

c3po Database

Connection

pooling

Most projects

Junit Unit test

framework

All projects

Log4j Logging

framework

Most projects

Jdom XML data Most projects

Fitnesse (1) Functional testing

tool

Many projects

Maven (1) Build tool Most projects

Eclipse (1) Ide Most developers

Hudson (1) Build server Most projects

Subversion (1) Source control Sentralized, most projects

Nexus (1) Artifact repository

manager

Sentralized, most projects

(1) Defined as application

Page 19: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.19 Tekst endres i Topp- og Bunntekst 07.05.2010s.19

Conclusion (I/III)

• Our statistics on our application code (java):

• The external closed code is reduced day by day as we convert our

code from WAS to Jetty.

Internal code (%)

18 %

External open-source

code (%)75 %

External closed

code (%)7 %

Code in use

Page 20: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.20 Tekst endres i Topp- og Bunntekst 07.05.2010s.20

Conclusion (II/III)

• The open-source success in BBS is believed to be a result of our

internal high competence in java Open Source products.

• Continuous investment in this competency is a success factor for

future Open Source strategy.

• A key to our development process is Maven. Manage a project's build

with control of external dependencies

– Reporting and documentation; (project.xml - build ).

– Manages (and downloads) any third party jars.

– Gives freedom when it comes to IDE (Integrated development

environment), test frameworks, build-servers, environment and deployment

strategy.

• We have established a best practice for obtaining and use of Open

Source libraries

Page 21: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.21 Tekst endres i Topp- og Bunntekst 07.05.2010s.21

Conclusion (III/III)

• From our statistical material you will find that most of our

projects are based on:

– Linux on web and applications servers

– The development environment is based on Java (JDK)

– Different GNU tools (development, deployment, test and

production)

– Subversion as version control

– Hudson as build server

– The test environment is based on Junit, Fitnesse and Selenium

– Jetty as web application server

Page 22: GoOpen 2010: David Elboth

Tekst endres i Topp- og Bunntekst 07.05.2010s.22 Tekst endres i Topp- og Bunntekst 07.05.2010s.22

Contribution to this presentation

• The following persons have made a contribution

– Bjørn Nordlund

– Jan Helge Salvesen

– Inge F.S. Johnsen

– Leif John Korshavn

– Stian Grenborgen

– Truls Thirud

• Internal quality control:

– Arild Endresen

– Reier Pytte

– Andreas Sollund

– Roar Kløften

– Stian Blomquist

– Michael Sundt