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

CloudBees – embrace the development stack


CloudBees PaaS has something special in its DNA that you won't find in other PaaS; focusing on the Java ecosystem first, even with polyglot support, CloudBees understands well the Java ecosystem's complexity and its underlying practices.

Heroku was one of the first successful PaaS, focusing on Ruby runtime. Deployment of a Ruby application is just about sending source code to the platform using the following command:

git push heroku master

Ruby is a pleasant ecosystem because there are no such long debates on building and provisioning tools that we know of, unlike in JavaWorld, GemFile, and Rake, period.

In the Java ecosystem, there is a need to generate, compile the source code, and then sometime post the process classes, hence a large set of build tools are required. There's also a need to provision runtime with dozens of dependencies, so a set of dependency management tools, inter-project relations, and so on are required. With Agile development practices, automated testing has introduced a huge set of test frameworks that developers want to integrate into the deployment process.

The Java platform is not just about hosting a JVM or a servlet container, it's about managing Ant, Maven, SBT, or Gradle builds, as well as Grails-, Play-, Clojure-, and Scala-specific tooling. It's about hosting dependency repositories. It's about handling complex build processes to include multiple levels of testing and code analysis.

The CloudBees platform has two major components:

  • RUN@cloud is a PaaS, as described earlier, to host applications and provide high-level runtime services

  • DEV@cloud is a continuous integration and deployment SaaS based on Jenkins

Jenkins is not the subject of this book, but it is the de facto standard for but not limited to continuous integration in the Java ecosystem. With a large set of plugins, it can be extended to support a large set of tools, processes, and views about your project.

The CloudBees team includes major Jenkins committers (including myself #selfpromotion), and so it has a deep knowledge on Jenkins ecosystem and is best placed to offer it as a Cloud service. We also can help you to diagnose your project workflow by applying the best continuous integration and deployment practices. This also helps you to get more efficient and focused results on your actual business development.

The following screenshot displays the continuous Cloud delivery concept in CloudBees:

With some CloudBees-specific plugins to help, DEV@cloud Jenkins creates a smooth code-build-deploy pipeline, comparable to Heroku's Git push, but with full control over the intermediary process to convert your source code to a runnable application. This is such a significant component to build a full stack for Java developers that CloudBees is the official provider for the continuous integration service for Google App Engine (http://googleappengine.blogspot.fr/2012/10/jenkins-meet-google-app-engine.html), Cloud Foundry (http://blog.cloudfoundry.com/2013/02/28/continuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud/), and Amazon Beanstalk (to be announced as I'm writing this chapter).