This is the last in a three-part series to help you adopt DevOps and Agile in your cloud transformation and application development programs. Click here to read part two.
Automated workflows can automate repetitive tasks and reduce human error. Fewer errors means less risk. It also improves productivity and provides easier communication and collaboration. When it comes to product development, you ideally need to be able to transform a concept into an app that a customer can demo test as fast as possible.
“By doing this, you can get feedback from your customers quickly, while also monitoring user behavior to continually roll out changes and improvements,” explains Stefan Månsby, Senior Director of Product Management and Big Data at Basefarm – an Orange Business Services company.
Speed, however, isn’t the only ingredient. Operational efficiency also has to be strengthened to increase development productivity. That's why it makes sense for administrators and developers to collaborate in DevOps teams that have common workflows to provide a foundation for seamless teamwork.
You don’t want to be in a position to stop processes simply because there isn’t enough server capacity, for example. Similarly, if a project slips, you want to be able to complete the task as quickly as possible without being stranded with expensive, redundant servers. “Flexible solutions are everything in this case,” says Månsby, “enabling you to try something else if your current solution doesn’t work out.”
Automatizing workflows is essential
When it comes to DevOps, automatizing workflow is crucial if you want to develop and deploy quickly while continuously looking to improve quality. Automatizing workflow does this by removing repetitive tasks for humans and cuts down on any dissension if interrelated tasks are not carried out accurately.
Many enterprises, however, are determining the best way to integrate automation. Trying to automate all the tasks at once can lead to conflicts, so it's advisable to run an audit of development and operations environments to see where automation would bring the most benefits first.
The power of OpenShift
When it comes to setting up and handling workflows, OpenShift is specifically designed for the task. OpenShift is an open source container application platform from Red Hat based on top of Docker containers and the Kubernetes container cluster manager for enterprise app development and deployment.
Technologies, such as Docker and Kubernetes, are utilized in OpenShift to create packages containing all the components necessary to run an application in a specific infrastructure. Essentially, it’s a supported distribution for Kubernetes, using Docker containers and DevOps tools for accelerated application development. Red Hat OpenShift supports two workflows for building container images for application, known as "the source" and the "binary" workflows.
OpenShift enables development teams to focus on designing and testing applications, freeing them up from managing and deploying containers. This can dramatically speed up the development process and get products out quicker. Deploying and managing containers at scale is also complex. OpenShift has been designed to provide efficient container orchestration. This again accelerates the DevOps process by streamlining and automating container management.
According to Red Hat, some developers opt for the binary workflow because they feel it saves time, as they perform local builds anyway to run unit tests and perform various tasks. Other developers prefer to go with source workflow, as all the heavy lifting is done by OpenShift.
It’s important for developers to gain an understanding of the OpenShift binary and source workflows to make the right decision of which to use. Nothing prevents developers from using both workflows to achieve different goals.
“Thanks to OpenShift, developers can concentrate on functionality and programming, without thinking about hardware, operating systems and the cloud environment,” explains Månsby.
Importance of automatic verification
One of the key aspects of workflow is automatic verification and whether all the modules that make up an application can work together – even if changes are required.
Today’s software development uses microservices, where applications are built as a collection of smaller services as opposed to one large one. The agility and low cost associated with using microservices allow them to be used on other projects, increasing efficiency and productivity without affecting overall performance. An application can easily consist of hundreds of microservices that communicate through application program interfaces (APIs).
The flipside is that they can create several thousand integration checkpoints, each of which has to be checked, which is hugely labor intensive. OpenShift, however, enables developers to visualize the connections between the different components.
OpenShift can also ensure continued compliance and consistency with different requirements and regulations, providing full preparation for system audits. “With the platform, you can perform the necessary controls and generate the reports you need. The code is packaged and delivered with check numbers in such a way that it is guaranteed to be impossible to hack and change the software,” explains Månsby.
“You can always be 100 percent sure that the correct code is in the production pipeline and that no one has interfered along the way,” adds Månsby.
No one-stop quick fix
Despite its many benefits when it comes to workflows, OpenShift should not be seen as a silver bullet. The platform has a large number of capabilities that are time consuming to explore. This means that many enterprises aren’t optimizing the platform’s use. To this end, Månsby recommends working with a partner to get the very best out of OpenShift. For example, you will need to be prepared to adapt existing workflows to make the development process leaner and shorten time-to-market. This is where DevOps teams will need to be flexible and experiment to find the best route.
Successful DevOps relies on transparency and collaboration between all parties concerned. Containerization and OpenShift make it much easier to test apps across your IT infrastructure without being held up by deployment issues or framework clashes.
At the same time, continuous integration and delivery, which automates the process of building and testing code every time a team member makes changes and releasing new changes to your customers, is vital.
The end result is just want enterprises are demanding. Speedy and flexible delivery of compelling applications and services that run across heterogeneous IT environments.
Jan has been writing about technology for over 22 years for magazines and web sites, including ComputerActive, IQ magazine and Signum. She has been a business correspondent on ComputerWorld in Sydney and covered the channel for Ziff-Davis in New York.