Upload
hujak-hrvatska-udruga-java-korisnika-croatian-java-user-association
View
1.308
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Software developers historically obsess over the tools they use, and even the smallest software endeavor must have at least some supporting infrastructure. Amphinicy has been in this business for a while, so we’ve tried our share of infrastructure tools; some we’ve kept, some we’ve abandoned, and some we’ve written ourselves. Due to some of our specific clients, we probably run more infrastructure than most, and we pride ourselves on almost all of it being open source. This talk will explore how we deal with software development from an infrastructure and processes perspective – from our repository and build system, through continuous integration and integration testing to formalized code reviews and ideas we might work on next.
Citation preview
Amphinicy Crown
Jewels
Tin Tvrtković
13.5.2014.
@tintvrtkovic
Motivation and Focus
?
?
?
??
?
?
?
?
class HelloWorldApp {public static void main(String[] args) {
System.out.println("Hello World!"); // Display the string.System.out.println("Hello World!"); // Display the string.}
}
Build Automation Tool
Build Automation Tool
The dark ages:
– IDE based– IDE based
Build Automation Tool
The dark ages:
– IDE based– IDE based
The middle ages:
– Ant and Ivy
The dark ages:
– IDE based
Build Automation Tool
– IDE based
The middle ages:
– Ant and Ivy
Modernity:
– Maven
?
?
??
?
?
?
?
Code Repository
Code Repository
The dark ages:
– network disk based– network disk based
Code Repository
The dark ages:
– network disk based– network disk based
The middle ages:
– CVS, Subversion
Code Repository
The dark ages:
– network disk based– network disk based
The middle ages:
– CVS, Subversion
Modernity:
– git
Code Repository
The dark ages:
– network disk based– network disk based
The middle ages:
– CVS, Subversion
Modernity:
– git Mercurial
??
?
?
?
?
?
Continuous Integration
Continuous Integration
The dark ages:
– nothing
Continuous Integration
The dark ages:
– nothing
The middle ages:
– Luntbuild
Continuous Integration
The dark ages:
– nothing
The middle ages:
– Luntbuild
Modernity:
– Jenkins
?
?
?
?
?
Artifact Repositories
Artifact Repositories
The dark ages:
– nothing
Artifact Repositories
The dark ages:
– nothing
The middle ages:
– Nexus
Artifact Repositories
The dark ages:
– nothing
The middle ages:
– Nexus
Modernity:
– Nexus, Nopar, Bower-cache
Nopar Bower Cache DevPI?
??
?
Static Analysis
Static Analysis
The dark ages:
– manual checks
The middle ages:
– manual checks
Static Analysis
The dark ages:
– manual checks
The middle ages:
– manual checks
Modernity:
– Sonar
?
?
Integration Testing
Integration Testing
The dark ages:
– none / manual
The middle ages:
– none / manual
Integration Testing
The dark ages:
– none / manual
The middle ages:
– none / manual
Modernity:
– Groovy, Ansible
?
Code Review
Code Review
The dark ages:
– informal, senior to junior
The middle ages:
– informal, senior to junior
Code Review
The dark ages:
– informal, senior to junior
The middle ages:
– informal, senior to junior
Modernity:
– Review Board
Code Review
The dark ages:
– informal, senior to junior
The middle ages:
– informal, senior to junior
Modernity:
– Review Board cards
code
review?
Plans for the Future
• Heterogeneous build • Heterogeneous build
system
• Maven to Gradle?
• Code review story
• VM provisioning
Thank you for your attention!
Q&A Session