The State of IT Operations Today
Agile and Iterative software development has been around for some years now. Iterative development involves delivering your functionality in short cycles (increments) and provisioning your software on Test and Production environments in one flow at the same cadence.
Many IT operational environments are struggling with consuming the higher frequency of iterative software deliveries. This is generally recognized as the disconnect between development and IT operational teams, responsible for getting the product safely to production. The process for bringing applications to production is highly resource intensive and potentially unstable due to manual work involved.
The concept of DevOps addresses the need of eliminating the disconnect between software development and operationally managing business applications. DevOps (clipped compound of DEVelopment and OPerationS) is a set of practices that emphasize the collaboration and communication between software developers and IT operations engineers. Special attention should be given to QA (Quality Assurance). Agile Solutions particularly focuses on providing the infrastructure which enables QA to watch over the quality of delivered software.
Agile Solutions - how to DevOps with Docker and OpenShift
Agile-Solutions helps to bridge the gab between Dev and others by bringing SDLC (Software Development Life Cycle) and Operational processes together by enabling and integrating popular Application Lifecycle Management facilities like Jenkins, NEXUS, JIRA and HP ITSM. JEE (Java Enterprise Edition) DevOps toolchain components tightly integrate with OpenShift for managing, load balancing, scheduling and rolling deployments on Docker containers, allowing your applications to run at scale in production.
Agile Solutions embraces IaC (Infrastructure as Code)
Agile Solutions applies the concept of IaC (Infrastructure as Code) to managing your operations environments. Rather than manually making configuration changes or using one-off scripts to make infrastructure changes, operations infrastructure is centrally managed through JSON configuration files. JSON object structures describe and encapsulate infrastructure artifacts like database connections and credentials, MOM (Message Oriented Middleware) configurations and more. Configuration artifacts are managed through a Web GUI, the underlying JSON code is maintained on a GIT repository. This enables our tooling to version, tag and baseline infrastructure JSON code and visualize all your infrastructure changes through GIT hosting programs like BitBucket or GitHub.
Agile Solutions gets the best out of OS together with RedHat OpenShift
Agile-solutions particularly aims at delivering solutions based on Open Source products, JEE development and provisioning JEE business applications onto JEE application server runtime environments. The solution we are providing is based on Java OS technologies and JEE7+ and carries the name of JDO (JEE DevOps). JDO is a Wildfly Swarm selfcontained JEE application built with on top of latest JEE7 features like JAX-RS 2, JSF 2.2, CDI, Concurrency Utilities and API for JSON and more. We use open standards like REST to tie utilities (JIRA, NEXUS, HP ITSM CDMB) together, providing a fluent DevOps toolchain to more effectively and efficiently develop and provision JEE business applications and next generation MicroServices applications on Docker container clusters facilitated by OpenShift Origin.
JDO heavily relies on OpenShift to managing the runtime and lifecycling Docker containers.
- Developers communicate directly with managed containers on OpenShift Pods, which is one or more containers deployed together on one host. JDO applies the Docker Build strategy instead of the S2I (source to Image) strategy, simply to improve the reactiveness to the Developer. S2I requires developers to commit to the GIT repository for (Webhooks) triggering a complete Docker Image build process. JDO Eclipse and Jenkins plugins inject JEE deployables and application configuration directly into the already running containers on pods, saving the developer GIT commits and the time needed to complete Docker image build process.
- JDO uses OpenShift's Deployment Configurations to distributing containers to POD's through the OpenShift replication controller. Replication Controller ensures that a specified number of replicas of a pod are running at all times. JDO uses deployment configuration triggers for creating new deployments automatically. The "ImageChange" trigger causes a new deployment to be created each time JDO creates a new version of the backing Docker image. JDO heavily relies on the mechanism of OpenShift Templates for describing and generating OpenShift objects like DeploymentConfig, ImageStream, Pod, ReplicationController, Route and finally Service to establishing the runtime config for all deployed JEE business applications.