Enterprise solutions dominate the IT of companies. No matter whether systems for accounting, travel management, or customer relationship management - enterprise applications rule everywhere. Unfortunately, the user experience of these systems heavily depends on operational qualities such as robustness and usability.
In particular, performance is one of the most critical attributes. Even though often not mentioned explicitly, properties such as response time or throughput are key issues that decide about user acceptance. That is the reason why Leonid Grinshpan has dedicated a whole book "Solving Enterprise Applications Performance Puzzles" to this topic.
The book author Leonid Grinshpan is Consulting Director at Oracle Corporation. He has a master degree in computer engineering and a Ph.D in queuing models of computer systems. His first book has been “Mathematical methods for queuing network models of computer systems" (ISBN 5-343-00379-6). Leonid was a reviewer of t´he computer science section of Mathematical Reviews published by American Mathematical Society (1980 – 1991).
What is the book all about? As we all have learned, premature optimization is the root of all evil. But so is the unsystematic, ad-hoc optimization of performance problems of existing systems. Of course, queuing theory represents an appropriate approach for dealing with performance challenges. But isn't this the complex and boring stuff only mathematicians really understand and enjoy? In his book, Leonid Grinshpan illustrates that queuing models can be applied in a practical and entertaining way to solve performance puzzles. Puzzles that may originate from a broad spectrum of different roots such as CPU bottlenecks or software issues, to name a few.
In its nine chapters the book covers the following areas:
- Queuing Networks as Application Models
- Building and Solving Application Models
- Workload Characterization and Transaction Profiling
- Servers, CPUs, and other Building Blocks of Application Scalability
- Operating System Overhead
- Software Bottlenecks
- Performance and Capacity of Virtual Systems
- Model-Based Application Sizing: Say Good-Bye to Guessing
- Modeling Different Application Configurations
At the end of each chapter the author summarizes the take-aways of the chapter so that readers can easily remember and look up what they have learned. For the whole book, Leonid Grinshpan promises readers to
- better understand the root causes of performance hottlenecks,
- learn the three components to address: hardware, software, workload,
- know how to characterize an application workload,
- identify hardware, software, memory bottlenecks quickly,
- understand the scientific method of application sizing,
- know a methodology of realistic estimates of virtual platforms capacity, and
- understand the impacts of performance by various technology solutions.
InfoQ had the opportunity to interview Leonid, the author of the book:
InfoQ: Dear Leonid, it is written in your book, but for all those who haven't it available so far: May you briefly explain the content your book comprises, its concept, and what target audience it addresses?
LG: The book establishes a model-based methodological foundation for enterprise applications tuning and sizing on all stages of their life cycle within corporation. Introduced modeling concepts and methodology “visualize” and explain processes inside application, as well as provenance of system bottlenecks. Models help to frame a quest for performance puzzle solutions as a scientific project that eliminates guesswork and guesstimates. The book contains models of different enterprise applications architectures and phenomenon; analysis of the models discovers not obvious connections and correlations among workload, hardware architecture, and software parameters.
The book targets multifaceted teams of specialists working in concert on development, sizing, deployment, tuning and maintaining enterprise applications. Software developers, system architects, performance analysts, product managers can benefit by making book’s methodology a part of their toolbox. The students majoring in computer science will find numerous examples of queuing models of enterprise applications as well as an introduction into model solving. That paves the way into limitless world of application modeling with plenty of opportunities to discover the root causes of performance drawbacks and how to avoid them while developing and deploying enterprise applications.
InfoQ: When and why did you actually come up with the idea for your book?
LG: I’ve been with Oracle Corporation for more than fourteen years working on performance tuning and sizing of enterprise applications for the customers and prospects. I executed hundreds of projects for corporations like Dell, Citibank, Verizon, Clorox, Bank of America, AT&T, Best Buy, Aetna, Starbucks, Pfizer, and the like. Many times I was requested to save failing performance projects in the shortest time and every time the failure’s reason was a lack of understanding of fundamental relationships among application architecture, workload, and software design by application developers and engineers executing system sizing and tuning. That is why a few years ago I decided to write a book that puts a scientific foundation under performance engineering practice based on queuing models of enterprise applications.
InfoQ: Why "performance puzzles"?
LG: A puzzle is a problem that requires orderly logical thinking to be solved. By comparing performance issues to the puzzles I underscore that there are systematic methods of bottlenecks troubleshooting and the book offers the ones based on modeling thinking.
InfoQ: Where did you get the ideas from? Did you assemble your own experiences or also those from your colleagues?
LG: The ideas came from real life. I’m executing every year up to twenty application performance tuning and sizing projects for Oracle customers. I’m doing that from 1998, so I have faced hundreds application deployments and impressive assortment of performance problems. All that time I was very fortunate to work closely with bright colleagues and we permanently discussed challenges and shared findings.
InfoQ: Do you think software engineers do address performance aspects in an appropriate way?
LG: Absolutely positively NO. We need applications to be instrumented - that is to say applications have to generate data on their consumption of system resources, on workload, on transaction processing time, on internal caches hit ratios - the list goes on and on… Folks like me and IT departments are using Windows Performance Monitor, UNIX monitoring utilities, and a variety of commercial management systems to diagnose performance bottlenecks, but none of them can report on application internals.
InfoQ: Why is this the case?
LG: Sorry to say, but software developers live in a bubble - they write code using the latest and greatest technological advances and they have all the reasons to be proud of being on the edge of the digital world. But they do not know how their creatures are deployed and used in the field and what kind of real life requirements they have to meet.
InfoQ: What are the top 3 performance issues you frequently find in enterprise systems and what are appropriate ways to avoid them?
LG:
- Each enterprise application deployment has to start from system sizing in order to get an estimate of needed hardware capacity. That will help to evade end-of-project crises when performance evaluation of ready to go live production system ends up by a recommendation to deploy additional servers to support business demand with acceptable quality. That is hundreds of thousand dollars proposition and it is put on a table when a budget is exhausted and project time has ran out…
- Application’s software cannot take advantage of multi-CPU, multi-core, and hyper threading technologies. Performance implications are striking: transaction response time deteriorates under load from concurrent users while there is plenty of available hardware capacity. That causes scalability dead-end: there is no way to scale system by adding hardware. Software developers must be inventive and devise and implement parallelizable algorithms.
- Companies have to do extensive analysis and testing before deploying new or transferring existing enterprise applications to virtual environments (including clouds). Virtual quarters might be too tight for big apps, but monitoring tools often are confused in virtual environments and report misleading performance metrics. In such cases the only trustful performance indicators are the users complains but they are the last things any IT department wants.
InfoQ: Are you distributing your book within Oracle?
LG: I do disseminate information about the book within Oracle, but not the book itself.
InfoQ: What other books do you consider must-reads for software engineers in the enterprise domain?
LG:
- Daniel A. Menasce, Lawrence W. Dowdy, Virgilio A.F. Almeida: Performance by Design: Computer Capacity Planning By Example, Prentice Hall, 2004. Reviews on Amazon.com: “Outstanding introductory book to a complex topic”; “Factoring performance into the development lifecycle”.
- Martin Fowler: Patterns of Enterprise Application Architecture, Addison-Wesley Professional, 2002. Reviews on Amazon.com: “The right path to creating enterprise applications”, “Best J2EE / .Net Design Pattern Book”, “Excellent reference for Enterprise Application Development”.
- Charlie Hunt, Binu John: Java Performance, Prentice Hall, 2011. Reviews on Amazon.com: “Essential information hard-to-find anywhere else”, “Must-have book for Java developers”.
InfoQ: What would be your top recommendation for an enterprise architect or developer?
LG: If they want to perfect themselves they have to be engaged from time to time in application deployment as well as in its support and maintenance in corporate environment. All architectural, functional, and performance shortcomings are exposed at that stage of application life cycle.
About the Book Author
Leonid Grinshpan is Consulting Director at Oracle Corporation. He has a master degree in computer engineering and a Ph.D in queuing models of computer systems. His first book has been “Mathematical methods for queuing network models of computer systems" (ISBN 5-343-00379-6). Leonid was a reviewer of t´he computer science section of Mathematical Reviews published by American Mathematical Society (1980 – 1991).