There are several deployment patterns in the stores. One of the deployment pattern options you can have is high availability on your in store servers. Retailers usually do this several ways
1. Two identical servers in the store or 2 fat cash registers (register with extra ram and a bit more CPU)2. One server and a fat cash register3. One server and then fail to the data center.
A lot of big retailers usually do #1 (department stores, big box). Lot of smaller retailers do #2 (specialty). What everyone is trying to do now is go to #3 by using SOA technologies to dynamically move the workloads. #3 also gives you the option to scale up and down using the same platform and/or rapidly expand (you can have server-less stores) your stores. Anyhow I'm getting off the point...
Coming back to point, how do you get high availability for servers in the store? The cheapest and easiest way to achieve this is by using Linux HA and DRDB (if you'd like, you can also use Tivoli System Automation to achieve the same thing) which is usually "free" with any Linux distribution. For more details, look at chapters 4 through 6 in the following Redbook.
Highly Available Architectures & Capacity Planning with WebSphere Remote Server V6http://www.redbooks.ibm.com/abstracts/sg247184.html[Read More]
Pragmatic viewpoints of Open Computing
I had a customer ask me the other day how to use Tivoli for change management / release management. They have a JEE application that is built on top of WebSphere Application Server, WebSphere MQ and DB2 and they need to apply changes periodically. If you break down the configuration items they may potentially deploy, they are:
* JEE EAR file that contains the application* JMS, JDBC, JNDI and other settings in WebSphere Application Server* WebSphere MQ configuration setting* DB2 configuration settings * Application data schema * Application data* WebSphere Application Server fixpacks and other hotfixes* WebSphere MQ fixpacks and other hotfixes* DB2 fixpacks and other hotfixes* Operating system fixpacks and other hotfixes
So what is the software do you need to make this all happen
* Source Control software like Rational Clearcase or CVS* Software Package software like rpmbuild or Nullsoft Scriptable Install System (NSIS, a free windows software package similar to InstallShield) or the Software Package Editor within Tivoli Provisioning Manager* Provisioning software like Tivoli Provisioning Manager
The general process you should follow is:
1. Write your code, scripts, etc etc like you usually do.2. Version control your code, scripts, etc etc3. Version tag your code and scripts. Create an RPM/exe with that same version tag. Document what dependencies the RPM/exe reply on. 4. Install the RPM/exe and dependencies on your test machine5. Test like crazy or use an automated testing tool like Rational Robot6. Load the RPM/exe (dependencies should already be loaded) into the Tivoli Provisioning Manager software catalog7. Pick your software package, the servers you'd like to apply to, when to apply and notification and then go!
Here's the same process with the JEE example
1. Write your JEE code, create your database and load it with data and tune your configuration2. Version control your JEE java code, your database schema in DDL, your database data file that was created via db2look, WebSphere Configuration Archive Resource (CAR) file, WebSphere JACL scripts, WebSphere MQ scripts, DB2 scripts3. Version tag your code (eg. PointOfSales_1.1) and scripts. Create an RPM/exe with that same version tag (eg. PointOfSales_1.1.i386.rpm). Document what dependencies the RPM/exe reply on (eg. PointofSales_MQConfig_1.1, PointofSales_DBConfig_1.1, PointofSales_WASConfig_1.1, PointofSales_DB2Schema_1.1)4. Install the RPM/exe and dependencies on your test machine5. Test like crazy or use an automated testing tool like Rational Robot6. Load the RPM/exe (dependencies should already be loaded) into the Tivoli Provisioning Manager software catalog7. Pick your software package, the servers you'd like to apply to, when to apply and notification and then go!
Advantage:* You don't really need Tivoli per se to test your solution. With a good catalog of RPMs/EXEs and a dependancy/relationship document, you should be able to re-create any build of the solution. In this case, you're just using Tivoli as the distributed delivery mechanism. * Full control of every single Configuration Item (CI). This will prepare for you to go down IT Service Management (ala ITIL)* Lot of this can be automated* Every step can be easily validated. * Easy to audithas* Easy to rollforward or rollback a solution in a given point in time. This is where Tivoli Provisioning Manager is quite handy. It has a installation feature that will automatically download and install any dependencies that the given file needs. This allows a great user experience (the software knows what I need!).
If you need help on how to package software into Tivoli Provisioning Manager for Software, check out the following:
White paper: In-Store Processor Update Strategyhttp://publib.boulder.ibm.com/infocenter/imshelp1/v3r0/index.jsp?topic=/com.ibm.wrs61.doc/updisp.pdf
and how to deploy WAS, DB2 and MQ easily into the stores
White paper: Deploying WebSphere Remote Serverhttp://publib.boulder.ibm.com/infocenter/imshelp1/v3r0/index.jsp?topic=/com.ibm.wrs61.doc/depwrs.pdf[Read More]
I recently got a request from a business partner about how to plan for disaster using IBM technology. As many people know, the short answer is that it depends. What I'll try to do is to build a disaster environment across multiple sites connected by WAN on the "cheap".
Here's the scenario. Retailer just like any other company needs to have disaster recovery (failover), disaster avoidance / disaster resilience (availability across multiple sites) plan. Retailer currently has two sites connected by a WAN with 6 meg connection. Their application is JEE based using on WebSphere Application Server, DB2 Workgroup and WebSphere MQ. They're looking to have an hot-warm (active-standby) configuration to save a bit instead of the usual hot-hot (active-active) configuration.
With this situation, you can have a range of hardware only, software only or blend of hardware and software. Let's list out the options
* Hardware: SAN at each location and doing flash copy between the two locations. * File system: Using something like GPFS and replicating the file system across a WAN.* Middleware: Cluster WebSphere Application Server using WebSphere Application Server Network Deployment. Cluster DB2 Workgroup using DB2 Workgroup High Availability Disaster Recovery (HADR) feature or WebSphere Replication Server or IBM InfoSphere Data Capture (DataMirror).
If you look at the options the most cost effective solution (and bandwidth friendly) is just to replicate just the data between the two sites. So what is the pros/cons of the 3 database replication options.
DB2 Workgroup High Availability Disaster Recovery (HADR) featureHow does it work: Works by moving the transactions logs from one database server onto another and running them again to duplicate the data.Pros: It's free with DB2 Workgroup. Does full database replication only. Cons: You're talking about failover in minutes. Only replicates on exact same systems. One way replication. No network compression and encryption.
WebSphere Replication ServerHow does it work: Multiple ways, it can keep a separate table that "tracks" the changes or move and run transactions logs. Replicates via SQL replication (socket) or Q replication (WebSphere MQ).Pros: Does row replication. Seconds failover and replication. If using queue replication, moves delivery of data replication to WebSphere MQ. Replication can be done on different database vendors. Can do one way, both way and peer to peer replication. Has network compression and encryption features.Cons: If you really want to do it right, you'll have to buy WebSphere MQ.
IBM InfoSphere Data Capture (DataMirror)How does it work: Similar with WebSphere Replication ServerPros: Replication can be database or applications or data warehouse. Built not just for replication but also for transformation of data.Cons: Not optimized for replication per se.
Now that we have looked at all the options, here is my take on the best, cheapest solution. Obviously HADR gives you a lot if you can live with the limitations. In this configuration, I would use HADR between site 1 and site 2 and have people only write to site 1 and read from site 1. I would only have to pay for 1 DB2 Workgroup server licenses (site 1 server 1). Now the problem is (assuming I can live with all the limitations of HADR) is how do I replicate the data from site 2 back to site 1. The sad answer is that it's a manual process. So the next best option (and best IMHO) is a blend of HADR and WebSphere Replication Server. I would have the same HADR configuration with site 1 and site 2 using HADR. I would have write happen at site 1 and read from site 1. I would then have WebSphere Replication Server to sync the data when site 1 comes back online.
I would also note that if I wanted a hot-hot (active-active) configuration across 2 site connected by a WAN, the should would be similar but I would have 2 DB2 Workgroup Server at each site. Site 1 Server 1 is connected via HADR to Site 1 Server 2. Site 2 Server 1 is connected via HADR to Site 2 Server 2. Site 1 and Site 2 are connected by WebSphere Replication Server. Getting this next level of DR would only be an increment of 2 additional servers and 1 more license of DB2 Workgroup.
Just as a summary of using DB2 HADR and WebSphere Replication Server would allow:
* Allows the fastest switchover with transaction-consistent data* Excellent solution for scheduled outage* Allows flexibility of OS level, DB level, application level, data format* Can be easily tested and monitored* Allows for database read or write activity on secondary* Can supplement other HA solutions* Allows for lower cost hardware or platform* Low impact on source applications* Choice of conflict detection options. One-site wins vs time-based
Disadvantages* Asynchronous* Application awareness is required (triggers, generated always columns if p2p)
Here are some article that you might want to check out: An Overview of High Availability and Disaster Recovery for DB2 UDB (circa 2003), Q Replication recovery (circa 2007)
I'd also like to thank fellow IBMers Derek Botti, Peter Inzana, David Tolleson, and Wendy Tam for educating me about all these DR / HA options.[Read More]
Here is a list of what you should know about IBM Support
1. You get complementary 1 year support with purchase of IBM Software. 2. After your 1st year, then you pay for support on an annual basis (usually some percentage of your initial software purchase). With a support subscription, you get no cost access to new releases and enhancements as they roll out. This means that you'll get the latest versions of the software that you have purchased. Fixpacks and other hotfixes do not need an IBM Support contract or IBM Passport Advantage account.3. Having a IBM Support subscription means that you get unlimited voice/email and, where available, electronic access to IBM Software Support Centers worldwide. IBM Support (as far as I know) does not charge per support ticket. That means I would submit as many support tickets as you'd like. You can ask things like how to do X, I have a problem or any question that comes to your mind. 4. Hate the IBM Support website? I do too. Until they fix it (which is the next version), skip the website and use "IBM Support Assistant" at http://www.ibm.com/software/support/isa/. It's an eclipse-based tool that
* Search for an answer to your question or problem in many different locations at the same time * Get speedy access to critical product information * Run free troubleshooting and diagnostic tools on your troublesome application * Shorten the amount of time it takes to resolve your problem with automated data gathering and submission * Organize your troubleshooting efforts and allow one-stop access to all your problem determination needs
5. If you need to know more about IBM Support like IBM Support options, self-assist tools, contacts, getting IBM support, and how to preventing problems, take a look at IBM Support Handbook at http://www14.software.ibm.com/webapp/set2/sas/f/handbook/overview.html
The summary: * http://www.ibm.com/software/support to submit service requests* go to IBM Passport Advantage to download IBM Software that you have purchased.* Use IBM Support Assistant at http://www.ibm.com/software/support/isa/ to help you find answers, and automate the gathering of logs to send to IBM Support. If there is any tool I can recommend in terms of IBM Support, this is it.* The IBM Support Handbook can give you an overview of IBM Support and answer most of your questions about the service. http://www14.software.ibm.com/webapp/set2/sas/f/handbook/overview.html
IBM Software Support - This is the website that you use to submit bug reports, help requests (how to) or need help in general.https://www-925.ibm.com/software/support/esr/esrHome.do
IBM Passport Advantage - When a customer buys IBM software and wants to download it, this is the website that you need go to. Just click on the below link and go through the "customer signin".http://www-306.ibm.com/software/howtobuy/passportadvantage/pao_customers.htm[Read More]
Here's another problem that retailer ask me all the time.
- How well am I doing? What KPIs/processes should I measure ($ to acquire a customer, profit per customer)? How should I measure (per day, per week)?- How well am I doing against my peers in Retail? - What should I do if I want to beat the median and more importantly be the market leaders in a given benchmark (most requested benchmark: revenue per square feet)?
At the end of the day, you need metrics about how your business is doing and the power to make better business decisions lies in the ability to understand and effectively use performance metrics. IBM has a program to help customer. IBM’s Performance Measurement Program helps you identify and isolate metrics to support your client’s strategic business goals. Our program has helped thousands of clients:
1. Establish a baseline * Measure and compare current performance with peer organizations 2. Identify sources of value creation * Identify performance gaps and improvement opportunities * Demonstrate how changing processes can create value 3. Estimate potential value * Determine appropriate performance targets * Estimate the potential value to be realized * Support the preparation of business cases for change 4. Identify best practices * Understand relationships between metrics and business drivers
IBM’s approach to performance management: Open
In May 2004, a group of organizations, including Booz Allen, IBM, Shell Oil and The World Bank worked with APQC (a nonprofit research firm founded in 1977 and IBM’s benchmarking partner) to build a common taxonomy for business processes; link standard measures to those processes; and build a common database that could be used for benchmarking, goal setting, and business cases. This group is called the Open Standards Benchmarking Collaborative (OSBC).
The group agreed to use the Process Classification Framework (developed by APQC in collaboration with other firms), a taxonomy document which defines standard terms for business processes. The Process Classification Framework organizes operating and management processes into 12 enterprise-level categories, including process groups and more than 1,500 processes and associated activities.
Two years after its launch, the OSBC database contains more than 1,800 submissions from a variety of firms, industries, and regions – all of which adhere to the definitions established in the Process Classification Framework.
Why open is important for business performance measurement
Today few business leaders measure business performance the same way, and few outsourcers define services scope the same way. For business performance metrics, there are no universally accepted definitions for things like time to market, inventory turnover, employee output per hour, and countless more. Yet firms rely on these key performance indicators (KPIs) to benchmark their capabilities, to decide where to invest in improvements and set critically important business objectives, and to track progress.
* What good is a benchmark if firms define KPIs differently? Take “time to market.” At what point in the process does a business start and stop the watch on this important metric? Does its competitor set the stopwatch the same way? Absent an agreement on that among companies, they may all be comparing apples to oranges.
* Most firms rely on siloed KPI data sets of firms that employ the same definition they do. Firms pick and choose from proprietary collections (managed by benchmarking firms like Hackett, or by consulting firms) –thereby sacrificing scale for consistency. And when it comes to benchmarking business performance data, scale is everything. With scale, data accuracy greatly improves. So does the ability to segment data by factors that are critical to a particular business strategy.
* In most cases, firms can only measure themselves against a subset of the companies who define metrics the same way they do. In effect, because there is no open standard, none of these smaller proprietary data sets achieve the scale that business leaders should by right demand.
List of sample KPIs / business processes[Read More]
So in Retail, as with any business, it's all about information. A lot of customers ask me about "data trust", "data integrity" and a host of other issues with their data. Let me give you some examples of what people tell me.
- I pull inventory reports so that I know what I have and where is it. Pulling reports from different systems gives me different answers. Which one do I trust?- I get 3 entries of the same customer because some sales representative mistyped his last name and called him "mike" in one system and called him "michael" in another. Is there a way for me to fix these issues?- 100 what? Item A is sold by ounce and by milliliter. How can the system help me understand my data in context?- Customer put in a partial address and it is not the same quality of data needed for our other systems. How can I enrich the data?- In order for me to print out my financial reports, all the data from my stores need to come in. Is there a way for me to speed this process?
IBM has a product called IBM Information Server that helps you solve these issues. Here's a funny movie that talks a little about the product.