This is the first article of the Continuous Integration, Delivery and Deployment series. We'll start out journey with brief explanation of Continuous Delivery. After short exploration of some of the tools used today, we'll move towards the flow (from setting up brand new environment and getting the code from the repository to the creation of fully tested and verified distribution). Each section will present different approaches, compare different tools and, finally, provide some hand-on examples. After the flow, we'll explore changes required in the development life cycle. Finally, we'll dive into last steps required for the transition from Continuous Integration towards Continuous Delivery and Deployment.
Some years ago, the National Science Foundation estimated that our brains produce between 12.000 and 50.000 thoughts per day. According to other studies, this number could be even increased to 70.000. In parallel, other studies determined that between 75% and 80% of our thoughts are negative. Assuming these as valid numbers, this means we have between 2000 and 10000 thoughts that are neutral or positive in a day.
Documentation needs to be comprehensive, always up-to-date and accessible. By comprehensive I mean that it must cover all important areas of the code as well as all functions of the application. While importance of documentation is obvious to most, many struggle without success to have it accurate and up-to-date. Response to "poor" documentation is often assignment of more resources and more time. More often than not, documentation is created for wrong reasons.
In the previous article we developed the back-end solution for our books application. This article will continue where we stopped.
We'll develop a front-end solution that can be used with any back-end (Web, mobiles...). You can build on top of the back-end from the previous article (Java, Jersey, Grizzly...) or on top of any other as long as supported services are the same.
The goal of the application is to be able to administer books. In particular, we'll develop the front-end solution for that application that should be able to:
- Add new book
- Update existing book
- Delete an existing book
- List all books
- Display details of the selected book