The increased focus on digital transformation highlights the business advantages of change. But, due to the complexities and challenges faced in the pursuit of innovation, organisations do not always obtain real long-term value.
One of the biggest challenges with digital transformation projects is that systems need to remain functional, secure, and predictable in their operation, whilst developers and operations teams need to be able to evolve the systems rapidly to deliver new functional benefits.
This core tension between reliability and productivity affects many choices—and becomes particularly problematic given today’s pressure for rapid change and improvement. IT teams find themselves continually having to balance short and long-term change in application delivery and development. We can see an example of this tension in the choice between using existing systems and infrastructure to develop new functionality, or redesigning development and delivery capabilities. The long-term aim is to keep adding value with the company-wide application environment, while improving agile development and delivery.
Adopting cloud-native technology
The question of how to navigate change is particularly acute in large organisations as development teams need to move fast and adopt more productive technologies. For many organisations, the solution has been the adoption of a cloud-native development strategy, and particularly the move to containers.
Traditional middleware (the software that connects applications, data, and users) must be substantially reimagined and refactored to optimally support cloud-native applications. Modern middleware needs to leverage microservices, APIs and containers to be significantly more powerful in a cloud-native environment.
At its best, a cloud-native app is a collection of small, independent, and loosely coupled microservices, deployed in Linux containers, and connected through application programming interfaces (APIs). Each service implements a business capability, and is developed by small teams using DevOps practices and frequently adopting continuous integration and continuous deployment (CI/CD). This allows services to be built quickly, deployed automatically, and updated regularly.
Through DevOps methods such as continuous delivery, quality testing can be automated at every step of the process. Continuous testing also enables fast feedback, early, which cuts down on wasted time and effort.
Establishing a modern infrastructure
The “fail-fast” principle has been popularised with cloud-native development. Container infrastructure has made it much easier to scale up and down in failure modes and the Netflix-inspired notion of chaos engineering (involving experimentation on a system in production, to build confidence in its capability for withstanding turbulent and unexpected conditions) is becoming widely adopted.
Containers and container platforms bring the cloud-native computing vision to life. As cloud-native technologies take hold, container platforms, in combination with cloud-native runtimes, provide the most flexible catalyst for innovation. As organisations adopt container technologies, this combination is likely to become the dominant deployment pattern with much of the previous application servers’ orchestration capability being transferred to the container management layer.
Many organisations want to adopt new architectures, Linux containers and modern application development, but their workloads are stuck in traditional environments. These can be costly to maintain, complex to manage, and burdened with technical debt. Bringing traditional workloads into a modern platform is critical to simplifying IT environments.
We’re also now at a point in time when Java is being brought into a cloud-native application development future with Quarkus, a Kubernetes Native Java framework. Quarkus is set to become a leading platform for serverless, cloud and Kubernetes environments, and puts Java in a better position to scale and improve faster in the future. With flexible and easy-to-use APIs, Quarkus enables developers to build cloud-native apps, and best-of-breed frameworks.
Developing the right culture
The path to cloud-native applications requires development and IT operations teams to evolve in many different ways to build and deploy apps faster and more efficiently. Regardless of industry or size, every business needs to consider the wide range of activities, technologies, teams, and processes that form a DevOps culture.
To take advantage of new technology, faster approaches, and tighter collaboration, organisations must truly embrace the principles and cultural values of DevOps. There is still untapped potential in broadening DevOps practices across the application portfolio. The adoption of a DevOps culture relies not just on tools and technologies, but also on the willingness and trust of people to embrace a more integrated and collaborative approach, which encourages teaming, inclusion, feedback and experimentation.
Introducing DevOps processes
DevOps and developer tooling represent the foundation of cloud-native technology. In essence, many of these technologies have evolved from the core need for infrastructure to support developers more efficiently and effectively. Adopting DevOps processes will help you build a cloud-native culture that adapts quickly to customer needs and delivers continuously.
A combination of resilience, manageability, and observability, (from the operations side) and engineering impact (from the developer and engineering side) fosters a number of technologies that have come together under the cloud-native banner. These attributes are what enables cloud-native technology to so successfully address many of the challenges as organisations move along their trajectory of adopting multiple clouds and data centres as their infrastructure footprint.
DevOps practices, application services, middleware, developer tools and management, as well as new cloud-native variants, all comprise and support the IT environment of an organisation. They work together to create the organisation’s application environment. In turn, that application environment supports the functionality.
Cloud-native strategies are helping to ensure global organisations can stay competitive, serving to increase the speed of application development and making applications more flexible for business needs.
We only reap the greatest benefits of new technologies when we simultaneously adapt our culture and processes. That’s why organisations must also encourage their people to rethink and develop their skill sets, as an important part of an effective cloud-native app dev strategy that can provide a significant competitive advantage for many years to come.
Erica Langhi, Senior Solution Architect (EMEA), Red Hat