This is Part 1 of a 2 part series of blogs that will help you bring your applications into OpenShift.
OpenShift 3 allows you to deploy your application to the cloud and the great thing is it doesn’t matter if your cloud is public, private, or even hybrid. Typically, the PaaS platform (OpenShift in this case) will provide a set of predefined runtimes that a developer can use to deploy an application on top of. This developer does not need to worry about the infrastructure, the runtime setup, or the configuration, he/she would just need to focus on their application, and what runtime to use. The PaaS platform will take care of sewing it all together and running it.
However, sometimes not all the runtimes are provided by the PaaS platform, or that the usages of these runtimes are not suitable for every application type, and there is a need for the PaaS provider to facilitate these to their users.
As a PaaS provider you’ll need to provide users with:
- runtimes (a.k.a platforms)
- configured usages of the runtimes for applications
Runtimes
As OpenShift 3 relies on containers, the runtimes will be base images that provide the underlying foundation to deploy an application (provided by the user) on top of. The containers also need to be highly configurable so there is no need to provide a single image for every use case. Instead, a different configuration provided to the image will make the runtime work as desired.
OpenShift 3 provides some base images certified and ready to use out of the box:
OpenShift provides users with the ability to inject/layer/build source code into these images, as they are created for S2I (Source-To-Image) purposes.
OpenShift 3 also provides some base images with database runtimes that can be used or extended:
Configured usages of the runtimes
OpenShift 3 provides a set of predefined runtime use cases, that are user configurable, and allow for the deployment of applications. These predefined runtimes are modeled as OpenShift templates.
OpenShift 3 provides the following templates that a Developer can use to simplify the build and deployment process for an application with an existing Git source repository:
- JavaEE application running on an EAP server
- JavaEE application running on an EAP server and using an ephemeral database (PostgreSQL, MySQL, MongoDB)
- JavaEE application running on an EAP server and using a persistent database (PostgreSQL, MySQL, MongoDB)
- Web application running on a Tomcat Container
- Web application running on a Tomcat Container and using an ephemeral database (PostgreSQL, MySQL, MongoDB)
- Web application running on a Tomcat Container and using a persistent database (PostgreSQL, MySQL, MongoDB)
- ActiveMQ brokers with ephemeral storage
- ActiveMQ brokers with persistent storage
- Ephemeral database (PostgreSQL, MySQL, MongoDB)
- Persistent database (PostgreSQL, MySQL, MongoDB)
- Instant apps for Perl, Python, Ruby, PHP, Node.js
Note: Instant apps are preconfigured example applications including source code that can be forked and altered, providing a quick experience deploying an app in a popular platform.
As you can probably guess, not all possible combinations and capabilities for a runtime or set of runtimes can be provided out of the box, and in many cases, the PaaS provider will have to create more of these for the end user.
What is a template
The official OpenShift 3 documentation states:
A template describes a set of objects that can be parameterized and processed to produce a list of objects for creation by OpenShift. The objects to create can include anything that users have permission to create within a project, for example services, build configurations, and deployment configurations. A template may also define a set of labels to apply to every object defined in the template.
This means that typically in a template we will have:
- A set of resources that will be created as part of "creating/deploying" the template
- A set of values for the parameters defined in the template
- A set of labels to describe the generated resources
A template will be defined in JSON or YAML format, and will be loaded into OpenShift for user instantiation, also known as application creation.
The templates can have global visibility scope (visible for every OpenShift project) or project visibility scope (visible only for a specific project).
Benefits of using templates
A template provides developers with an easy way to create all the necessary OpenShift resources for their application to work. This allows a developer to quickly deploy an application without having to understand all of the internals of the OpenShift 3 platform.
- As a PaaS provider you have better control on what is being created and can make better usage of your resources.
- As a PaaS provider you can define different Service Level Agreements in templates, defining the amount of host resources (cpu, memory) each and every container can consume.
Predefined templates, or deploy your application on OpenShift
Typically, the PaaS provider will provide users with a set of predefined templates that will cover all of the usages or typologies/topologies of applications that can be deployed on OpenShift.
The set of predefined templates will be accessible through the CLI or through the Web console.
When creating your application using one of these templates, the user will typically provide the template with the source for the code of the application and some other configuration items such as the application name, database credentials, etc.
Custom templates, or OpenShiftify your application
Another use case is when you have a typology/topology of an application that does not fit into the provided templates and you want to create a template to model it. This will be the topic for the next article, a walkthrough on how to create a template for your application.
저자 소개
채널별 검색
오토메이션
기술, 팀, 인프라를 위한 IT 자동화 최신 동향
인공지능
고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트
오픈 하이브리드 클라우드
하이브리드 클라우드로 더욱 유연한 미래를 구축하는 방법을 알아보세요
보안
환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보
엣지 컴퓨팅
엣지에서의 운영을 단순화하는 플랫폼 업데이트
인프라
세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보
애플리케이션
복잡한 애플리케이션에 대한 솔루션 더 보기
오리지널 쇼
엔터프라이즈 기술 분야의 제작자와 리더가 전하는 흥미로운 스토리
제품
- Red Hat Enterprise Linux
- Red Hat OpenShift Enterprise
- Red Hat Ansible Automation Platform
- 클라우드 서비스
- 모든 제품 보기
툴
체험, 구매 & 영업
커뮤니케이션
Red Hat 소개
Red Hat은 Linux, 클라우드, 컨테이너, 쿠버네티스 등을 포함한 글로벌 엔터프라이즈 오픈소스 솔루션 공급업체입니다. Red Hat은 코어 데이터센터에서 네트워크 엣지에 이르기까지 다양한 플랫폼과 환경에서 기업의 업무 편의성을 높여 주는 강화된 기능의 솔루션을 제공합니다.