In the previous blog posts, we covered the different disciplines that comprise what one might refer to as a Continuous Development Process. We defined Continuous Integration (CI), Continuous Deployment (CD), and Continuous Delivery (CD). We learned about the numerous benefits these approaches provide to organizations that strive to become effective software organizations in today’s digital age. We also explored the various challenges that businesses may face when attempting to integrate CI/CD into their development workflow. In this week’s blog post, the last in this series, I would like to share some best practices and suggestions that can aid you in adopting an effective CI/CD strategy for your eZ projects.

To do that, I caught up with Sébastien Morel, CTO and Head of U.S. Operations at Novactive, and Bertrand Dunogier, Technical Product Manager at eZ Systems, for a quick interview. Together, Sébastien and Bertrand have a combined experience of 25+ years developing projects on eZ Platform. To kick things off I asked each of them about their background and role at their respective companies.  

SM: I joined Novactive in 2003 in Paris when we were a team of about seven people including an additional 2-3 developers. Since this time, Novactive evolved and is now part of group with more than 200 people: Nextedia. I started as a developer and now I am in charge of the U.S entity in San Francisco, CA. At Our SF office we try to focus on innovation. My background has always been a mix of development and sysadmin.

BD: I have been working on various eZ projects for nearly 13 years. In the past I was a lead engineer for eZ Platform. I am based in Lyon, France, and am an expert in eZ Publish and eZ Platform as well as a specialist in eZ clustering.

AG: At eZ we see a lot of benefits in implementing Continuous Integration. How do you practice CI in your various eZ projects?

SM: At Novactive we try to constantly leverage the various tools and the community that both Symfony and eZ supply. We try to take advantage of all the processes! The reason being, that as an agency we have multiple projects, not only “one product”. Which means, we need to manage different versions and tools that we cannot all the time upgrade as we would like. It is very difficult for us to do CI/CD properly because of this diversity and we sometime lack automated tests for the same reason. To me eZ Systems falls into the “one product” project they have people and bots that validate, check and review contributions and that is what we are trying to apply to all our new project since 1 or 2 years.

BD: This question makes me a little reminiscent of the time that we implemented CI in our development workflow. A time when we used to rely heavily on manual testing and assumptions that we had made. This was never assuring because we had no confident way to validate these assumptions at all times. At eZ we integrated a lot of automated testing into our development workflow. We would write tests to test different use case instances. However, this was also greatly a cultural shift in the way our company approached software development. I believe that with this approach we have facilitated an environment that fosters testing of the code on a continuous basis.

AG: What do you think are the benefits of implementing CI/CD for your eZ projects?

SM: The value CI provided us is that it reduced the occurrences of code breaking. The reason is that the more you use CI the cleaner the code and the processes become. This is because it allows for testing to occur daily rather on a weekly or monthly basis. It is clearly a rework killer.

BD: CI/CD is wonderful for many reasons. One of the reasons is that it exponentially improves the quality of our testing and automates the process for us. Once we integrated CI/CD we became more efficient by avoiding mistakes that would have been very costly. CI is great because it can be used as a preventive measure to detect code issues in the development stage and prevent them from reaching our customers. CI/CD is also very convenient and a great investment of time. This also allowed us to make our on-boarding process easier.

AG: What do you recommend for decision makers, so their team can adopt these approaches to their development workflow? What are some best practices for CI/CD that you have had success with?

SM: I believe the most essential thing to do is to set up processes for your project that your team will comply with. These standards should cover: coding style, automated tests(TravisCI or CircleCI), performance testing (Blackfire.io) and still a bit of human review for security and things that cannot be automated. If possible find a service that will take care of your deployments such as eZ Platform Cloud or Platform.sh.

BD: I think a great way to facilitate a proper implementation of a CI/CD practice is to adopt proper tools. A few of the basic testing tools you need to run on are PHPUnit, GitHub, or any other equivalent libraries and tools that are essential to write your tests. We use Travis CI for our continuous integrations. We use it for both our Open Source and Enterprise Edition features. Similar to what Sébastien has said, Platform.sh is a great resource for CD. It massively allows us to facilitate the testing and deployment of features.

AG: How do you think eZ Platform Cloud can improve projects for clients working on various eZ projects?

SM: eZ Platform Cloud is great solution for CD. eZ Platform cloud is great because it takes care of all the cloud hosting infrastructure for you. As an agency, [Novaactive] does not need to worry anymore about setting up servers rather that is all taken care of by one single vendor—both for the application and the hosting infrastructure. eZ Platform Cloud also provides a stellar SLA with guaranteed 99.99% up-time. They also provide 24/7 support and take care of security patches.

Load Comments
loading...