Tools needed to build a Continuous delivery pipeline. Most tools are generic and can be used regardless of language, some are specific for Java/JVM.
http://2014.itakeunconf.com/
4. Software consumprtion: versions
● Debian 7, Windows 8.1, Android 4.4.2
● Firefox 24, Java 8
● Wikipedia version ? - current
● Facebook version ? - current
● Google version ? - current
5. Continuous Delivery (CD)
is a design practice used in
software development to
automate and improve the
process of software delivery
(Make releases boring)
http://en.wikipedia.org/wiki/File:Worksman_delivery_trike.jpg
Continuous delivery
8. Tools
● distributed version control system
● a build tool (project management tool)
● software artifact repository
● continuous integration server
● many environments - test, staging,
production, etc.
12. Take advantage of the VCS
● use a distributed VCS (git or similar)
● ‘master’ branch only for releases
● ‘develop’ contains the next release
● use feature branches
17. My advice
● use profesional services like Github,
BitBucket or the like as much as posible
● use the integrated code review tools they
provide
● roll your own only with strong SysAdmin
team
23. ● fixed life-cycle - disadvantage
● very Java centric, but
● promotes dependency management
● is a standard for Artifact Repositories
● used for PHP: http://www.php-maven.org/
● used for JS: http://www.webjars.org/
About Maven
25. What are they good for
● store versions of artifacts (libraries,
resources, binaries)
● eases consumption for tools/users
● could be a simple FTP location/ git repos
32. My attempt to achieve CD
● keep everything in version control
● standard deployment infrastructure (Debian stable VM’
s)
● build a single artifact - .deb package - that builds and
starts our app
● rely on Jenkins automated build
● automated integration testing, via Jenkins
● automated acceptance testing, via Jenkins
34. Conclusion
The key test is that a business sponsor could
request that the current development version of
the software can be deployed into production at
a moment's notice - and nobody would bat an
eyelid, let alone panic.
(Martin Fowler)