
Now Vmware has announced that they would provide RabbitMQ as a service with Cloud Foundry.
Seems like a good move which further helps the user to select his own service while building a cloud, rather than working with a single service provider.
Experiences of a beginner in virtualization...
The control flow could also originate from the retailers to the customer. For example, when a retailer updates a catalog, the retail system sends catalog update messages to the store so that the store can display the new items. Similarly, when a shipper changes pickup times, the shipping system sends update messages to all the retailers the system serves so that they can have the shipments ready in time.
OK fine, everything works fine right?, what exactly is the problem?
AMQP is a standard wire-level protocol and semantic framework for high performance enterprise messaging. From the AMQP website: AMQP is an Open Standard for Messaging Middleware. By complying to the AMQP standard, middleware products written for different platforms and in different languages can send messages to one another. AMQP addresses the problem of transporting value-bearing messages across and between organizations in a timely manner.If you are interested in why AMQP check this.
RabbitMQ is 100% open source and 100% based on open standard protocols freeing users from dependency on proprietary vendor-supplied libraries.
RabbitMQ is designed with interoperability capability with other messaging systems: it uses the leading AMQP protocol, the open standard for business messaging, and, through adapters, supports SMTP, STOMP and HTTP for lightweight web messaging.
RabbitMQ is supported by a thriving community of active contributors. A full range of commercial support services are available through the SpringSource division of VMware. Do check here for more details. Also here is the FAQ for RabbitMQ.
As virtualization technology has matured, one can see most software vendors have shied away from recommending a virtual machine as the preferred way to run software for fear of degraded performance or support complications.
With VMware pushing its own new application platform stack through the SpringSource division and the set of associated acquisitions over the last couple of years, it was perhaps only a matter of time before we started seeing optimizations for virtualized deployment and then a strategy built around a VM-first approach.
Engineered specifically to leverage the server architecture of VMware vSphere, vFabric 5 features the new Elastic Memory for Java capability. Elastic memory allows applications to safely grow and shrink the memory heap as needed to survive load peaks and memory leaks. The feature works to optimize memory management across Java applications via memory ballooning. The envisioned result is greater application server density for Java workloads on vFabric.
map(key , value) {The map function is called for each line in each log file. Lines that are not relevant are ignored. Account number is parsed out of relevant lines and output with a value 1. The MapReduce runtime sorts and groups the output by account number. The reduce function is called for each account. The reduce function aggregates the values for each account, which is the required result.
// key = byte offset in log file
// value = a line in the log file
if ( value is an account access audit log) {
account number = parse account from value
output key = account number, value = 1
}
}
reduce(key, list of values) {
// key = account number
// list of values {1,1,1,1.....}
for each value
count = count + value
output key , count
}
The DEA (Droplet Execution Agent) is the supervisor process responsible for provisioning new applications: it receives the query from the CloudController, sets up the appropriate platform, exports the environment variables, and launches the app server.
Finally, the services component is responsible for provisioning and managing access to resources such as MySQL, Redis, RabbitMQ, and others. Once again, very similar architecture: a gateway Ruby daemon listens to incoming requests and invokes the required start/stop and add/remove user commands. Adding a new or a custom service is as simple as implementing a custom Provisioner class.
What glues all these moving pieces together?
This architecture allows CloudFoundry to easily add and remove new routers, DEA agents, service controllers and so on. Nothing stops you from running all of the above on a single machine, or across a large cluster of servers within your own datacenter.
Distributed Systems with Ruby? Yes!Another interesting read would be How Cloud Foundry works when a new Application is Deployed
Next time will try to explain CloudFoundry dynamics with a use case and go more into technical depth of each block.
The benefits of using infrastructure as a service clearly make this a desirable option for many businesses. For a start, there is no initial cost in setting up computer infrastructure, which saves the company thousands of dollars a year. There are no costly upgrades or maintenance fees, as this is all included within the package price and is taken out of the hands of the company using the service. Staffing costs are kept down, as there is no need for an intensive IT department.
Is the server room in my office for me to play basket ball?
Physical space within the office is maximized, with large server rooms becoming obsolete and workers being able to log onto the infrastructure from their own laptops. This also means that infrastructure is a service makes it easier to work from home or when traveling. There are also environmental benefits, with less companies running their own resource intensive server rooms, and many of the companies who offer infrastructure as a service sell the space in a way that there is very little unused computer space or idle server systems.
The benefits of infrastructure as a service greatly outweigh the negatives, and even some previous issues such as information protection, security and downtime have been completely revolutionized, meaning that those working on infrastructure as a service not only save money, but can also increase their productivity. Many systems are being developed as green virtualization solutions so that clients using IaaS can know that they are doing their best to help the environment while they work.
The idea here is to build a base to understand what VMware vCloud Director(will try to explain in next post) is in simple terms.
VMware announced it’s own application development platform called Cloud Foundry in April. It is based on open source software. It can be described as a layer which sits between the cloud provider infrastructure (computing resources) and the software used for development.
As it is open source the application can run on cloud providers which support Cloud Foundry. Even when the cloud provider does not run VMware vSphere as it’s underlying virtualization platform. So if the cloud provider does not comply to SLA’s or raises the price, the app can be moved quite easily to another provider without having to rewrite the app. Wow isn't this super cool, I feel it is kind of moving from dictatorship to democracy :).
Cloud Foundry supports MySQL, MongoDB and Redis [and in] coming months, they claim they would add support for other application services. In the initial release, Spring for Java, Rails and Sinatra for Ruby and Node.js are supported. The system also supports other JVM-based frameworks such as Grails.
Is it Open Source? But Of Course
Cloud Foundry is an open source project with a community and source code today at www.cloudfoundry.org.In the next post will try to go in more details about the Cloud Foundry architecture.
Again aim here is to explain in simple terms the technology. Feedback is always appreciated.
Citrix has a Virtualization environment, which can virtualize applications(Xenapp) and Desktops(XenDesktop).
In the Citrix virtualization solution all applications run on the server and the endpoints view the window for this application running on the server. Think about this as streaming live video from the Citrix Server (where the application runs) to the endpoint (where the user "views" the running application through this streaming video concept.
The user is also allowed to interact with the application. For example, using our concept of streaming video, clicking on a specific portion of this streaming video causes the Citrix Endpoint Client to send the click to the server (where the application is running). The client sends the X and Y location of the click. When the server receives the click coordinates, it generates a click within the application on that X and Y coordinate. This will invoke the appropriate action on the server and the user will instantly see the change because constantly streaming the video content of this application.
The same happens for keyboard input as well. When the user presses a key on the keyboard, the key scan code is send to the server. The server presses that key in the running application which shows up in the server and in turn is displayed to the users on the endpoint.
In the Citrix virtualization environment the applications/Desktops are streamed/accessed from the a centralized server.
The centralized server is easy to maintain, apply patches, efficiently use hardware etc.