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”
Microservices and serverless architectures are being implemented, or are a part of the roadmap, in most modern solution stacks. Given that Java is still the dominant language for business applications, the need for reducing the startup time for Java is becoming more important. Serverless architectures are one such area that needs faster startup times, and applications hosted on container platforms such as Red Hat Openshift can benefit from both fast Java startup time and a smaller Docker image size.
Let’s see how GraalVM can be beneficial for Java-based programs in terms of speed and size improvements. Surely, these gains are not bound to containers or serverless architectures and can be applied to a variety of use cases.
Continue reading “Natively compile Java code for better startup time”
I am happy to announce that DevConf.US registration is now open and the schedule is live. DevConf events are free, but online registration is required. If you are available August 17–19, 2018, we would love for you to come and participate.
Similar to DevConf.CZ, DevConf.us 2018 is the 1st annual, free, Red Hat sponsored technology conference for community project and professional contributors to Free and Open Source technologies (FOSS) at the Boston University in the historic city of Boston, USA.
You should consider attending this DevConf event if you are:
- A developer
- A technology architect
- An IT consultant
- An IT student or a teacher from an IT university/faculty
- Or simply an IT enthusiast interested in the latest trends in open source and emerging digital technologies
Continue reading “Announcing the DevConf.US 2018 developer conference”
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.
Continue reading “July 19th DevNation Live: Container pipeline master: Continuous integration + continuous delivery with Jenkins”
I’m extremely pleased to announce the release of Red Hat Container Development Kit (CDK) 3.5 and Red Hat Developer Studio 12. Whether you are developing traditional or cloud-based applications and microservices, you can run these tools on your Windows, macOS, or Red Hat Enterprise Linux laptop to streamline development:
- Red Hat Container Development Kit provides a pre-built container development environment to help you develop container-based applications quickly using Red Hat OpenShift and Kubernetes.
- Red Hat Developer Studio (previously named JBoss Developer Studio) provides a desktop IDE with superior support for your entire development lifecycle. It includes a broad set of tooling capabilities and support for multiple programming models and frameworks. Developer Studio provides broad support for working with Red Hat products and technologies including middleware, business automation, and integration, notably Camel and Red Hat Fuse. Developer Studio is based on Eclipse 4.8 (Photon).
A number of Red Hat Enterprise Linux (RHEL) development tools have been updated. These include Rust 1.26.1, Go 1.10.2, Cargo 1.26, and Eclipse 4.8 (Photon).
Our goals are to improve usability of our tools for developers, while adding new features that matter most for users of Red Hat platforms and technologies.
Overview of new features:
Continue reading “Announcing updated Red Hat Developer Studio and Container Development Kit”
Attention desktop IDE users: Red Hat Developer Studio 12.0 and the community edition, JBoss Tools 4.6.0 for Eclipse Photon, are now available. You can download a bundled installer, Developer Studio, which installs Eclipse 4.8 with all of the JBoss Tools already configured. Or, if you have an existing Eclipse 4.8 (Photon) installation, you can download the JBoss Tools package. This article highlights some of the new features in both JBoss Tools and Eclipse Photon, covering WildFly, Spring Boot, Camel, Maven, and many Java related improvements including full Java 10 support.
Developer Studio / JBoss Tools provides a desktop IDE with a broad set of tooling covering multiple programming models and frameworks. If you are doing container / cloud development, there is integrated functionality for working with Red Hat OpenShift, Kubernetes, Red Hat Container Development Kit, and Red Hat OpenShift Application Runtimes. For integration projects, there is tooling covering Camel and Red Hat Fuse that can be used in both local and cloud deployments.
Continue reading “Announcing Red Hat Developer Studio 12.0.0.GA and JBoss Tools 4.6.0.Final for Eclipse Photon”
If you aren’t following the OpenShift Blog, you might not be aware of the PodCTL podcast. It’s a free weekly tech podcast covering containers, kubernetes, and OpenShift hosted by Red Hat’s Brian Gracely (@bgracely) and Tyler Britten (@vmtyler). I’m reposting this episode here on the Red Hat Developer Blog because I think their realization is spot on—while early adopters might be deep into Kubernetes, many are just starting and could benefit from some insights.
The Kubernetes community now has 10 releases (2.5 yrs) of software and experience. We just finished KubeCon Copenhagen, OpenShift Commons Gathering, and Red Hat Summit and we heard lots of companies talk about their deployments and journeys. But many of them took a while (12–18) months to get to where they are today. This feels like the “early adopters” and we’re beginning to get to the “crossing the chasm” part of the market. So thought we’d discuss some of the basics, lessons learned, and other things people could use to “fast-track” what they need to be successful with Kubernetes.
The podcast will always be available on the Red Hat OpenShift blog (search: #PodCTL), as well as on RSS Feeds, iTunes, Google Play, Stitcher, TuneIn, and all your favorite podcast players.
Continue reading “A Beginner’s Guide to Kubernetes (PodCTL Podcast #38)”
Have you ever wondered why you are deploying your multi-platform applications using containers? Is it just a matter of “following the hype”? In this article, I’m going to ask some provocative questions to make my case for Why Kubernetes is the new application server.
You might have noticed that the majority of languages are interpreted and use “runtimes” to execute your source code. In theory, most Node.js, Python, and Ruby code can be easily moved from one platform (Windows, Mac, Linux) to another platform. Java applications go even further by having the compiled Java class turned into a bytecode, capable of running anywhere that has a JVM (Java Virtual Machine).
The Java ecosystem provides a standard format to distribute all Java classes that are part of the same application. You can package these classes as a JAR (Java Archive), WAR (Web Archive), and EAR (Enterprise Archive) that contains the front end, back end, and libraries embedded. So I ask you: Why do you use containers to distribute your Java application? Isn’t it already supposed to be easily portable between environments?
Continue reading “Why Kubernetes is The New Application Server”
We are very pleased to announce the general availability of .NET Core 2.1 for Red Hat Enterprise Linux and OpenShift platforms!
.NET Core is the open-source, cross-platform .NET platform for building microservices. .NET Core is designed to provide the best performance at scale for applications that use microservices and containers. Libraries can be shared with other .NET platforms, such as .NET Framework (Windows) and Xamarin (mobile applications). With .NET Core you have the flexibility of building and deploying applications on Red Hat Enterprise Linux or in containers. Your container-based applications and microservices can easily be deployed to your choice of public or private clouds using Red Hat OpenShift. All of the features of OpenShift and Kubernetes for cloud deployments are available to you.
.NET Core 2.1 continues to broaden its support and tools for microservice development in an open source environment. The latest version of .NET Core includes the following improvements:
Continue reading “Announcing .NET Core 2.1 for Red Hat Platforms”
For developers working on a Kubernetes-based application environment such as Red Hat OpenShift, there are a number things that need to be considered to fully take advantage of the significant benefits provided by these technologies, including:
- How do I communicate with the orchestration layer to indicate the application is operating correctly and is available to receive traffic?
- What happens if the application detects a system fault, and how does the application relay this to the orchestration layer?
- How can I accurately trace traffic flow between my applications in order to identify potential bottlenecks?
- What tools can I use to easily deploy my updated application as part of my standard toolchain?
- What happens if I introduce a network fault between my services, and how do I test this scenario?
These questions are central to building container-native solutions. At Red Hat, we define container-native as applications that conform to the following key tenets:
- DevOps automation
- Single concern principle
- Service discovery
- High observability
- Lifecycle conformance
- Runtime confinement
- Process disposability
- Image immutability
This may seem like a lot of overhead on top of the core application logic. Red Hat OpenShift Application Runtimes (RHOAR) and Istio provide developers with tools to adhere to these principles with minimal overhead in terms of coding and implementation.
In this blog post, we’re specifically focusing on how RHOAR and Istio combine to provide tools for DevOps automation, lifecycle conformance, high observability, and runtime confinement.
Continue reading “Building Container-Native Node.js Applications with Red Hat OpenShift Application Runtimes and Istio”