At Payara Services, we have long been advocates of the benefits of using DevOps practices not only in the development of our products (like Payara Server & Payara Micro), but also in the core of our expert advice to our user base with our blog containing arguments for using DevOps practices, details of DevOps tools and new developments that benefit it.
DevOps is widely recognized as being advantageous for organizations, providing the ability to deliver, test and improve projects efficiently and with increased opportunity for innovation.
Likewise, cloud computing is being acknowledged for providing organizations who move their applications to the cloud with distinct competitive advantages over on-premises solutions. With the advent of concepts like elastic deployments and regional scaling, these can result in lower operating costs, increased agility and reliability, and better performance for most services.
Cloud Computing and DevOps
So then, how does cloud computing impact DevOps? Is it still relevant?
With the major challenges that most development projects face related to the provision of development and test infrastructure, and how they perform application deployments, implementing strategies that overcome these challenges are important. A development project during its life-cycle will require new infrastructure, whether that’s a new container, virtual machine, database or application server, and this will typically involve coordinating with several IT departments to get the infrastructure costed, signed off and capacity-planned before it even gets to being provisioned. In some cases, this provisioning can take days and sometimes weeks to complete. This is where DevOps and cloud computing enter the scene.
Cloud computing has become a practical reality and is being widely adopted in the world of IT infrastructure. By using cloud providers like Amazon Web Services, Google Cloud Platform and Microsoft Azure, you can have a basic production infrastructure up and running in a few minutes. The centralized nature of these cloud computing platforms enables DevOps to display its advantages too: By establishing a continuous integration workflow that ensures the automated provisioning of the infrastructure for development, testing and production in an agile way, upon which deployment can then be automated as well, leading to continuous delivery. What’s more, the infrastructure can be quickly dismantled when you don’t need it and rebuilt when you do! Thanks to the Infrastructure as Code DevOps pattern, the entire infrastructure can be submitted to change management, which facilitates the inspection of all components and allows for easing its maintenance.
The relationship between cloud & DevOps can also be seen in the tight integration DevOps portability concepts like container technologies (Docker), have with cloud platforms. Not only does this integration mean that cloud resources can be created and ported from development environments in an easier way, but they function with similar mechanisms in mind, allowing users to decide when to switch to other cloud technologies that support such portability. Container technologies have also helped standardize how applications, its resources and their dependencies are orchestrated in cloud environments with tools like Kubernetes, which lifts the burden of handling automatic horizontal scaling, rolling updates, self-healing, and many other challenges that would take significant effort in the traditional on-premise environment.
As a result, this will mean a reduction in cost and time used to provision new environments, via multiple cloud infrastructure and automated processes. More efficient than trying to wrestle with various departments to get things done! In most cases the costs of the infrastructure for a development project are not easy to calculate as they are typically created as part of shared infrastructure, covering virtualization, networks and storage. Cloud-based DevOps provides an easy way to track the cost of the development resources used and adjust the spend as required in an automated way.
Payara Platform is Cloud-Native and Container-Friendly
Finally, the Payara Platform products are designed with these challenges in mind. Payara Micro, which is our resident small, simple and serious offering for implementing micro services and cloud-oriented applications has been designed with easy integration points for multiple cloud native technologies (like Docker and Kubernetes), allowing enterprise Java engineers to apply common development patterns and architecture design principles in their projects, knowing full well that they can follow most DevOps practices in conjunction with their Cloud platform of choice with ease.