Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JavaCro'14 - Amphinicy crown jewels our software development infrastructure – Tin Tvrtković

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.

  • Login to see the comments

  • Be the first to like this

JavaCro'14 - Amphinicy crown jewels our software development infrastructure – Tin Tvrtković

  1. 1. Amphinicy Crown Jewels Tin Tvrtković 13.5.2014.
  2. 2. @tintvrtkovic
  3. 3. Motivation and Focus
  4. 4. ? ? ? ? ? ? ? ? ?
  5. 5. class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); // Display the string.System.out.println("Hello World!"); // Display the string. } }
  6. 6. Build Automation Tool
  7. 7. Build Automation Tool The dark ages: – IDE based– IDE based
  8. 8. Build Automation Tool The dark ages: – IDE based– IDE based The middle ages: – Ant and Ivy
  9. 9. The dark ages: – IDE based Build Automation Tool – IDE based The middle ages: – Ant and Ivy Modernity: – Maven
  10. 10. ? ? ? ? ? ? ? ?
  11. 11. Code Repository
  12. 12. Code Repository The dark ages: – network disk based– network disk based
  13. 13. Code Repository The dark ages: – network disk based– network disk based The middle ages: – CVS, Subversion
  14. 14. Code Repository The dark ages: – network disk based– network disk based The middle ages: – CVS, Subversion Modernity: – git
  15. 15. Code Repository The dark ages: – network disk based– network disk based The middle ages: – CVS, Subversion Modernity: – git Mercurial
  16. 16. ? ? ? ? ? ? ?
  17. 17. Continuous Integration
  18. 18. Continuous Integration The dark ages: – nothing
  19. 19. Continuous Integration The dark ages: – nothing The middle ages: – Luntbuild
  20. 20. Continuous Integration The dark ages: – nothing The middle ages: – Luntbuild Modernity: – Jenkins
  21. 21. ? ? ? ? ?
  22. 22. Artifact Repositories
  23. 23. Artifact Repositories The dark ages: – nothing
  24. 24. Artifact Repositories The dark ages: – nothing The middle ages: – Nexus
  25. 25. Artifact Repositories The dark ages: – nothing The middle ages: – Nexus Modernity: – Nexus, Nopar, Bower-cache
  26. 26. Nopar Bower Cache DevPI?
  27. 27. ? ? ?
  28. 28. Static Analysis
  29. 29. Static Analysis The dark ages: – manual checks The middle ages: – manual checks
  30. 30. Static Analysis The dark ages: – manual checks The middle ages: – manual checks Modernity: – Sonar
  31. 31. ? ?
  32. 32. Integration Testing
  33. 33. Integration Testing The dark ages: – none / manual The middle ages: – none / manual
  34. 34. Integration Testing The dark ages: – none / manual The middle ages: – none / manual Modernity: – Groovy, Ansible
  35. 35. ?
  36. 36. Code Review
  37. 37. Code Review The dark ages: – informal, senior to junior The middle ages: – informal, senior to junior
  38. 38. Code Review The dark ages: – informal, senior to junior The middle ages: – informal, senior to junior Modernity: – Review Board
  39. 39. Code Review The dark ages: – informal, senior to junior The middle ages: – informal, senior to junior Modernity: – Review Board cards
  40. 40. code review?
  41. 41. Plans for the Future • Heterogeneous build• Heterogeneous build system • Maven to Gradle? • Code review story • VM provisioning
  42. 42. Thank you for your attention! Q&A Session

×