Server virtualization—the ability for a software container to insulate software running in the container from the underlying hardware—has been among the most successful trends of recent years. Better hardware utilization and improved ability to manage software heterogeneity are often mentioned as the main benefits of virtualization.
As virtualization software improves, other benefits of a virtualized deployment environment become apparent, too. In this interview with Artima, Shayne Higdon, marketing vice president of DataSynapse, describes one close to developers' concerns: The ability to outsource the scaling of an application to the virtualization layer.
Higdon's main point is that no matter how much effort is spent designing and implementing a highly scalable application, beyond some point in usage, the system will require more computing capacity. In the past, that meant having to purchase and maintain more hardware, but virtualization solutions are smarter at utilizing existing hardware, and reduce the need for new servers.
Higdon explains that in an environment where adding a new—virtual—server is a matter of pressing a button on an administrative UI or, better yet, delegating load balancing to the virtualization manager, developers have to worry less about application scaling: Increased capacity demands can be satisfied by starting an entirely new instance of the application:
Java is a scalable language, but sometimes you can have the best Java developers tune the application, [and] there is still a level of demand [where] you just, frankly, have to add more capacity. Today, that's a very manual and intensive process with significant time delay. Many organizations don't have that time..
[In a virtualized environment], you wouldn't have to develop and focus on the scalability of the app a lot, and allow [instead] to outsource that to a vendor. That would potentially reduce the time to market for your application, because in a lot of cases, the development [and] testing cycles you're going through are to determine your breaking point of the app. If you break it at five hundred users, but you need to get to three thousand users, how do you effectively do that? A lot of time and effort is spent in that cycle. What if you could reduce that, and not have to worry about that?
|Shayne Higdon, VP of Marketing at DataSynapse (JCP), talks about scaling an application through virtualization. (7 minutes 10 seconds)|
What do you think of the virtualized approach to scalability?Post your opinion in the discussion forum.
Bill Venners is president of Artima, Inc. He is author of the book, Inside the Java Virtual Machine, a programmer-oriented survey of the Java platform's architecture and internals. His popular columns in JavaWorld magazine covered Java internals, object-oriented design, and Jini. Bill has been active in the Jini Community since its inception. He led the Jini Community's ServiceUI project, whose ServiceUI API became the de facto standard way to associate user interfaces to Jini services. Bill also serves as an elected member of the Jini Community's initial Technical Oversight Committee (TOC), and in this role helped to define the governance process for the community.
Frank Sommers is Editor-in-Chief of Artima Developer. He also serves as chief editor of the IEEE Technical Committee on Scalable Computing's newsletter, and is an elected member of the Jini Community's Technical Advisory Committee. Prior to joining Artima, Frank wrote the Jiniology and Web services columns for JavaWorld.