Download presentation
Presentation is loading. Please wait.
Published byNathaniel Cobb Modified over 5 years ago
1
Rapid Deployment Models for uPortal -or- "Fast Times at Portal High"
Tom Freestone Senior Developer Brigham Young University 2011 Jasig Conference April 15, 2019
2
Do More with Less Portals ran on large, beefy, expensive machines
Developed Deployment Anti-patterns
3
1. Deploy “Handraulically”
Involves Install Cookbooks Boring and Repetitive = Errors Requires a Jedi Master to Debug Don’t Get Hit by a Bus Anti-Pattern Not a Good Use of Resources
4
2. But it Worked in Development …
Assume Development Environment is the Same as Production. Assumptions = Killer
5
3. One of these is not like the Others …
Servers have Personalities Manual Configuration / Debugging Changes are not Propagated Unable to Reproduce Errors
6
Virtual Machines Mass produce “Servers” Problem of Sprawl
125% year increase in servers How do you deal with configuration differences between dev, test, stage, prod?
7
Continuous Delivery (Jez Humble, David Farley)
Empower our Portal Teams Reduce Errors Lower Stress Flexibility Everyone can Deploy Quickly
8
1. Automate Everything Possible
Continuous Integration Prove your software works with each commit Benefits Build is Repeatable Early Warning of Problems Wiring and Configuration that Works Effective Teams Use Continuous Integration with Portal and Portlets
9
2. Keep Everything in Version Control
An Application is composed of Binaries, Data and Configuration. Artifact Repositories Maven Yum (rpm)
10
Maven Resource Filtering (Maven Resource Plugin)
1. Enable maven resource plugin <project> ... <name>My Resources Plugin Practice Project</name> ... <build> ... <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> ... </resources> ... </build> ... </project> 2. HelloWorld.txt Hello ${name} 3. Command Line mvn resources:resources Output : Hello My Resources Plugin Practice Project
11
External Resource Filtering (Maven War Plugin)
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <configuration> <webResources> <webResource> <directory>${basedir}/src/main/webapp/WEB-INF</directory> <includes> <include>web.xml</include> </includes> <targetPath>WEB-INF</targetPath> <filtering>true</filtering> </webResource> </webResources> </configuration> </plugin> </plugins> </build>
12
Build Profiles 1. pom.xml <profiles> <profile> <id>development</id> <properties> <greeting>Welcome to Jasig</greeting> <properties> </profile> <profile> <id>production</id> <properties> <greeting>Welcome to Denver</greeting> <properties> </profile> </profiles> 2. helloWorld.text Hello ${greeting} 3. Command Line mvn package -P production -> Hello Welcome to Denver mvn package -P development -> Hello Welcome to Jasig
13
Maven Overlay (Maven War Plugin)
<build> <plugins> <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <warName>someWar</warName> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>edu.someUniversity</groupId> <artifactId>someWar</artifactId> <version>${someWar.version}</version> <type>war</type> <scope>runtime</scope> </dependency> </dependencies> <properties> <someWar.version>3.4.2</someWar.version> </properties>
14
Building an RPM <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>rpm-maven-plugin</artifactId> <version>2.1-alpha-1</version> <extensions>true</extensions> ... <configuration> ... <mappings> <mapping> <directory>/tmp</directory> </mapping> </mappings> ... </configuration> ...</plugin> </plugins> </build> <packaging>rpm</packaging>
15
Examples CAS Portlets uPortal as a rpm
16
Questions?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.