Book Image

Cloud Development and Deployment with CloudBees

By : Nicolas De loof
Book Image

Cloud Development and Deployment with CloudBees

By: Nicolas De loof

Overview of this book

CloudBees offers a Platform as a Service (PaaS) to build, run, manage web applications, and support the entire application lifecycle right from development to deployment.The development and deployment of web- and mobile-based Java applications are the basic services that CloudBees has to offer. With these services you can efficiently build and enhance applications, and connect them to existing networks and systems. Cloud Development and Deployment with CloudBees introduces you to the concept of Platform as a Service. It talks about the services in detail that developers can leverage in order to build, manage, and deploy their applications with ease onto the cloud. You will learn the intricacies of the CloudBees ecosystem and how it can be extended to match your specific requirements. Cloud Development and Deployment with CloudBees will get you started with the concepts of PaaS and why it is considered better than other forms of services. You will then learn to create and manage your account, understand the CloudBees ecosystem, and subscribe to the wide array of services available. After this, you will use the clickStart feature that will enable you to set up, run, and host your application on the cloud. You will also venture out into the development phase by understanding Jenkins and how it would help you to build, maintain, and integrate your project build. You will then learn how to use the RUN@CLOUD platform to host your application, and you will also delve into cloud concepts, and understand the architectural constraints and how to monitor the application. Finally, you will deep dive into the extensive capabilities of using clickStack to create or customize your own stack.
Table of Contents (15 chapters)
Cloud Development and Deployment with CloudBees
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Cloud and clustering


Another consideration for a platform is clustering . Cloud is based on slicing resources into small virtual elements and letting the users select as many as they need. In most cases, this requires the application to support a clustering mode, as using more resources will require you to scale out on multiple hosts.

Clustering has never been a trivial thing, and many developers aren't familiar with the related constraints. The platform can help them by providing specialized services to distribute the load around the cluster's nodes. Some PaaS such as CloudBees or Google App Engine provide such features, while some don't. This is the major difference between PaaS offers. Some are IaaS-like preinstalled middleware services, while some offer a highly integrated platform.

A typical issue faced is that of state management. Java EE developers rely on HttpSession to store user's data and retrieve them on subsequent interaction. Modern frameworks tend to be stateless, but the state needs to be managed anyway. PaaS has to provide options to developers, so that they can choose the best strategy to match their own business requirements. This is a typical clustering issue that is well addressed by PaaS because the technical solutions (sticky session, session replication, distributed storage engines, and so on) have been implemented once with all the required skills to do it right, and can be used by all platform users.

Thanks to a PaaS, you don't need to be a clustering guru. This doesn't mean that it will magically let your legacy application scale out, but it gives you adequate tools to design the application for scalability.