OpenShift is an application, cloud platform based on the use of Docker and Kubernetes technologies and DevOps tools. Within the platform, applications are wrapped inside Docker containers and the platform offers tools for building, installing and managing these containers.
The primary goal of the entire platform is to accelerate application development by addressing business issues:
- quick deliveries
- reuse of common parts.
OpenShift ecosystem provides a wide range of technologies, ranging from container metrics monitoring, application performances inside the containers, support for various Java and other technologies and software environments.
The picture above shows vividly some of the services that OpenShift platform offers to applications running on that platform:
- single sign-on
- a unique system for collecting, accessing and managing application logs
- CI/CD system for creating and installing the applications
- high availability/load balancing
- service discovery.
OpenShift.io is an online service that offers an Integrated Development Environment (IDE) for applications on the cloud platform. Instead of installing and configuring IDE for each individual developer, the cloud IDE offers simple use to all developers on the platform. For now, it is only available online. But an on-premise version of the cloud platform is expected soon.
CI/CD
Continuous Integration methodology indicates that each release of the code in one of the SCM systems enables deployment of the new version of the application in one of the application environments.
Continuous Delivery methodology ensures that application versions can be deployed in the production environment at any time. The decision to deploy a version of an application to a particular environment is made by a responsible person, whether it is a project manager, a team leader, or someone else.
Continuous Deployment methodology complements Continuous Delivery in a way that each version of the application is deployed in the production environment without any special decision. This methodology is the result of complete automation of the software development process, from version development, continuous quality control and code authentication (automated testing and code verification) to automating the process of deploying a new version of the application, starting from development, integration, testing to the production environment.
Continuous Deployment is a goal to be pursued. It requires great effort, but the benefits of using such methodology are also higher.
Who are we and what connects us to the cloud?
We are CROZ, resistance is futile.
We are an experienced and excellent team that knows the cloud and its challenges in the soul. We use cloud platforms (and we like OpenShift Origin the best) and think about the current and future directions of application development. The OpenShift cloud platform we use on-premise and in private edition, which is installed locally by the user, provides the ability to quickly build application environments, from development, testing to a production environment. It enables an accelerated application development. Everything that developer needs to deliver is the application code, and the platform takes care of everything else, from building a version of the application, running tests, deploying a version of the application in one of the environments, either testing or a production environment.
From other cloud platforms, we also use IBM Cloud (former Bluemix)/IBM Cloud Private, Cloud Foundry, up to CoreOS, Spring Cloud, and Docker technologies.
What do we do?
We use the OpenShift cloud platform for application development, from our internal applications to custom applications for our customers. Here, you can find everything from small, simple applications to track employee data to large, enterprise applications such as Internet banking solutions and the like.
We had to modernize the development and methodologies to be able to offer our customers the best service at a reasonable price. Most projects use automated testing, automated build and deployment (continuous integration and continuous delivery), and some of the projects use the continuous release as well.
How do we use the cloud platform?
Depending on the needs of the project or an application, we use several modalities of the cloud platform, with a greater or lower degree of automation.
Cloud as a production environment
In this modality, we use the cloud platform to consolidate application environments. Instead of a bunch of virtual computers, each with its application, we launch applications on a cloud platform wrapped as Docker containers. All applications are independent, work equally good as inside a separate virtual computer, and reduce the need for computing resources.
This modality uses the smallest degree of automation. The external continuous integration server prepares the application version and starts its deployment on the cloud platform.
Mostly we use it when we need to deliver a version of the application (WAR files, compiled code, etc.) to external users, and we keep the source code of the application. Furthermore, we use it in a case when special steps for building an application version are needed (legacy technologies, and the like).
With the consolidation of application environments, we managed to launch 30-40 applications on only 4 virtual computers (production parts of the cloud platform), while reducing the need for resources several times.
Cloud as a build and a production environment
By using a cloud platform as a build and a production environment, we increase the degree of automation. In this modality, everything that developer needs to do is to deliver the code to the SCM system (Source Code Management, the server of developed code). After deploying the code to the platform, the cloud platform itself builds a version of the application, carries out automated tests, and deploys a built version of the application.
We mostly use this mode with applications using standard technologies such as Apache Maven and the like.
In such case, the most common product is either a source code (which is used in another cloud environment by the customer) or a Docker container that is delivered to the customer.
The full usage of cloud (PaaS) platform
The full usage of the cloud platform means that only the SCM system with application code is beyond the cloud platform itself. Everything is inside the cloud platform, from a build system to several production environments (development, testing, and production).
This mode can also be called one click to production, while the click on the approval button in the application system triggers the automated process of application deployment into the production environment.
When to start using the cloud?
Now, because the era of microservices has come, and we all know that cloud is a conversion of complex architecture in distributed transactions. We know that, right?
The new quality standard in the application development world is a microservice, a micro-service-oriented architecture and all connected to microservices. Microservices imply the use of dozens of smaller, focused services for the development of larger applications, leading to a more complex infrastructure for their launch and maintenance. The cloud platform here is embedded as a tool that simplifies the management of microservices, simplifies the processes of maintaining the environment for their launch and offers their monitoring through a unique interface.
The latest trends in application development mention application modernization and migration, i.e., modernization of applications and their migration from legacy products to modern platforms such as OpenShift.
Why use a cloud platform?
Judging by the research (RedHat data), the use of cloud platform (PaaS) shortens the time needed to prepare application environments from few weeks to few hours. Additionally, given that everything works on a platform that is already ready to work, potential problems during the preparation a new environment are reduced.
The use of cloud platform enables the rapid development of new applications through the so-called self-service portal. Each user has the ability to create a new project (depending on the user’s authority), and a new application can be launched within few minutes.
In the world of microservice architecture, there is a multitude of microservices. Business problems are transformed into distributed, and we need a platform that enables monitoring and management of the multitude of microservices. One of these is a cloud platform.
OpenShift offers an excellent administrative console for management of all aspects of applications running on the platform:
- log monitoring
- performance monitoring
- versioning of resources or configurations with the option of rollback on one of the previous versions
- clustering/load balancing/high availability
- auto scaling.
Where can this be seen?
The use of cloud platform can be seen live on our premises. Location GROUND ZERO, Lastovska 23, Zagreb, HR, Milky Way Galaxy, Multiverse 1.0.1
Joking aside, please contact us, and we can arrange live presentations on your premises, or you can visit us if that suits you best. Given the privacy of some projects, we will not be able to show you every project in the cloud. Nonetheless, there are enough of them to show you to gain insight into the use of the cloud platform and its benefits.
Erste Group Card Processor wears RedHat’s OpenShift hit collection as well!
Earlier this year, we started a very interesting project with company Erste Group Card Processor d.o.o. (EGCP). EGCP’s core business is card processing, issuing of debit, credit and prepaid cards, acceptance of cards at ATMs and POS terminals, and e-commerce. Given that the card industry is facing vast challenges, whether directly or consequently through the banking sector such as PSD2, organization, innovation, and proactivity are must-have characteristics for such organization and in EGCP are well aware of that.
From the idea of mutually building a new architecture and DevOps process steps on the EGCP infrastructure through the Domain Driven Development concept, we have just recently successfully completed the implementation of RedHat OpenShift and Gluster components. The EGCP team personally remained pleasantly surprised by the fact that they are at the forefront of technological innovation compared to the local market. The project was successfully completed a few weeks ago. We talked with Igor Sekelj, Business Development Manager, and the prime coordinator of the whole story who revealed us his impressions of the project.
“We elaborated the whole idea very thoroughly. We had our own suggestions, and we certainly wanted to succeed as much as possible. For this reason, we looked for a partner who had enormous experience in this area and getting things done renown, so the selection was quite clear. CROZ helped us mostly through points related to the correct identification of potential Single Points of Failure (SPOF), testing and selection of appropriate technologies, and provided a different view of the optimal solutions for authentication/authorization of the services.
After establishing an adequate symbiosis in the mutual team, we had a series of workshops in areas such as code repo, image repo, CI, OpenShift setup, resource packing (app servers, databases), deployment, setup of build/unit/mock test/deployment processes.
By setting up an OpenShift platform, we had enough knowledge and confidence to further create services with all the resources, build containers, and deploy them on OpenShift with compliant operating procedures. We are very proud that we, as I hear the first in Croatia, recognized all the innovations and advantages of the OpenShift platform. I believe that our expert’s knowledge of the platform and the DevOps process has provided us with a competitive advantage in the market in times ahead.” – said Igor Sekelj, Business Development Manager at Erste Group Card Processor d.o.o.
Related News