This project provides is a Reference Implementation for building a cloud-native OmniChannel Application using a Microservices architecture. The Logical Architecture for this reference implementation is shown in the picture below.
The application is a simple store front shopping application that displays a catalog of antique computing devices, where users can buy and add review comments. It has Web and Mobile interface, both the Mobile App and Web App rely on separate BFF (Backend for Frontend) services to interact with the backend data.
There are several components of this architecture.
This project organized itself like a microservice project, as such each component in the architecture has its own Git Repository and tutorial listed below.
This project contains tutorials for setting up CI/CD pipeline for the scenarios. The tutorial is shown below.
This project contains tutorials for setting up Resiliency such as High Availability, Failover, and Disaster Recovery for the above application.
To run the sample applications you will need to configure your Bluemix enviroment for the API and Microservices runtimes. Additionally you will need to configure your system to run the iOS and Web Application tier as well.
In order to complete the rest of this tutorial, many commands will require the Bluemix CLI toolkit to be installed on your local environment. To install it, follow these instructions
This walkthrough uses the cf
tool.
Clone the base repository:
git clone https://github.com/ibm-cloud-architecture/refarch-cloudnative
Clone the peer repositories:
./clonePeers.sh
We used the Netflix OSS stack to provide some of the Microservices foundation services such as service registry and proxy/load balancer.
Please follow the instruction in refarch-cloudnative-netflix-eureka repository to deploy Eureka to Bluemix.
Please follow the instruction in refarch-cloudnative-netflix-zuul repository to deploy Zuul to Bluemix.
After completing this step, you should have the Catalog and Inventory microservices deployed in Bluemix and interacting with ElasticSearch and MySQL database. You can unit test the microservice as documented in the instruction.
Please follow the instruction in refarch-cloudnative-micro-inventory repository to build and deploy Catalog and Inventory microservices.
After completing this step, you should have Customer microservice deployed in Bluemix and interacting with hosted Cloudant database as user identity store. And you should have Authentication service deployed to be used API Connect OAuth flow.
After completing this step, you should have SocialReview microservice deployed in Bluemix OpenWhisk and interacting with hosted Cloudant database. You should also have Watson tone analyzer provisioned.
Please follow the instruction in refarch-cloudnative-micro-socialreview repository to build/deploy the microservice to Bluemix.
After completing this step, you should have the Order microservice deployed in Bluemix and interacting with MessageHub and MySQL database. You can unit test the microservice as documented in the instruction.
Please follow the instruction in refarch-cloudnative-micro-orders repository to build and deploy Catalog and Inventory microservices.
The IBM API Connect Developer Toolkit provides both the API Designer UI and a CLI that developers can use to develop APIs and LoopBack applications, as welll as the tools to publish them to the IBM API Connect runtime.
Before getting started, you will need to install Node.js version 0.12 or version 4.x, follow the link below for more information details. https://www.ibm.com/support/knowledgecenter/en/SSFS6T/com.ibm.apic.toolkit.doc/tapim_cli_install.html
To install the APIC Connect CLI:
$ npm install -g apiconnect
$ apic --version
That should install the tool and print the version number after the last command.
Once you have all the backend application (Catalog/Inventory/Customer/Order/SocialReview) deployed, it is time to publish the APIs to the IBM Bluemix API connect and Setup developerPortal to consume the API.
Please follow the instruction in refarch-cloudnative-api repository to publish APIs to Bluemix API Connect runtime.
This step will deploy the Node.js application containing both the Web BFF and the front end AngularJS application.
Please follow the instruction in refarch-cloudnative-bluecompute-web repository to setup and validate your Web application.
Time to test the application end-to-end. You can start with running the iOS application to integrate with the APIs as well as monitoring the application using Bluemix Mobile Analytics service.
Please follow the instruction in refarch-cloudnative-bluecompute-mobile repository to setup your iOS application.
You can setup and enable automated CI/CD for most of the BlueCompute components via the Bluemix DevOps open toolchain. For detail, please check the DevOps project .
For guidance on how to manage and monitor the BlueCompute solution, please check the Management and Monitoring project.
Please check this repository on instructions and tools to improve availability and performances of the BlueCompute application.
Please review this page on how we secure the solution end-to-end.