CI/CD

Container-native integration testing

Container-native integration testing

Integration testing is still an important step in a CI/CD pipeline even when you are developing container-native applications. Integration tests tend to be very resource-intensive workloads that run for a limited time.

I wanted to explore how integration testing technologies and tools could leverage a container orchestrator (such as Red Hat OpenShift) to run faster and more-dynamic tests, while at the same time using resources more effectively.

In this post, you will learn how to build behavior-driven development (BDD) integration tests using Cucumber, Protractor, and Selenium and how to run them in OpenShift using Zalenium.

The code for the example of this article can be found on GitHub in redhat-cop/container-pipelinesh.

Continue reading “Container-native integration testing”

Share
July 19th DevNation Live: Container pipeline master: Continuous integration + continuous delivery with Jenkins

July 19th DevNation Live: Container pipeline master: Continuous integration + continuous delivery with Jenkins

Join us for the next online DevNation Live on Thursday, July 19th at 12pm EDT for Container pipeline master: Continuous integration + continuous delivery with Jenkins, presented by Red Hat principal technical product marketing manager for Red Hat OpenShift, Siamak Sadeghianfar.

In this session, we’ll take a detailed look into how you can build a super slick, automated continuous integration and continuous delivery (CI/CD) Jenkins pipeline that delivers your application payloads onto the enterprise Kubernetes platform, Red Hat OpenShift. You see how zero-downtime deployment patterns can be part of your release process when you are using a container platform based on Kubernetes.

Automating your build, test, and deployment processes can improve reliability and reduce the need for rollbacks. However, we’ll show you how rollbacks can be handled too.

Register now and join the live presentation at 12pm EDT, Thursday, July 19th.

Session Agenda:

Continue reading “July 19th DevNation Live: Container pipeline master: Continuous integration + continuous delivery with Jenkins”

Share
Container Testing in OpenShift with Meta Test Family

Container Testing in OpenShift with Meta Test Family

Without proper testing, we should not ship any container. We should guarantee that a given service in a container works properly. Meta Test Family (MTF) was designed for this very purpose.

Containers can be tested as “standalone” containers and as “orchestrated” containers. Let’s look at how to test containers with the Red Hat OpenShift environment. This article describes how to do that and what actions are needed.

MTF is a minimalistic library built on the existing Avocado and behave testing frameworks, assisting developers in quickly enabling test automation and requirements. MTF adds basic support and abstraction for testing various module artifact types: RPM-based, Docker images, and more. For detailed information about the framework and how to use it check out the MTF documentation.

Continue reading “Container Testing in OpenShift with Meta Test Family”

Share
Inside a Red Hat Open Innovation Labs Residency (Part 3)

Inside a Red Hat Open Innovation Labs Residency (Part 3)

This article is the final in a series taking readers on a journey to peek inside life in a Red Hat Open Innovation Labs residency.

This is the top-tier experience for any customer*, exposing them to open collaboration, open technologies, and fast agile application delivery methods.

This experience often escapes organizations attempting digital transformation, so through submersion in an Open Innovation Labs residency, Red Hat shares its experience in managing, developing, and delivering solutions with communities, open technologies, and open collaboration.

Join me as I share experiences from inside a real-life residency, watching Red Hat work intimately with a customer, exposing new ways of working, leveraging open technologies using fast, agile application delivery methods and open collaboration.

In the first part, I shared what’s in a Red Hat Open Innovation Labs residency. Then in part two, I looked at what I encountered as the residency progressed towards delivery. All that’s left now is to share the delivery week, known as Demo Day.

Continue reading “Inside a Red Hat Open Innovation Labs Residency (Part 3)”

Share
Inside a Red Hat Open Innovation Labs Residency (Part 2)

Inside a Red Hat Open Innovation Labs Residency (Part 2)

This series (see Part 1) takes the reader on a journey, taking a peek inside a Red Hat Open Innovation Labs Residency. A top tier experience for any customer*, a residency exposes them to open collaboration, open technologies, and fast agile application delivery methods.

This experience often escapes organizations attempting digital transformation. Through submersion in an Open Innovation Labs residency, Red Hat shares its experience in managing, developing, and delivering solutions. This is about successfully achieving organizational goals using open communities, open technologies, and open collaboration.

Join me as I share experiences from inside a real life residency. Watch how Red Hat engages intimately with a customer by exposing them to new ways of working. It is demonstrated by leveraging open technologies using fast and agile application delivery methods with open collaboration.

Continue reading “Inside a Red Hat Open Innovation Labs Residency (Part 2)”

Share
JUnit 5 support lands in Eclipse Vert.x for testing asynchronous operations

JUnit 5 support lands in Eclipse Vert.x for testing asynchronous operations

JUnit 5 is a rewrite of the famous Java testing framework that brings new interesting features, including:

  • nested tests,
  • the ability to give a human-readable description of tests and test cases,
  • a modular extension mechanism that is more powerful than the JUnit 4 runner mechanism (@RunWith annotation),
  • conditional test execution,
  • parameterized tests, including from sources such as CSV data,
  • the support of Java 8 lambda expressions in the reworked built-in assertions API,
  • support for running tests previously written for JUnit 4.

Testing asynchronous operations is not straightforward

Continue reading “JUnit 5 support lands in Eclipse Vert.x for testing asynchronous operations”

Share
Create a scalable REST API with Falcon and RHSCL

Create a scalable REST API with Falcon and RHSCL

APIs are critical to automation, integration and developing cloud-native applications, and it’s vital they can be scaled to meet the demands of your user-base. In this article, we’ll create a database-backed REST API based on the Python Falcon framework using Red Hat Software Collections (RHSCL), test how it performs, and scale-out in response to a growing user-base.

Continue reading Create a scalable REST API with Falcon and RHSCL

Share
Dynamically Creating Java Keystores in OpenShift

Dynamically Creating Java Keystores in OpenShift

Introduction

With a simple annotation to a service, you can dynamically create certificates in OpenShift.

Certificates created this way are in PEM (base64-encoded certificates) format and cannot be directly consumed by Java applications, which need certificates to be stored in Java KeyStores.

In this post, we are going to show a simple approach to enable Java applications to benefit from certificates dynamically created by OpenShift.

Continue reading “Dynamically Creating Java Keystores in OpenShift”

Share
Building Declarative Pipelines with OpenShift DSL Plugin

Building Declarative Pipelines with OpenShift DSL Plugin

Jenkinsfiles have only become a part of Jenkins since version 2 but they have quickly become the de-facto standard for building continuous delivery pipelines with Jenkins. Jenkinsfile allows defining pipelines as code using a groovy DSL syntax and checking it into source version control which allows you to track, review, audit and manage the lifecycle of changes to the continuous delivery pipelines the same way that you manage the source code of your application.

Although the groovy DSL syntax which is called the “scripted syntax” is the more well-known and established syntax for building Jenkins pipelines and was the default when Jenkins 2 was released. Support for a newer declarative syntax is also added since Jenkins 2.5 in order to offer a simplified way for controlling all aspects of the pipeline. Although the scripted and declarative syntax provides two ways to define your pipeline, they both translate to the same execution blocks in Jenkins and achieve the same result.

Continue reading “Building Declarative Pipelines with OpenShift DSL Plugin”

Share