Archive for July 2011
Eucalyptus enables the creation of on-premise private clouds via Amazon’s EC2 and S3 compatible API. However, the popular open-source version does not provide any in-built monitoring but relies on integration with proven monitoring tools, such as Nagios and Ganglia. For both of these tools Eucalyptus source package includes shell scripts (directory Extras), which modify Nagios and Ganglia configuration files to enable Eucalyptus-specific monitoring on predefined number of hosts. Below is a detailed installation procedure for “Debian Squeeze”, along with a modified script
nagios.sh for full compatibility with Nagios v. 3.2.3 (the script provided in the Eucalyptus source package produces errors and warnings).
1) Install Nagios
On the cluster/cloud controller:
tar xvzf nagios-3.2.3.tar.gz
useradd nagios -g nagios
2) Configure Nagios plugins
sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install libgd2-xpm-dev
usermod -a -G nagcmd nagios
usermod -a -G nagcmd www-data
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin (set password for web console access)
tar xvzf nagios-plugins-1.4.15.tar.gz
./configure --with-nagios-user=nagios --with-nagios-group=nagios
3) Configure Nagios to automatically start when the system boots
ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
Verify the sample Nagios configuration files:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Total Warnings: 0
Total Errors: 0
If there are no errors, start Nagios.
If you encouter a problem with saving configuration through the web console (insufficient permissions for directory /usr/local/nagios/var/rw), try:
chown nagios.www-data /usr/local/nagios/var/rw
4) Integrate Nagios with Eucalyptus
There was a problem with the original nagios.sh script (from Eucalyptus source) and Nagios 3.2.3. Pre-flight checks produced multiple errors and warnings, so the script was modified to conform to the latest Nagios config file definitions:
- check_load command is undefined in /usr/local/nagios/etc/objects/commands.cfg, use check_local_load instead
- add all the required parameters to service definitions (warnings in pre-flight checks)
- add all the required parameters to hosts definitions (linux-server), so the hosts don’t stay in PENDING state (use linux-server)
- define new service (eucalyptus-service) to be injected in the output file so the params can be easily synchronized with cron job definition (check interval)
The updated script can be found here. Make sure to double-check the path to the Nagios pipe (default: /usr/local/nagios/var/rw).
Create Eucalyptus configuration file for Nagios:
/root/nagios.sh -setup -nodes "hostnameNC" -cc "hostnameCC" -cloud "hostnameCloud" -walrus "hostnameWalrus" > /usr/local/nagios/etc/objects/eucalyptus.cfg
(replace hostnameX with hostnames of computers running these services)
Open /usr/local/nagios/etc/nagios.cfg, add
AFTER the line
# Definitions for monitoring a network printer
Issue pre-flight checks:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
Total Warnings: 0
Total Errors: 0
Add the script, which updates the services statuses, to cron:
crontab -e, add:
*/5 * * * * /root/nagios.sh -nodes "hostnameNC" -cc "hostnameCC" -cloud "hostnameCloud" -walrus "hostnameWalrus"
Finally, open http://CC_IP/nagios
Note: make sure active checks are disabled for Eucalyptus services. Active checks rely on Nagios’s internal mechanisms to determine the state of the service, whereas the current script periodically checks the state of Eucalyptus services and publishes the results in Nagios pipe file.
1) Install Ganglia
On the cluster/cloud controller
apt-get install rrdtool librrds-perl librrd2-dev libdbi0-dev libapr1-dev libconfuse-dev php5 php5-gd
apt-get install ganglia-monitor gmetad
To use the web interface, Ganglia also need to be compiled from source. Prerequisites: PCRE
… or install PCRE with:
apt-get install libpcre3 libpcre3-dev
Install Ganglia from source
tar xvzf ganglia-3.2.0.tar.gz
./configure --prefix=/opt/ganglia --enable-gexec --with-gmetad
ln -s /lib/libpcre.so.3 /lib/libpcre.so.0
2) Enable Web console
cp -R web/* /var/www/ganglia
chown www-data.www-data /var/lib/ganglia/dwoo
chmod 775 /var/lib/ganglia/dwoo
3) Install the monitoring service on each Node controller
apt-get install ganglia-monitor
4) Start Ganglia at system boot
On the CC/CLC controller, open /etc/rc.local, add:
On each NODE contoller, open /etc/rc.local, add:
5) Integrate with Eucalyptus (script ganglia.sh)
- Copy ganglia.sh file to each host runing ganglia-monitor
- Apply exec permissions: chmod +x ganglia.sh
- Run the script…
On the Cloud controller:
Monitor Walrus buckets: ./ganglia.sh -type walrus -d /
Monitor EBS volumes: ./ganglia.sh -type sc -d /
On each Node controller:
Monitor VM resources: ./ganglia.sh -type nc -d /
Restart the Ganglia monitor
Restart the Meta Daemon on Head Node for changes to become visible in the web console:
If you encouter the following error:
Configuration file '/usr/local/etc/gmond.conf' not found.
Unable to create ganglia send channels. Exiting.
Create the following symbolic link:
ln -s /etc/ganglia/gmond.conf /usr/local/etc/gmond.conf
Finally, open: http://CC_IP/ganglia
Whenever I listen to a presentation or read an article about cloud computing, the first question is always about security of data in the cloud. Certainly, this is an issue, but it has also become a grateful standpoint for cloud skeptics and opposers. It has been stressed many times that there are plenty of tools and algorithms for secure data transportation and storage, such as encryption, digital signatures, SSL, etc. Therefore, in my opinion, the issue of cloud security depends solely on trust. Do you trust your cloud provider? In case of an accident, will he take responsibility and recover your losses? (more…)
During the Microsoft Worldwide Partner Conference 2011, Microsoft introduced Windows Azure Cloud Appliance or so called “private cloud in a box” to its partners. The Azure appliance can be used by Microsoft partners to leverage new cloud services in data centers. The available server capacity will be maximally utilized for the usage of business applications. The described service combines Windows Azure, Microsoft SQL Azure and hardware fitted for Microsoft infrastructures. The service is primarily available for developers, end-users, service providers and resellers, who run applications in a private or hybrid cloud in their own data center. Customers can manage their private cloud via a portal located in the Microsoft System Center. You can read more here.
Throughout July Packt Publishing (one of the leading publishers in Oracle books) will be celebrating the release of its 50th Oracle book.
To mark this milestone Packt is offering the following discounts:
- 20% off all Oracle print books
- 30% off all Oracle eBooks
Packt first started publishing Oracle books in 2006, and has since published best-sellers such as Getting Started With Oracle SOA Suite 11g R1 – A Hands-On Tutorial, Oracle Coherence 3.5 and Oracle Fusion Middleware Patterns. And with more than 20 exciting new Oracle titles scheduled for 2011 this current success is only set to increase.
Packt owes much of its success to its print-on-demand mantra which not only allows it to produce books on specialist areas, but enables a quick response to new developments in technology – which was recently demonstrated with Packt publishing the first ever book on GoldenGate, the Oracle GoldenGate 11g Implementer’s guide.
Packt’s entire range of Oracle books is also available via PacktLib, Packt’s Online Library, and as part of Packt’s celebrations it’s offering you the chance to win a year’s subscription to PacktLib worth $220 click here for details: http://www.packtpub.com/article/50th-oracle-book-offer.
I would also like to take the opportunity to promote the book WS-BPEL 2.0 for SOA Composite Applications with Oracle SOA Suite 11g which was written by two members of our team (Matjaz B. Juric and Marcel Krizevnik).
For further information on this, and other books published by Packt Publishing, please visit www.PacktPub.com.
Apart from already known IaaS, PaaS and SaaS lately there is a buzz going around about a new concept of cloud computing, called Business Process as a Service (BPaaS). The idea is to provide the entire vertical end-to-end business solutions for certain industries, as a Cloud service. While using SaaS you would have to rent a number of separate applications and orchestrate them into your business process, in case of BPaaS your cloud provider does this for you. (more…)
Last week on July 6-8, 2011, three members of our team have attended Best Student Recognition Event, held in IBM innovation center in La Gaude, France. Along with more than seventy students from all over Europe, Middle East and Africa, we were given a unique opportunity to hear from IBM executives and experts on IBM Smarter Planet strategy, their innovative solutions and technologies.
AWS Elastic Beanstalk (beta)
Elastic Beanstalk is Amazon’s Platform as a Service (PaaS) product that leverages AWS services such as Amazon EC2, Amazon S3, Amazon Simple Notification Service, Elastic Load Balancing, and Auto-Scaling capabilities. The Beanstalk environment supports a full Tomcat server running on an EC2 virtual server. It is a pure Java environment with access to the underlying file system.
The first release of Elastic Beanstalk is built for Java developers using the familiar Apache Tomcat software stack which ensures easy portability for your application. There is no additional charge for Elastic Beanstalk – you only pay for the AWS resources needed to store and run your applications. Java EE is not supported in AWS Elastic Beanstalk.
CloudBees is a new entrant to the Java PaaS scene. It may be a startup, but the people behind it are enterprise Java veterans. (It was started by JBoss ex-CTO Sacha Labourey, and has employed open source Java heavyweights Adrian Brock of JBoss fame and Kohsuke Kawaguchi of Hudson fame.) Its PaaS technology was acquired from Stax Networks, which has been providing hosted Java application services to enterprise customers for more than 10 years. The CloudBees RUN@Cloud service is based on the robust Stax platform, and it is available to individual developers via a self-service web portal.
The RUN@Cloud service is currently based on the EC2 infrastructure, and it can be viewed as a more automated version of Beanstalk + RDS. Like Beanstalk, RUN@Cloud also offers a dedicated Tomcat instance running on an EC2 virtual server for each web application. It provides a pure Java environment with no artificial limitation on file system access, network I/O, and threading. Unlike Elastic Beanstalk, CloudBees does have a Java EE support and it doesn’t need to be tied with Amazon. It plans to offer other infrastructure providers to supplement EC2 in the near future.
CumuLogic is an easy-to-use service that allows creating private Platform-as-a-Service (PaaS) on public clouds, such as Amazon EC2, and private clouds such as Cloud.com, Eucalyptus and VMware. CumuLogic is a scalable cloud platform for Java applications. Unlike most Platform-as-a-Service offerings in the market today, CumuLogic gives you the flexibility to customize your platform on clouds so you are not locked-in to the platform or limited to use the services provided by the platform.
CumuLogic supports multiple Java EE containers. Enterprises with custom Java apps can build Java PaaS to consolidate applications on one standardized platform. Described PaaS product enables application developers to access a development, Test/QA and deployment infrastructure on a self-service basis, allowing developers to focus on building applications rapidly and cost effectively.
WMware’s PaaS Solutions
VMWare provides several products that are labeled as PaaS solutions. The first platform that they provide is called VMware’s SpringSource (vFabric Cloud Application Platform), which has just recently acquired the graphical web development tool WaveMaker. WaveMaker is the only open and easy-to-use development platform for web and cloud applications. With WaveMaker’s visual, drag and drop tools, any developer can start building enterprise Java application. Unlike the traditional Java EE platform, SpringSource provides a range of capabilities for creating enterprise Java, rich web, and enterprise integration applications that can be consumed in a lightweight, a-la-carte manner.
VMware unveiled an open platform-as-a-service offering April this year, that supports multiple programming frameworks including Spring for Java developers, Rails and Sinatra for Ruby developers, Node.js and other JVM frameworks including Grails. This second platform is called Cloud Foundry. Even though Java EE support is still not present in this platform, there are plans to add in the future.
As part of Microsoft’s commitment to interoperability, the Windows Azure platform has been built from the ground up with interoperability in mind. Developers have the choice of several languages for building their applications, including: .NET (C# and Visual Basic), C++, PHP, Ruby, Python and Java. In addition, interoperability with other platforms is made easier through community-based libraries: Plug-in for Eclipse and SDKs for Java.
Open source project WindowsAzure4j is such SDK and enables Java developers to develop Java applications on Windows Azure platform. This open source project also provides a software development kit for Windows Azure and Windows Azure Storage – Blobs, Tables & Queues.
Windows Azure supports Java EE 6 with GlassFish. How to configure and run Java App on Azure, check here.
Oracle PaaS Platform
The Oracle PaaS includes database services based on Oracle Database and Oracle Exadata Database Machine, as well as middleware service based on Oracle Fusion Middleware and Oracle Exalogic Elastic Cloud. With engineered systems such as Exadata and Exalogic providing extreme performance and efficiency for mixed workloads, Oracle provides the best foundation for PaaS. On top of this foundation of clustered middleware and database technologies, the Oracle PaaS Platform also includes components such as Oracle SOA Suite, Oracle BPM Suite, Oracle Identity Management and Oracle WebCenter.
Oracle WebLogic Server is the core application grid technology within Oracle Fusion Middleware. In addition to its general market leadership among Java EE application servers, WebLogic Server is particularly well-suited to application grid.
Google App Engine
Google App Engine provides a PaaS environment for both Java EE and Python. The following features are supported especially for Java EE:
- The Java environment provides a Java 6 JVM and it is based on common Java web technology standards, including Servlets and WARs, JDO and JPA, java.net, JavaMail and JCache.
- Google App Engine for the Java EE Platform is supported by the Eclipse IDE. A plugin for the Eclipse IDE supports project creation, testing and deployment.
Unsupported Features in Google App Engine:
- Enterprise JavaBeans (EJB) is not supported as part of the Google Apps Engine.
- A UI development framework like JSF (JavaServer Faces) is not directly supported.
- Other Java EE standards like JMS (Messaging Service) and Web Service Specifications.
Red Hat just recently announced a new Platform as a Service (PaaS) environment, known as OpenShift at Red Hat Summit 2011 in Boston. The platform, which was built on top of Makara, JBoss EE runtime and some other pieces, provides support for a variety of programming languages and frameworks, including Java, Ruby, PHP, Python and more.
The platform comprises of three PaaS options, while only the FLEX supports Jave EE development in the cloud:
- EXPRESS – deploy new and existing Ruby, PHP, and Python applications in the cloud for free.
- FLEX – free PaaS for new and existing JBoss, Java EE 6, and PHP applications.
- POWER – Deploy applications to the cloud that are written to Linux (i.e. written in C,or using many binary components).
IBM PaaS Stack
Java EE on Cloud is made possible using IBM’s PaaS solution. It consists of three main products: IBM Tivoli Sercice Automation Manager, WebSphere Application Server and IBM Workload Deployer.
IBM Workload Deployer (previously known as WebSphere CloudBurst Appliance) is a hardware appliance that provides access to IBM middleware virtual images to create application environments that can be deployed and managed in a private cloud. IBM Tivoli Service Automation Manager on the other hand enables users to request, deploy, monitor and manage cloud computing services. This Tivoli offering enables a more modern and dynamic data center.
The latest version of WebSphere Application Server (V8) supports a Java EE 6, and is EJB supported technology-based application platform. Build, deploy and manage robust, agile and reusable SOA business applications and services of all types while reducing application infrastructure costs.
WebSphere Application Server V8 is also available on the following clouds:
- IBM Smart Business Cloud – Enterprise
- Amazon Elastic Compute Cloud (EC2)
When trying to improve Oracle WebLogic server performances, scalability and reliability, tuning JVM (Java Virtual Machine) is probably the most important step. However, this is usually far from being an easy task. JVM tuning includes selecting the right JVM, setting the appropriate heap size, selecting the most appropriate GC (garbage collector) strategy, etc. An in-depth discussion is beyond the scope of this post, we will just get familiar with the basic steps: