It’s human nature to be messy. A house that always stays neat is a house that is not inhabited, a display house, a sample house. When people come in to the house, the house is bound to be messy, how messy it will be depends on the inhabitants of the house, but at some point in time, you will see dirty plates on the sink, clothes lying on the couch, dirty bathroom and food remains on the floor. But all of that indicate life in the house, it’s not a showroom in some furniture shop, it’s a real house, a home to its inhabitants.
So is IT infrastructure. No matter how well you design a system, it will get tangled over time. Tangled with new functionalities that are urgent and need to be added immediately to accommodate new business needs, old functionalities that are altered to fix bugs, new systems that are introduced, programmers who come and go, documentations which are scattered, you name it! Change is a part of life, so it is a part of IT system life cycle. Things get more challenging if the system is a distributed and loosely coupled system like SOA-based system. SOA infrastructure relies a lot on services, now these services can come from internal sources, can also come from external sources (e.g. partners, suppliers, etc.), legacy systems or any other sources where the IT department has little or no authority to influence.
Services that comprise the SOA infrastructure need to be reliable and re-usable, they need to execute properly within the boundaries of their SLAs, they need to be backward compatible when they are changed, they need to be secure, etc. An SOA infrastructure will not function well without the services functioning as expected.
Out of this mess, the question arises, how to build and maintain a reliable and manageable SOA infrastructure? The answer is as simple as keeping your house neat and tidy. No, it’s not shoving the dirt under the rag, that’s quick but dirty solution to an already messed up situation. There’s the human management aspect of it, where experts of the systems (or their knowledge) need to be retained properly to ensure continuity of the system development and maintenance. The other aspect is governance, SOA governance (wikipedia definition). It should be part of every facet of SOA infrastructure life cycle and it should be executed diligently to ensure the SOA infrastructure stays healthy and agile.
Start from the phase of development, services have to be benchmarked for its suitability for re-use, SLAs are established and maintained, audit and logging to the service activities are put in place, proper testing mechanism, including regression testing, etc. Then comes the staging phase where services are validated against SLAs, simulated in production environment and inter-linked with other services. The production stage governance includes tasks like discovering the service topology, managing SLAs, managing security, keeping track of audit and logging, exception detection and handling and managing changes to the services.
A well-governed SOA implementation will deliver all of the promises of an efficient, transparent and agile system that supports agile business requirements. Without proper governance, it will end up as JBOWS (Just a Bunch Of Web Services) architecture. If your IT department loses visibility of its system and doesn’t really know the service network and interactions inside it, it can not maintain the system well, let alone enhances it. It’s like living in a house so messy that you can not find where you put your plates when you are already starving for dinner.
No Comments/Trackbacks/Pingbacks for this post yet...
The intention of this blog is to collect thoughts on the issues, paradigms, process, vendors, solutions, project and any other item related service oriented architecture in South East Asia.
| Sun | Mon | Tue | Wed | Thu | Fri | Sat |
|---|---|---|---|---|---|---|
| << < | > >> | |||||
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |