블로그 구독

Red Hat Information Technology has created a new middleware architecture for our internally-developed applications. Although many of our internal applications take advantage of open source solutions, we have historically used tools such as Tomcat and Perl on a standalone basis and not taken full advantage of our JBoss application stack.

We’ve defined our new middleware architecture based on JBoss technology. This includes an Enterprise Service Bus implementing a Services Oriented Architecture (SOA); Seam, the JBoss integration framework; the JBoss Business Process Modeling suite (JBPM); and Drools, the JBoss rules processing environment.

The entire stack runs on Red Hat Enterprise Linux, taking advantage of the operating system tools for virtualization, provisioning, configuration, and other functionality. The full technical architecture incorporates Cobbler/Koan, JBoss SOA, Xen, LVM, Git, and more.

Architecture Framework

The new middleware architecture is defined as an element within the Zachman framework, in which we consider data, function, network, people, time and motivation mapped against scope, business model, system model, technology model, and detailed presentation. We are excited about the potential of the architecture because it gives us great flexibility while at the same time allowing us to implement projects in alignment with our desired future state. Ultimately, the architecture enables us to reduce complexity while enabling our business users.

Architecture Definition

The internal name for the new architecture is Everest. Among the key underlying elements are the use of the Logical Volume Manager (LVM) to support virtualized guest operating systems and Xen virtualization to assist in the management and deployment of multiple environments.

We use the JBoss Enterprise SOA Platform to provide loose coupling, a messaging infrastructure, process orchestration, protocol translation, adapters, change management, quality of service, quality of protection (encryption and security), and management services. JBoss Seam provides our application framework, unifying and integrating multiple web technologies while reducing complexity for our developers.

Git provide source code management under the new architecture. Git is a flexible, distributed, offline source management tool. It addresses some of the shortcomings of our previous solutions and provides support for parallel development, collaboration and the ability to maintain a consistent deployable branch of the source tree. Git use will result in a smaller, cleaner set of changes to our source code.

Although not strictly part of the run time architecture, Puppet is an important architectural component. Puppet is a configuration management tool that can be used to provide container and system configurations that can be deployed into production without modification. Puppet will also free our Release Engineering team from many manual steps and enable them to move to a review and release mode.

Of course, the entire environment runs on Red Hat Enterprise Linux. We anticipate that some of our developers will use Fedora as an alternative operating system for their development workstations.

Architecture Provisioning

One of the first challenges addressed by the architecture team was the need to provision systems which comply with the new architecture. The deployment implementation supports 20 machine types, ranging from a web-proxy to an ldap service.

The most common types include a host machine, a repo machine, and a JBoss development machine. The host machine type is used to host virtual guests in the Everest environment. It provides a suitable graphical user desktop, automated NFS home directories, a Kerberos login, Xen virtualization, and access to all of the Everest tools.

A repo machine is at the core of Everest. Repo machines are self-contained provisioning, configuration and artifact stores. Repo machines are capable of creating all other machine types, including other repo machines. Features of repo machines include Cobbler for RPM and provisioning, a Puppetmaster for configuration, an Artifactory Maven proxy, Git repos for content under /pub/git, and gitweb running on a known address.

A JBoss development machine is an aggregation of several machine types. (One of the features of the architecture is the ability to consolidate machine types for development and later disaggregate them for the production environment.) Features of the JBoss development machine include the ability to use it on base metal or in a virtual environment; nomachine for remote desktop access; the SUN JDK; an Apache proxy; JBoss Enterprise Application Platform (EAP); JBoss Enterprise Service Bus (ESB); MySQL for JBoss data stores; build tools including Eclipse, Git and Maven; gitweb on a known address; and a Git daemon to serve repos.

Provisioning with Cobbler and Koan

Cobbler is a provisioning and update server that supports deployments via network booting, virtualization, and reinstalls of existing systems. A significant advantage of Cobbler is that it integrates multiple technologies and reduces the need for the user to understand the details of each. The update features of Cobbler integrate yum mirroring and kickstart.

Koan, which is an acronym for “Kickstart over a Network”, is an emerging technology that configures machines from remote Cobbler servers. Koan also enables the use of virtualization and re-installs from a Cobbler server. When launched, it requests install information from the server and creates a virtual guest or replaces the machine it is running on.

We’ve used both these tools as the foundation for deployment of systems complying with the new architecture. In our tests, we can quickly build and deploy a complete development server with no intervention. The provisioning solution significantly reduces both our time to deliver a development solution and to deploy systems in the production environment.

If you’d like to know more about Cobbler and Koan, see the Red Hat Magazine article on Cobbler by Michael DeHaan and the relevant man pages.

Application

We are working with Red Hat engineering, select partners, and the community to share our provisioning vision broadly. Although some elements of the provisioning solution remain as advanced technology and are not guaranteed to become supported elements of Red Hat Enterprise Linux and the JBoss suite, we are confident that the benefits of the solution outweigh that slight risk. We also anticipate that our efforts in IT will facilitate moving the solutions into the mainstream.

More broadly, we are excited regarding the possibilities presented by the new architecture and the capability it gives us to execute our technical strategy. The ability to integrate best of breed applications solutions using a common stack, to project the resulting applications into web environments using common tools, and to take advantage of the scalability and recovery solutions inherent in JBoss will yield substantial benefits.


저자 소개

채널별 검색

automation icon

오토메이션

기술, 팀, 환경을 포괄하는 자동화 플랫폼에 대한 최신 정보

AI icon

인공지능

고객이 어디서나 AI 워크로드를 실행할 수 있도록 지원하는 플랫폼 업데이트

cloud services icon

클라우드 서비스

관리형 클라우드 서비스 포트폴리오에 대해 더 보기

security icon

보안

환경과 기술 전반에 걸쳐 리스크를 감소하는 방법에 대한 최신 정보

edge icon

엣지 컴퓨팅

엣지에서의 운영을 단순화하는 플랫폼 업데이트

Infrastructure icon

인프라

세계적으로 인정받은 기업용 Linux 플랫폼에 대한 최신 정보

application development icon

애플리케이션

복잡한 애플리케이션에 대한 솔루션 더 보기

Original series icon

오리지널 쇼

엔터프라이즈 기술 분야의 제작자와 리더가 전하는 흥미로운 스토리