Showing posts with label Enterprise Application. Show all posts
Showing posts with label Enterprise Application. Show all posts

Thursday, October 11, 2012

Enterprise Systems - How to distinguish between various environments?

Fact 1: In any enterprise we have at least three environments – development (dev), test (tst), and production (prd). I know in real life we have more like UAT, Stage, Load & Performance, Disaster recovery, etc. You can add few more environments for development and test to keep up the pace with multiple releases running simultaneously. For brevity let’s stick to three.

Fact 2: Developers, testers and support personnel have access to more than one environment at a given point of time. Developers may have read only access to tst and prd. Support people might have full access to prd and tst and read only to dev. Testers might have full access to tst environment and read only to prd. Developers, testers and support personnel access more than one environment at a given point of time.

Fact 3: Most of the enterprise system today have web interface which is accessed by developers and support personnel. Take for example oracle fusion middleware - BPEL PM, ESB, OSB, WebLogic’s various functionality are exposed via web (http and/or https).



Enterprise Manager
http://<>.example.com/em
BPELAdmin
http:// <>. example.com/BPELAdmin
BPELConsole
http:// <>. example.com/BPELConsole
Enterprise Service Bus
http:// <>. example.com/esb
Oracle Webservice Manager
http:// <>. example.com/ccore
Oracle Service Registry
http:// <>. example.com/registry/uddi/web
AIA console
http:// <>. example.com/AIA


Similar interfaces exist for WebSphere, jBoss and many more enterprise class systems.

Now consider a scenario. One bug is reported by testers. To understand the bug and reproduce there is a meeting in which developers, testers and support personnel are present. Say on developers’ computer screen, all three environments are open in browser. And to more, multiple tabs are open for same environment. Now consider amount of confusion it can create. On a single computer in a single browser window multiple environments are open and each environment’s different views in multiple tabs of browser! Oh my….

Yes this confusion can be tackled up to some extent using multiple browsers (say a developer can decide that he will open dev in FireFox, tst in Opera, and prd in IE) and multiple desktops. But even there is no visual marker to distinguish one environment from another except address bar.

So, what is the solution? Simple mechanism of changing background color or web page as per environment ( say green for dev, blue for tst, and red for prd) and various shades in case of permissions ( read only permission gives lighter shade while read write permission gives darker shades).

What do you think?

Tuesday, June 1, 2010

Top 11 Bad Performance Causes of Enterprise Scale applications

1. Database related challenges
      a. Too much normalization
      b. Not optimized queries
      c. Excessive emphasis of keeping logic away from database engine
      d. Improper indexing
      e. Faulty installation of database server
2. Unnecessary remoting
      a. Unnessary distribution of component across network
      b. Too much emphasis on services
3. Faulty Deployment
      a. Faulty deployment topology
      b. Incorrect capacity planning
4. Faulty implementation of Concurrency
      a. Long running methods are synchronized
      b. Deadlock conditions are not envisioned
      c. Long running data base transactions
5. Badly performing 3rd party libraries
      a. Performance challenges in libraries
      b. Bugs in libraries
6. Excessive usage of Hardware or software resources
      a. Unnecessary IO operations
      b. Incorrect usage of memory
7. Improper Caching
      a. Not using caching
      b. Not using proper caching platform
      c. Not using features of caching platform
8. Excessive use XML
      a. Obsessive use of XML
9. Incorrect usage of language features
      a. exception as if condition
      b. nested if conditions or for/while loops
      c. faulty UI
     d. IO operations, etc
10. Incorrect configuration of container
    a. Application server
    b. Virtual Machine
11. Excessive logging