This Blog is Moving to a new Home!
This is the last post I will do on Blogger. I am moving Enterprise Initiatives to KavisTechnology.com. The material will stay the same but the landing page will be different. If you are a subscriber, you can get the new RSS feed here.
Why is the blog moving?
I started my consulting company this past June and created a new blog on my company's domain. That made my fourth blog that I have to maintain. When I started blogging a couple of years ago I started here on Blogger with the Enterprise Initiatives blog. After a month I discovered the ITToolbox community and started blogging there as well. I was going to move this blog to the Toolbox but Techdispenser started including this blog in their community. Then I was invited to write for CIO.com on their SOA Drilldown blog which I did for three months.
Although not all of my articles go on all three - blogger, ITToolbox, and KavisTechnology - most of them do. I wind up doing a cut and paste exercise everytime I blog. So to save some time I am going to cut it down to two blogs, the ITToolbox (generates a little revenue for me) and my company blog @ KavisTechnology.com.
Blog Editor Ranking
I would like to rank the three different blogging platforms that I have used. For this blog I use Blogger. ITToolbox uses Typepad and KavisTechnology uses WordPress.
#1 - WordPress - WordPress rocks! The administration panel simply blows away any other blog editor that I have used. I just upgraded to 2.7 with ease. There are thousands of plugins and templates available to use. In addition, there is such a huge WordPress following that you can find countless articles and even blogs dedicated to tips and tricks for blogging with WordPress.
#2 - Blogger - Blogger has a very nice editor and integrates easily with many Google owned products like YouTube, Picasaweb, AdSense and others. It has some nice templates but its administration panel is limited compared to WordPress. With Blogger I was able to easily integrate rich media content into blog posts. Blogger plugins are limited to what Google allows. Of course you can always add your own code but most bloggers prefer not to.
#3 - TypePad - My evaluation of Typepad is a little unfair. I believe that ITToolbox limits some of the funcitionality so that they can get hundreds of bloggers to deliver in a consistent format. We are not allowed to choose our own templates and they only offer a few plugins. The editor is way more cumbersome then Wordpress or Blogger which is why I cut and paste my code from WordPress into the other blogs.
I highly recommend WordPress as the blogging editor of choice!
There is so much confusion (and fear) about what the term Cloud Computing means and what it really is. Now that everybody kind of "gets" SOA, the new buzzword that people can't grasp is Cloud Computing. Everyday I see the same questions being asked in LinkedIn like What is the difference between Cloud Computing and SaaS? A simple question like this will get 100 different answers. So this is my attempt to clear the fog on Cloud Computing in a simple non-technical way (sorry for boring those that already know this stuff).
Here is a picture that shows a high level view of different types of cloud computing
This picture is very basic but shows different types of companies leveraging the cloud model. You can also see that some types of computing are a subset of the cloud. Let's talk about the different types and what they represent (forgive me as I reuse some slides from a previous presentation).
First you have the Internet which we are all familiar with. When the Internet first became the buzz, a lot of the same confusion and fears that surround cloud computing today were being discussed back then. How is it secure? Who owns the infrastructure? How do I control it? Early adapters saw the opportunity to reduce costs by moving brick and mortar operations to the Internet and increase revenue by providing services and goods 24x7x365. This following picture shows some major web sites that leveraged the Internet (or should I say Cloud 1.0 to be hip).
Then came Software as a Service which was pioneered by companies like Google and SalesForce.com. With SaaS, instead of buying shrink wrapped software that you must install on your infrastructure, patch, administer, and do all of those other non-value added tasks, you simply "lease" the rights to use the services that are provided. In the case of Google and services like GMail, you get it for free.
Companies like Google, SalesForce.com, and Amazon have built out huge datacenters in multiple locations with an enormous amount of capacity. They cannot afford to have a huge spike of traffic take their sites down and risk losing millions of dollars a day. At some point, these companies realized that they could offer their excess capacity for a fee to other companies to use. These companies would be able to take advantage of world class production environments that are proven to withstand millions of concurrent users. This is what is known as Platform as a Service (PaaS) and Infrastructure as a Service (IaaS). The difference is the platform.
PaaS providers like Google's App Engine and Force.com allow you to build your own applications on top of virtual server instances but restrict you to using their development languages. For Google it is Python, for Microsoft's Azure it is .Net, for Force.com it is Appexchange. One could argue whether Facebook should be classified as PaaS. I put it there because they now provide a full development platform for running applications on Facebook. Checkout this Facebook App by Starbuck's.
Infrastructure as a Service (IaaS) removes this limitation and gives you the ability to create virtual servers and develop in whatever you choose. The most popular IaaS vendor is Amazon who is in my opinion the leader in innovation and maturity in the cloud computing space.
So when people ask me what cloud computing is, I include all of these different models into my definition. "In the Cloud" to me means leveraging infrastructure off-premise. With SaaS solutions, the underlying infrastructure is hidden from you. With PaaS, you manage the amount of virtual server instances you use but you must use the technologies required by the provider. With IaaS, you manage the resources you use and are free to leverage whatever technologies you choose to deploy on.
Here are a few other useful resources that show a fairly complete list of vendors and the niche they fill.
Peter Laird - Visual map of cloud computing
Markus Klem - Cloud Classification diagrams
John Willis - Tools to use in the Cloud
John lists a number of vendors who provide a wide variety of tools to manage, configure, monitor, and scale including open source alternatives.
Check these resources out. I hope this gives you all a clear picture of what Cloud Computing is. The benefits and the risks are blog topics within themselves. I'll save that for another day!
I have been blogging for quite some time about SOA and Event Processing and have recently been getting more experience with Cloud Computing. The last few weeks I did a series of posts on agile SOA:
- Agile SOA: Empower the Business with Business Rules Engines
- Agile SOA: The Flexibility of Business Processes
- Agile SOA: Leveraging Data Services
- Enterprise Mashups: The Icing on your SOA
- Must integrate with multiple customers, suppliers, partners
- Must be configurable
- Data may physically be stored in different locations for different customers
- We don't own or want to own a data center
- We want our customers/partners to be able to extend our services
- We will deliver our software as a service
- Each customer/partner has unique business processes and rules
- We need to deliver our content on many different mediums and devices
Back in September I shared with all of you the presentation I gave about SOA and Organization Change Management. Today I am happy to share the podcast from that discussion that took place at the quarterly SOA Consortium meeting in Orlando. Here are the slides.
And here is the podcast that goes with it.
The panel discussion at the tail end of the presentation is fantastic. There were a lot of great questions and many lessons learned shared from experts like Todd Biske, Brenda Michelson, Fill Bowen from IBM, and others. If you have the time, listen to this podcast. Failure to recognize and counteract the resistance to change is the number one cause of failure for all enterprise initiatives, not just SOA.
If you have been following my blog recently you would have seen my previous posts that discuss the benefits of the various layers of the stack (mashups, data services, business processes). Although many IT folks talk about the benefits of SOA in terms of code reuse, the real benefit is in the ability for IT to adapt their systems at the speed that the business is changing. One of the best ways to accomplish this feat is to put tools in the hands of the business to empower them to dynamically alter the business rules as they change in real time.
In the old days we built systems with rigid rules and users were forced to adopt to the "laws of the system". Today, users are king and they expect systems to adapt to the way they need to use them. In order to satisfy today's tech savvy users we must build dynamic and customizable systems. We also need to make sure that IT does not become a bottle neck and hinder the rate of change that occurs within the business. The answer is simple, abstract the business rules into its own layer within the architecture and empower your users with the appropriate permissions to make the necessary changes in a timely manner.
Let's discuss the following order process example that I used in the post about business processes.
Now what if we had different rules on what a good credit score is? What if those rules were dynamic? Do we want to hard code these rules in the system and accept change requests from the business to every time they change or would we rather abstract them and give the business a tool to change them as needed? I'll vote for the later! Here is the same business process integrated with a business rule engine (BRE).
Here is a simple example of how the business can set up rules to apply different criteria to different customers.
In this example you can see that Gold customers get special treatment and will be allowed to proceed regardless of their credit score. Other tiers have higher standards applied to them. Now let's say that due to the credit crisis the company decides to apply stricter criteria on their customers and raise the minimum at each level by 20 points. The business can simply make these changes from the business rules engine interface which is most likely done from a browser. If the company wanted to add a Platinum user type, they simply add a record to the customer type table and the appropriate rule for Platinum customers in the BRE. Done! No change request, no priority setting, no change control board, no development, no testing, no rollout!
I also used a callout to point to a business rule lookup at the fulfillment process. Let's say that our company is an eCommerce seller for many different wholesalers. We may sell books, music, appliances, clothes, etc. but we are simply the middle man and don't own the inventory. Instead we sell, take a cut, and trigger transactions to the appropriate wholesaler for distribution. Each wholesaler has a unique set of business rules for their fulfillment process. In addition, we may add and remove wholesalers several times during the year. We have a standard business process for dealing with fulfillment but different wholesalers may have different rules due to industry specific or geographic requirements (age limitations, state laws, tax rules, etc.). Once again, an appropriate business person with the proper permissions should be able to make these changes as necessary without having to deal with IT.
Business rules have their place and purpose but they also come with some baggage. Like any other layer within the architecture, business rules need to be administered, maintained, and governed. Business rules need some level of change control, backup/recovery, and auditing like any other artifact. Most BREs either provide that functionality as well or hook up with other tools that manage artifacts (CMDBs, governance tools, etc.). But business rules are only worth the hassle if the business environment is dynamic. If the rules are static in nature, it is probably not worth the effort from an architectural stand point to create an abstract business rules layer complete with the appropriate security, auditing capabilities, etc.
The higher up the stack we go the more opportunities we create for the business to become agile. Business Rules create the ultimate flexibility and agility that most of today's businesses require. Implementing a BRE in your SOA is another great step towards IT becoming an enabler instead of a cost center!
I have spent a lot of time recently questioning the leadership of IT organizations who become a cost center due to a "keeping the lights on" mentality and have asked the question Are we Sleeping at the Wheel?. The other day I stumbled across a great article (thanks to some of my pals from Twitter land) that really hits the nail on the head. This is a must read article that brings to light what I think is the main reason why many IT leaders are missing the boat on emerging technology trends. The article is written by Steve Andriole is called Managing IT: Changing Our Minds (About Everything) and discusses how IT leaders who have been around a while have to let go of solutions of the past and totally change the way they think. Here are a few excerpts...
Here’s the deal. The world has changed – forever. First, hierarchical management structures will weaken as we continue to globally decentralize our business units. We have to change the way we think about control, standardization and the overall governance we bring to technology acquisition, deployment and support.
Here is his thoughts on Open Source which I have been championing for quite some time...
Open source is here to stay. Even the established vendors have “embraced” open standards. They have no choice. Do you?
And what about cloud computing?
We need to change how we think about cloud computing from an incremental shift in technology offerings to a whole new way of acquiring, delivering and supporting digital technology
Here is my favorite...
Debating endlessly about whether or not open software, cloud computing or SaaS have any merit is a waste of time – and most likely a diversionary tactic designed to slow – if not outright kill – the pace of change.
Please take the time to read the entire article. I think the message is an important one. If you are an IT leader who is missing the boat, you need to reevaluate your positions on the emerging technologies and solutions. If you don't you are damning your organization to more years of fire fighting and being a bottleneck to the progress of the business. Don't miss the boat!
An article written by Joe McKendrick called SOA eased the way for recent shotgun financial mergers inspired me to take this discussion one step further. To me, the biggest benefit of SOA done right is agility. I define agility in IT as the ability to adapt to change at the speed of business. Companies that invest in architecture, specifically in SOA, are in a much better position to adapt to mergers and acquisitions, connect to partners and suppliers, take on new business opportunities, and continually drive down the costs of maintenance and support.
I read many blogs and subscribe to numerous group discussions on SOA, EA, and cloud computing. There is so much discussion arguing the semantics, the ROI, and the viability of these technologies/architectures that it sometimes becomes discouraging. At some point we need to hike up our boot straps and invest in our business's future and stop fire fighting. Those companies that invest now (and do it right) will create a competitive advantage over those that do not. Here are just a few of the harsh realities that our businesses are faced with:
- Decreasing margins
- Fierce global competition
- Mergers/ Acquisitions/ Consolidations
- Recession
- Demanding, connected, and empowered consumers
- Increased regulatory constraints
- Dynamic business requirements
- Green initiatives
IT is only a cost center if the IT leadership allows it to be. The role of IT should be to innovate and help the business achieve its goals. IT must invest in strategies and architecture to allow this to happen. It is too easy to say we don't have the time, resources, and money. That's a cop out. As I have said before in my article The keeping the lights on mentality
The key business driver in a "keeping the lights on" shop is minimizing costs (usually over anything else). Which makes me wonder why more shops in this mode do not go down the outsource IT path. If lower cost is so important and large innovative initiatives are typically out of the question, why not radically lower the cost by outsourcing IT? I am not recommending that IT shops do this, instead I recommend that IT shops become good business partners and enablers of business success. But if I was a CEO or CFO and my IT's sole purpose was to be a cost center to keep the lights on, I would try to drastically reduce that cost. After all, keeping the lights on is not a core competency of most businesses. It is a necessary evil. Having hordes of full time staffers and paying for their benefits, stock options, and bonuses just to keep the lights on is not smart business. I know my view here will not be popular with most IT folks. I am not down playing anybody's abilities here. All I am saying is that if we don't need our staffs to be innovative, proactive, and be advocates of our business partners and instead just want to the staff to think short term, there is a much cheaper model out there.
So IT leaders have a choice. They can refuse to invest in SOA and continue to support and maintain an inflexible environment that takes a lot of time and money to change or they can invest in the future by justifying an initiative to provide the business with flexibility, agility, and empowerment. Is it easy to do? Heck no! It requires talented staff and partners and most of all top level support. Ask yourself this question. If your company was to merge with your number one competitor tomorrow, how long do you think it would take to integrate these systems? If your competitor was buying your company and your systems were archaic and hard to integrate with, what do you think the odds are that they would keep you around? That's what I thought! Pay now or pay for it forever.
My favorite sayings
"Before you build a better mouse trap, make sure you have some mice"