Red Hat
May 13, 2015
by Christina Lin
This post is part of short session I spoke in Japan, strictly my opinion.

The last part of my talk is about continuous delivery. The idea of this is to make enterprise more lean,
and react more responsively from user feedback. We all try to find ways to make our application more agile. The way I see many enterprise are still doing especially in my region is they tend to have a rather "Large" release. Each release contains too many updates and new functions. Due to the facts that enterprise wants to have more stable releases, so they have a tendency of having a fully tested large bundle of application to deploy. The process normally takes weeks, by the time software reaches the end users might be too late, and feedback and response to the application from user has to wait weeks. For developer, it's painful to handle all the different versions, and QAs needs to test a large set of functionalities. If anything goes wrong in production, to rollback to previous version will cost enterprise a fortune, because all the available services now needs to shutdown due to one single problem.


On Red Hat JBoss xPaaS, with a little help from Jenkins it is really easy to achieve continuous delivery. This is how it's done, when developer finished developing their application, they first push
their application to an source control repository, in this case we are using git, then a pre-installed Jenkins server on Red Hat OpenShift (PaaS) will pick up the change, start building the application with maven plugins, and then it will run through a series of automatic test, when there are problems, it'll automatically send a test report to the developer, so the developer gets the instant feedback on their application. When the application pass the automatic tests, Jenkins will automatically spin up a container with the middleware it needs and the newly developed application. There is a Jenkins plugin you can utilized, so it saves you lots of scripting work. Then another set of testing will be done before it reaches the UAT, the same applies to UAT, after it passed the test in testing environment, it'll deploy the application to the newly created UAT containers. This is where the QA comes in, does testing and then signal Jenkins to spin up Production container and ready to provide service in Production.

This new continuous delivery, can shorten the lifecycle so it can adapt and response to user feedback in much quicker way, and react faster to market shift and also aline with most current business strategy. And because each build has less amount of changes and updates, it's much easier to rollback and it'll have less impact to the business.

That's all I have gone through in my talk, in summary, Red Hat JBoss xPaaS provides an unify entry point for DEVOPS, so both DEV and OPS speak the same language and let enterprise standardize the development and operation environment. With continuous development, now enterprise can be more agile and flexible to bring business idea into action much faster. It also improve productivity and most importantly, resolve the conflict between DEV and OPS.
Original Post