Cloud-native development is an approach to building and running applications to fully use the advantages of the cloud computing model (i.e., responsive, elastic, and resilient applications). Red Hat empowers organizations to build and run scalable cloud-native applications in modern, dynamic environments such as public, private, and hybrid clouds.
Kubernetes-based container orchestration, DevOps and continuous delivery, microservices and service meshes, and declarative application programming interfaces (APIs) are key building blocks of cloud-native application development. These technologies and techniques deliver loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow businesses to make high-impact application improvements frequently and predictably with minimal effort and risk. Additionally, cloud-native architecture and technologies provide the foundation for newer development models such as serverless computing and Functions-as-a-Service.
A look at cloud-native development
Taking full advantage of the cloud computing model delivers well-recognized business value. As public, private, and hybrid clouds become increasingly prevalent, cloud-native application development is a means to quickly take advantage of the benefits these modern, dynamic environments make possible.
Red Hat believes this requires investing in your processes, infrastructure, and architecture to compete in modern, fast-changing markets. We also believe your application development can take full advantage of these necessary investments through cloud-native application development.
Ideally, a cloud-native app is a collection of small, independent, and loosely coupled microservices, deployed in Linux® containers and connected through APIs or a mesh network for message routing. Each service implements a business capability and is developed by small teams using DevOps workflows like continuous integration and continuous delivery (CI/CD). This allows services to be built quickly, deployed automatically, and updated regularly—no more monolithic development cycles.
There are 3 main aspects covering cloud-native development found within organizations today:
- They are developing with ad hoc local container tooling in some form.
- They are developing with structured remote container tooling.
- They are searching for ways to structure their cloud-native deployment architecture to bring your cloud-native applications to production.
Red Hat customers typically use one of the first 2 choices as their container-based development model in their architecture.
When designing an architecture for cloud-native development, customers are looking to retain their independence and maintain a flexible environment for delivering applications and services across their digital channels.
The cloud-native development architecture blueprint addresses these challenges by breaking down the architecture into common, clear elements.
A look at the cloud-native development architecture blueprint
The cloud-native development architecture blueprint details a generalized, architectural view of how customers have implemented Red Hat solutions to provide the foundations for agile, responsive, resilient, and open cloud-native development environments. It captures multiple successful implementations and reveals the basic outlines for designing and implementing a cloud-native development architecture.
These are some common elements across these customer implementations, with a focus on the cloud-native development case:
- Developer applications and tooling, such as code repository, dependency management, integrated development environment (IDE), code frameworks, and runtimes
- CI/CD system with technology for image management between image registries
- Messaging services, caching, customer integration, and integration data microservices all delivered through cloud-native development
- Decision microservices and process microservices capturing business
- Multiple container platform and load balanced services
- API gateway and proxies
- Security and authentication single sign-on (SSO) services
- Storage services, which can be traditional storage or cached realizations of logical storage definitions
While cloud-native development architectures share these common elements, the actual implementations can be very different, depending on the infrastructure and developer tooling choices.
Starting with the foundational elements, all Red Hat customer implementations have relied on a Kubernetes-based container platform and structured cloud-native development workflows. The container platform provides:
- A consistent environment for developers and operations to manage services, applications, integration points, process integration, and security.
- Delivery of developer code through a CI/CD platform for testing and tagging images for delivery as applications and microservices.
In the development case on remote containers using runtimes, a developer works initially testing and developing on their local machine. Once the developer is satisfied, one of several options are available to start the push of her code to the central CI/CD cluster. This can be one of several methods as depicted (hooks, plugins, or uploads) to start a CI/CD image build.
Once built, the image is tagged as a development image, and it is pushed to the development image registry for deployment to the central development infrastructure cluster.
Testing with CI/CD on the development image eventually passes, and it is tagged as a test image and placed into the test infrastructure cluster for deployment. The process continues outside this diagram to further test on the road to production.
The benefits of a templated cloud-native development architecture
Red Hat’s path to cloud-native applications uses containers as a deployment platform for cloud-native development technologies deployed as microservices. This architecture provides flexibility and insights to how you can set up cloud-native development for your organization. Furthermore, this architecture includes a templated approach to setting up cloud-native application deployments within your cloud-native development workflows. Our customers have experienced:
- Reduced development times and reduced times to deployment for new applications, with one customer reporting that they increased their deployments per month by 1200% for dev-test-quality assurance (QA) environments.
- Reduced development costs, with a customer reporting consolidation of 25 QA environments down to just one, reducing development costs.
- Improved customer experiences by providing faster services and applications, with customers able to use new, competitive services more quickly.
Organizations are distinguishing themselves through their ability to deliver new services and applications to customers in their markets. The agility, speed, and resilience needed for these applications means cloud-native development is the road to success. In the hybrid cloud world, cloud-native development can be streamlined with consistent delivery models and effective deployment workflows to keep organizations agile into their digital futures. Red Hat’s cloud-native development architecture provides a blueprint customers can use to efficiently deliver their application and services in a changing hybrid cloud world.