Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION...

31
Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE

Transcript of Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION...

Page 1: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

Eric Westfall – Indiana University

James Bennett – Indiana University

ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE

Page 2: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

KUALI RICE @ INDIANA UNIVERSITY

• Integrated with 26 enterprise applications

• Hosting 50 eDocLite applications

• Over 400 different KEW Document Types

• 24 x 7 x 365 availability

• Approximately 99.8% uptime in the last year (including maintenance)

Page 3: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

EXPANDING IMPLEMENTATION

2003 2004 2005 2006 2007 2008 2009 20100

1000000

2000000

3000000

4000000

5000000

6000000

7000000

8000000

9000000

10000000

11000000

12000000

13000000

Documents RoutedRequests GeneratedActions Taken

Page 4: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

USAGE

2003 2004 2005 2006 2007 2008 2009 20100

10000

20000

30000

40000

50000

60000

70000

80000

Number of Unique Users

# of Unique Users

Page 5: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

ARCHITECTURE AND INFRASTRUCTURE

• Red Hat Enterprise Linux on VMware

• Load balancer with four clustered Kuali Rice standalone server instances

• Java 6

• Tomcat servlet container

• Shared file system mount for attachments

• Oracle 11g database

Page 6: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

IU KUALI RICE ARCHITECTURE

Page 7: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

MAINTAINED BY

• A team of 3 FTE, who do…

• Production Support

• System Maintenance

• Upgrades

• Integration Projects

• Application and eDocLite Development

Page 8: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

PRODUCTION SUPPORT

• Areas of concern:

• Database resources

• Service bus

• Ingestion

• Clustering/Load Balancing

• Tools we use

Page 9: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

DATABASE RESOURCES

• Recently updated to Oracle 11g

• Clients primarily use embedded

• Concerns:

• Connection pool limit

• Database blocking

• Client proxy accounts

• Export/import job for refreshing test environments

Page 10: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

MANAGING THE SERVICE BUS

• Bad service endpoints

• Clean shutdown of client applications

• Monitoring/maintaining the message queue

Page 11: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

CLUSTERING/LOAD BALANCING

• Horizontally scalable

• Session affinity

• Session replication required for full failover

• Unique endpoints per machine

Page 12: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

TOOLS - DYNATRACE

• Performance monitoring

• Error reporting

• Drill down into requests

• Take memory/thread dumps

Page 13: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

DYNATRACE EXAMPLE

Page 14: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

TOOLS - DATABASE

• Reporting:

• Stuck documents

• Database blocking

• Cleanup

• User options table

• Message queue

Page 15: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

SYSTEM MAINTENANCE

• Rice customization/patches

• Environment configuration

• Load Testing

• Functional testing

• Data migration

Page 16: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

RICE CUSTOMIZATION/PATCHES• Two options:

• Override Spring bean (ex: IU Group Service)

• Override a particular file

• Process

• Copy source

• Make necessary changes

• Build the standard Rice source

• Overlay customized files

• Deploy or distribute changes

Page 17: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

ENVIRONMENT CONFIGURATION

• Java environment managed by a J2EE group

• Build process deploys:

• Application code

• Settings/security files

• Most Java applications share the same build process

• http.url configuration parameter

Page 18: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

LOAD TESTING

• Using Apache JMeter

• Perform standalone and coordinated load tests

• Load testing transactions include

• Document search

• Action list

• Taking mass actions

• Viewing route logs

• Creation and routing of documents

Page 19: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

LOAD TESTING EXAMPLE OUTPUT

Page 20: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

FUNCTIONAL TESTING

• Uses Selenium

• Runs nightly through Bamboo

• Functional test suite includes:

• Most eDocLite applications

• Maintenance documents (group, rule, etc)

• Document search

• Action List/Preferences

Page 21: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

DATA MIGRATION

• Database job to move production data into testing environments

• Use the “export” feature

Dev Test Pre-production Production

Page 22: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

UPGRADING RICEProcess:

1. Bring in new Kuali Rice foundation jars

2. Make changes to the IU version of Rice which includes:

• Updating customizations

• Merging "patched" code

• Produce IU Rice client jars

3. Perform DB updates to test environment

4. Bring up standalone testing environments

5. Work with clients to bring in IU Rice client jars and update code

6. Testing before making the change to production

Page 23: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

INTEGRATION

• Client application configuration

• Keystore Administration

Page 24: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

CONFIGURING CLIENT APPLICATIONS

• Spring files (ex KIM overrides)

• http.url configuration parameter

• Document handler URL

• Namespace (if appropriate)

• Roles/permissions

• Security file deployment

Page 25: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

KEYSTORE ADMINISTRATION

• Keystore needed for KSB security

• Keytool commands

• genkey

• selfcert

• export

• import

• list

Page 26: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

KEYSTORE ADMINISTRATION

Items to consider in a production setting:• Keep certificate expiration dates in mind

• Testing and prod keystores should not be the same

• New applications must:

• Create a certificate

• Include a copy of the KR certificate in their keystore

• Give their certificate to be included in the KR keystore

Page 27: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

EDOCLITE DEVELOPMENT

Process:

1. Request comes in for a new eDocLite

2. Meet to review requirements

3. Develop initial eDocLite

4. Test and make changes until ready for prod

5. Ingest eDocLite into production

Page 28: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

IU EDOCLITE EXAMPLES

Page 29: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

IU EDOCLITE EXAMPLES

Page 30: Eric Westfall – Indiana University James Bennett – Indiana University ADMINISTERING A PRODUCTION KUALI RICE INFRASTRUCTURE.

EDOCLITE MANAGEMENT• Currently have 50 eDocLite apps in production

• Reasons for changes to existing eDocLites

• Annual changes due to nature of form

• Addition of a new field

• Change to drop down contents

• Change to field validation