REST Architecture

“A [person] thinks that by mouthing hard words he or she understands hard things.” – Herman Melville 

 

How many times have you met with a team of engineers, architects, or even clients to talk about the designs of a software feature, and a single word used caused mass confusion because everyone had a slightly different definition? (Ugh, why are words so hard?!)

 

I have never found a more challenging concept to talk about than Representational State Transfer (REST). What does REST and being RESTful mean? Are resources the same thing as entities? Where do representations come into the mix? This blog post will answer these questions and describe the RESTful architectural style.

Continue reading “REST Architecture”

User Federation with Red Hat Single Sign On

Many organizations often have existing user data-stores that hold information about users and their credentials. Typically, enterprise applications would have different user bases and the underlying user account management systems might be different for each of the applications.
To handle the complexity associated with multiple user data-stores, each application layer will have to have a suitable authentication module that handles authentication & authorization with the underlying user account management systems. This results in the proliferation of authentication modules for each application and it gets closely tied with application life-cycle.
In this session, you’ll learn how Keycloak/RHSSO provides a unified way to federate different user account systems. More specifically, you’ll see how effectively the user accounts from an external LDAP server and a MySQL database (that holds user accounts) could be federated with the help of Keycloak/RHSSO.

Continue reading “User Federation with Red Hat Single Sign On”

Cloud-native business automation with Kogito

Kogito is a cloud-native business automation framework for building intelligent business applications. It is based on battle-tested runtime components (like Drools, jBPM, OptaPlanner), and it allows the development of process and business rules centric cloud-native applications for orchestrating distributed microservices and container-native applications. It takes advantage of the many benefits of the container-native platforms (like Kubernetes, OpenShift) as it was designed from the ground up for those platforms.

 

Some of the distinguishing characteristics of Kogito are as follows:

 

Continue reading “Cloud-native business automation with Kogito”

How to control Container-Native Applications with Ansible Operator

Container-native applications are becoming more and more complex, consisting of various services and features, each component with its own security constraints and complex network policy rules. This makes it more difficult to perform day two operations once the cloud-native applications are deployed. 

While upgrades, patches, and provisioning can be done using Ansible playbooks or Helm Charts, application lifecycle, storage lifecycle, and other deeper analysis cannot be done and requires application support team intervention. 

Operator Framework initiative introduced Operator-SDK framework several years ago to standardize Kubernetes Operators development and make it easier for the Kubernetes community to create Operators and control container-native applications lifecycle. 

Continue reading “How to control Container-Native Applications with Ansible Operator”

Hands on introduction to OpenShift Serverless

I recently collaborated with fellow Red Hatters to create a whiteboarding video that introduces OpenShift Serverless at a high level. In this article, I build upon that YouTube video and my recent work with Quarkus to create a hands-on deep dive into OpenShift Serverless. This article walks you through using the OpenShift Serverless operator to seamlessly add serverless capabilities to an OpenShift 4.3 cluster and then using the Knative CLI tool to deploy a Quarkus native application as a serverless service onto that same cluster.

OpenShift Serverless

OpenShift Serverless helps developers to deploy and run applications that will scale up or scale to zero on-demand. Applications are packaged as OCI compliant Linux containers that can be run anywhere. Using the Serverless model, an application can simply consume compute resources and automatically scale up or down based on use. As mentioned in the introduction above, the whiteboarding YouTube video embedded below provides a high-level overview of OpenShift Serverless.

Continue reading “Hands on introduction to OpenShift Serverless”

A step-by-step tutorial for continuous integration with Jenkins for a Red Hat Mobile Native iOS application

Part 2: How to Setup Jenkins to build iOS .ipa and run unit tests.

A robust and agile mobile application development environment requires continuous integration and delivery. It also requires an integrated and automated unit testing process that helps bring applications to market successfully. This two-part series details my work done at Red Hat Open Innovation Labs and as a Mobile Technical Account Manager to capture these mobile innovations in a useful, repeatable way. In part one of this two-part series, I broke down the steps to create and unit test a native iOS application using Red Hat’s Mobile Application Platform. In part two, I’ll show how Jenkins can be used to automate continuous integration and unit testing of that Mobile app.

Requirements

  1. Xcode 7.3
  2. Jenkins
  3. Mac OSX El Capitan

// Fix Jenkins user

 

Continue reading “A step-by-step tutorial for continuous integration with Jenkins for a Red Hat Mobile Native iOS application”