IBM Platform Resource Scheduler (PRS) adds powerful scheduling and resource optimization capabilities to OpenStack environments. It leverages the experience of IBM in handling large-scale datacenters for high-performance computing, analytics and big data and applies that to new environments. In this blog we give a flavor of how PRS can work together with OpenStack in the context of an online e-commerce store. We will explore how OpenStack with PRS features enabled can optimize the infrastructure while helping to meet an applications service level objective.
On-line retailers are faced with the challenge of rapidly developing applications that deliver personalized shopping experiences across a variety of devices including web, mobile, tablets and in the future connected cars. We examine how such a retailer might develop applications for the delivery of physical or virtual goods. This structure would be typical of any type of retail environment that uses the internet to offer its users access to an online product catalog that they can browse and search, and ultimately make a purchase decision. Leveraging the information of users historic purchase patterns and their contacts gleaned from social networks like Facebook or Twitter, the system can make recommendations about which products they might be interested in. The following provides a high level view of the application architecture. It is meant to be representative and while technologies are called out to provide greater context, this does not represent a specific customer choice.
CDN: An external content delivery network (CDN) is used to service request for product details and acts as a cache.
Web Proxy: The web proxy accepts HTTP requests from browsers or mobile devices and performs URL validations, security checks and does load-balancing of requests across service tier.
Service Tier: The service tier is implemented in Java using servlets running in Apache Tomcat. A variety of services run in a stateless fashion accessing data from the data tier or external services (e.g Facebook or credit card processing) and perform their business logic to deliver a response to the user or update databases. Examples: Purchase, Search, Catalog Recommendation, or Social.
Data Tier: The data tier holds the product catalog data, user information, purchase records, user recommendations, etc. Data will be stored in different types of databases to handle varied access patterns. For example catalog meta data can be in Solr to facilitate full text searching, purchase and billing records in MySQL or Oracle since they require greater transactional integrity, and product catalog details and user history in Hadoop/HBase to facilitate analytics for making product recommendations and analyzing social connections.
Management: To support administration and operations staff, the application will require supporting infrastructure to run tools for application deployment and configuration management (Chef), cosurede and configuration repositories( Git), monitoring(Nagios), and build management (Jenkins)
In order to deliver new releases of the applications in an agile fashion various development, QA, integration and operations teams will require infrastructure to support their own environments. Because of requirements around security, and integration with existing in-house services, the on-line retailer choses to implement an on-premise cloud leveraging OpenStack technology based on IBM’s production-ready SmartCloud Entry or Smart Cloud Orchestrator products.
OpenStack and PRS Setup
IBM SmartCloud Entry and IBM SmartCloud Orchestrator have a variety of features that help integrate and automate various aspects of setting up and configuring VMs, middleware, and applications and integrating them with business processes of the online retailer. They both leverage OpenStack tested and packaged for enterprise consumption. Stay tuned for my next space to explore how PRS works with the OpenStack native Nova scheduler to optimize the environment and more. Till then, connect with me on LinkedIn for quick conversations!
Chief Architect - Infrastructure Software - IBM Platform