{"id":475,"date":"2011-07-11T21:44:00","date_gmt":"2011-07-11T21:44:00","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/2012\/10\/developing-and-testing-in-the-cloud.html"},"modified":"2012-10-21T20:00:51","modified_gmt":"2012-10-21T20:00:51","slug":"developing-and-testing-in-cloud","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2011\/07\/developing-and-testing-in-cloud.html","title":{"rendered":"Developing and Testing in the Cloud"},"content":{"rendered":"<p>There\u2019s a lot of hype around \u201c<a href=\"http:\/\/www.infoworld.com\/d\/cloud-computing\/what-cloud-computing-really-means-031\">the Cloud<\/a>\u201d and what it can do.<\/p>\n<p>One  of the things that I am interested in is Cloud solutions that can help  small software companies, and especially to kickstart software startups.  Good tools that development teams can take advantage of to build and  test their own stuff, without all of the hassle and expense of internal  IT, buying and provisioning their own gear, setting up the tools and  systems and networks and finding someone who understands all of it well  enough to do it right and to keep it running.<\/p>\n<p>I want to find Cloud-based  technology that can do for software teams what <a href=\"http:\/\/www.salesforce.com\/\">Salesforce.com <\/a>does for customer-service businesses, so that software teams can get started off quickly, and doing things right from the start.<\/p>\n<p>Software teams need a core set of shared tools and capabilities:<\/p>\n<ul type=\"square\">\n<li>Source code management \/ version control<\/li>\n<li>Bug tracking<\/li>\n<li>Collaboration and shared documentationBuild and Continuous Integration<\/li>\n<li>Source code scanning and static analysis<\/li>\n<li>Unit and functional testing<\/li>\n<li>System, load and stress testing<\/li>\n<li>Code deployment.<\/li>\n<\/ul>\n<p>Can the Cloud provide all of this in an effective way?<\/p>\n<p><span style=\"font-weight: bold\">Managing and Building Code in the Cloud<\/span><\/p>\n<p>I keep running into people using <a href=\"https:\/\/github.com\/\">GitHub <\/a>to  host their source code repositories. Not just people working on Open  Source projects, but companies using GitHub to manage commercial  projects in <a href=\"https:\/\/github.com\/features\/hosting\">hosted private repositories<\/a>, a service <a href=\"http:\/\/www.quora.com\/Do-any-startups-use-Github-as-a-repository-for-their-private-proprietary-code\">used by a number of startups<\/a>. In GitHub, developers have a platform for managing code with the <a href=\"http:\/\/git-scm.com\/\">Git<\/a>  distributed version control system, and they get access to a good set  of tools for a development team, especially distributed teams: admin  functions to control <a href=\"https:\/\/github.com\/features\/projects\/collaboration\">permissioning, <\/a><a href=\"https:\/\/github.com\/features\/projects\/wikis\">wikis<\/a>, a <a href=\"https:\/\/github.com\/features\/projects\/issues\">bug tracking system<\/a> and an online <a href=\"https:\/\/github.com\/features\/projects\/codereview\">code review tool<\/a>.<\/p>\n<p>One alternative to GitHub is <a href=\"https:\/\/bitbucket.org\/\">BitBucket <\/a>which uses the <a href=\"http:\/\/mercurial.selenic.com\/\">Mercurial<\/a> DVCS. Like GitHub, BitBucket can be used to manage Open Source and private projects, and it looks like it offers a <a href=\"http:\/\/thingsilearned.com\/2010\/01\/07\/github-and-bitbucket\/\">similar set<\/a> of management capabilities and tools. GitHub is <a href=\"https:\/\/github.com\/plans\">free for Open Source projects and cheap for small teams<\/a> while BitBucket\u2019s <a href=\"https:\/\/bitbucket.org\/plans\">pricing<\/a> is based on the number of users, small teams (up to 5 users) are free for open or closed source.<\/p>\n<p>Another On Demand SCM platform built on Mercurial is Fog Creek Software\u2019s <a href=\"http:\/\/www.fogcreek.com\/kiln\/\">Kiln<\/a> which integrates nicely with Fog Creek\u2019s bug tracking and planning system <a href=\"http:\/\/www.fogcreek.com\/fogbugz\/\">FogBugz<\/a>.<\/p>\n<p>Atlassian, which <a href=\"http:\/\/techcrunch.com\/2010\/09\/29\/atlassian-buys-mercurial-project-hosting-site-bitbucket\/\">bought BitBucket last year<\/a>  also offers <a href=\"http:\/\/www.atlassian.com\/hosted\/studio\/\">Jira Studio<\/a> a comprehensive hosted development platform centered on a <a href=\"http:\/\/www.atlassian.com\/hosted\/studio\/tour\/subversion-svn-hosting.jsp\">Subversion code repository<\/a> integrated with the rest of Atlaissian\u2019s strong development toolset: <a href=\"http:\/\/www.atlassian.com\/software\/jira\/\">Jira<\/a> bug tracking, <a href=\"http:\/\/www.atlassian.com\/software\/fisheye\/\">FishEye<\/a> for code searching, <a href=\"http:\/\/www.atlassian.com\/software\/confluence\/\">Confluence<\/a> wiki, <a href=\"http:\/\/www.atlassian.com\/software\/greenhopper\/\">Greenhopper<\/a> for Agile team planning, <a href=\"http:\/\/confluence.atlassian.com\/display\/BAMBOO\/About+Elastic+Bamboo\">Elastic Bamboo <\/a>for build and Continuous Integration on Amazon EC2 and <a href=\"http:\/\/www.atlassian.com\/software\/crucible\/\">Crucible<\/a>  for online code review. That\u2019s almost everything that a team needs (all  that is missing is static analysis and a functional and load testing  platform). Presumably the same integrated development tool support will  extend to BitBucket over time, although there are already some overlaps  between BitBucket and Jira Studio.<\/p>\n<p>And there\u2019s CloudBees <a href=\"http:\/\/cloudbees.com\/dev.cb\">Dev@cloud<\/a> which offers a choice of secure Git, SVN or Maven repositories, and Continuous Integration through a <a href=\"http:\/\/jenkins-ci.org\/\">hosted Jenkins server<\/a>.<\/p>\n<p>Spring Source\u2019s <a href=\"http:\/\/www.springsource.com\/code2cloud\">Code2Cloud<\/a> might be a good option especially for Java \/ Spring developers when it is ready \u2013 the details are fuzzy at the moment.<\/p>\n<p><a href=\"http:\/\/code.google.com\/\">Google Code<\/a> is cool, but for now is <a href=\"http:\/\/code.google.com\/p\/support\/wiki\/FAQ\">only available for Open Source<\/a> projects. <\/p>\n<p>For enterprises, IBM <a href=\"http:\/\/www.ibm.com\/press\/us\/en\/pressrelease\/29685.wss\">recently announced<\/a> <a href=\"http:\/\/www.ibm.com\/services\/us\/en\/it-services\/smart-business-development-and-test-cloud.html\">Smart Business Development and Test Cloud<\/a> and <a href=\"http:\/\/www.ibm.com\/services\/us\/en\/it-services\/smart-business-development-and-test-on-the-ibm-cloud.html\">IBM Smart Business Development and Test on the IBM Cloud<\/a>  (also known as SmartCloud Enterprise &#8211; I\u2019m not sure what the difference  is between them, I got too worn out reading through the marketing  speak) , with all sorts of <a href=\"http:\/\/www.ibm.com\/software\/rational\/info\/cloud-services\/\">IBM technology<\/a> and partner tools. This stuff isn\u2019t for the faint of heart, or the small of wallet.<\/p>\n<p><span style=\"font-weight: bold\">Continuous Integration in the Cloud<\/span><\/p>\n<p>Continuous  Integration is a problem that development teams need to solve before  they get too far along, and setting up a CI server and keeping it  running isn\u2019t trivial. It\u2019s another good fit for the elastic On Demand  model of the Cloud, paying for more infrastructure only when you need  it.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p>Besides Atlassian\u2019s hosted end-to-end platform, and CloudBees\u2019 <a href=\"http:\/\/cloudbees.com\/dev-faq.cb\">Jenkins as a Service<\/a>  which can be used to build code hosted on a repository accessible  through the Internet, there are a few options for CI in the Cloud  (courtesy of <a href=\"http:\/\/stackoverflow.com\/questions\/2380721\/hosted-continuous-integration\">Pascal Thivent on Stack Overflow<\/a>):<\/p>\n<p>For Open Source projects there is <a href=\"http:\/\/codebetter.com\/jameskovacs\/2009\/02\/24\/announcing-teamcity-codebetter-com\/\">CodeBetter<\/a> based on the <a href=\"http:\/\/codebetter.com\/codebetter-ci\/\">TeamCity build server<\/a>. For proprietary projects there is <a href=\"http:\/\/mikeci.com\/\">Mike CI <\/a>which is hosted on Amazon EC2, and includes interfaces to Subversion, Git and Mercurial repositories; and <a href=\"http:\/\/cifoundry.net\/\">CI Foundry<\/a>.  However, I don\u2019t know how real these services are. Mike CI was down the  last couple of times I went to check on it, and CI Foundry\u2019s home page  includes this not-very-convincing testimonial:<\/p>\n<blockquote>\n<p>What people are saying&#8230;<br \/>\nLorem  ipsum dolor sit amet, consectetur adipiscing elit. Mauris quis ligula  vel ligula varius cursus tristique eget sem. Mauris sagittis, ante id  imperdiet auctor, sem mi condimentum neque, quis feugiat quam dui dictum  risus.<br \/>\n&#8211; Chris Read<br \/>\nContinuous Deployment expert<\/p>\n<\/blockquote>\n<p>Thivent suggests that you can roll-your- own CI solution on Amazon EC2 or maybe use something like <a href=\"http:\/\/www.ciinabox.com\/\">\u201cCI in a box\u201d<\/a>. Using an On Demand platform like <a href=\"http:\/\/aws.amazon.com\/ec2\/\">EC2<\/a>  makes sense for CI, rather than provisioning your own gear: it\u2019s a bit  more work for you to do the setup, but you can rely on Amazon\u2019s  infrastructure to reduce costs and simplify operations.<\/p>\n<p><span style=\"font-weight: bold\">Bug Tracking in the Cloud<\/span><\/p>\n<p>There are some decent and reasonably priced Cloud-based bug tracking systems suitable for small teams, including <a href=\"http:\/\/www.fogcreek.com\/fogbugz\/pricing.html\">Fog Creek Software\u2019s FogBugz<\/a> and Atlassian\u2019s <a href=\"http:\/\/www.atlassian.com\/software\/jira\/hosted\/\">Jira Hosted<\/a> option both of which are also included in their hosted code management suites.<\/p>\n<p><span style=\"font-weight: bold\">Testing in the Cloud<\/span><\/p>\n<p>The  Cloud has a lot of promise for app testing, especially for large-scale  performance and load testing. You\u2019re building a cool new Web platform  that needs to support 10,000 or 100,000 concurrent sessions according to  your business plan. Before your investors put more money in, they want  to see just how real your software is, how far away you are from  delivering something that could work. Of course you don\u2019t have the money  or time or IT skills to build a large-scale test center of your own at  this point, and there\u2019s a lot of waste in doing this \u2013 you need a lot of  gear, but you won\u2019t need to use all of it very often.<\/p>\n<p>You can spin up a test farm on EC2 surprisingly quickly, even a big one \u2013  and as long as you don\u2019t need to run the tests for a long time and you  don\u2019t ask for too high a service level, it <a href=\"http:\/\/aws.amazon.com\/ec2\/pricing\/\">won\u2019t cost you much<\/a> at all. You pay for what you need when you need it.<\/p>\n<p>To  run stress tests you need more than just the app deployed in a farm.  You also need a scalable stress test harness to drive load scenarios and  to measure the results. There are some viable options available in the  Cloud today: <a href=\"http:\/\/www.soasta.com\/\">SOASTA<\/a> with its CloudTest solution for load testing and extreme stress testing, scaling from smallish sites to really big; <a href=\"http:\/\/www8.hp.com\/us\/en\/software\/software-product.html?compURI=tcm:245-936943\">HP Load Runner in the Cloud<\/a> running on EC2; <a href=\"http:\/\/performancexpert.com\/jmeter\">JMeter in the Cloud<\/a>; <a href=\"http:\/\/loadstorm.com\/\">LoadStorm <\/a>and <a href=\"http:\/\/browsermob.com\/performance-testing\">BrowserMob<\/a>.<\/p>\n<p>There are also some other interesting test capabilities, including technology from <a href=\"http:\/\/saucelabs.com\/\">Sauce Labs<\/a> which lets you run <a href=\"http:\/\/saucelabs.com\/ondemand\">Selenium tests on Web apps in the Cloud<\/a> or <a href=\"http:\/\/saucelabs.com\/docs\/scout\">manually test<\/a>  your app against different Cloud-based instantly-available browsers,  all with video records of failed tests and other problems found. Simple,  useful and cool.<\/p>\n<p>A different take on Cloud-based testing that  could work for startups and smaller companies is crowd-sourced testing  services like <a href=\"http:\/\/www.utest.com\/\">uTest<\/a>, where you get  people \u201cin the Cloud\u201d to test your app (web apps, desktop apps and  mobile apps), including functional coverage and regression testing (you  give them tests, they run them and maybe help improve them), exploratory  testing, usability testing, load testing and test planning and  management. Like other Cloud-based On Demand solutions, you pay for work  when you need it. uTest has a community of something like 40,000  testers available, although it\u2019s not clear how many of them are much  good.<\/p>\n<p><a href=\"http:\/\/mob4hire.com\/\">Mob4Hire <\/a>is another crowd-sourced solution specifically for mobile apps \u2013 they offer <a href=\"http:\/\/mob4hire.com\/services\/mobtestsuite\">functional testing and usability testing<\/a> and other services like market research.<\/p>\n<p><span style=\"font-weight: bold\">Static Analysis in the Cloud<\/span><\/p>\n<p>Some of the leading static analysis suppliers have also gone to the Cloud. HP offers <a href=\"https:\/\/www.fortify.com\/products\/fortify-on-demand\/index.html\">Fortify on Demand<\/a> to scan code for security vulnerabilities, and IBM has <a href=\"http:\/\/www.ibm.com\/software\/awdtools\/appscan\/ondemand\/\">Rational Appscan OnDemand <\/a>which  includes assistance from an experienced team to help you interpret the  results and plan remediation. Both of these solutions are targeted more  towards the enterprise than small teams.<\/p>\n<p><a href=\"http:\/\/www.veracode.com\/\">Veracode<\/a>,  which runs binary code analysis for security vulnerabilities and now  also offers web vulnerability scanning, is only available through the  Cloud. They offer a <a href=\"https:\/\/trial.veracode.com\/freetrials\/veracode-free-trial-signup.php\">free trial scan<\/a> of small Java apps for XSS and SQL Injection flaws (two of the most common and fatal web application vulnerabilities).<\/p>\n<p>For  startups that care about building reliable and secure apps (and most of  them should, especially Web 2.0 startups and mobile app developers) it  probably makes more sense to look at simpler developer IDE-based tools  like <a href=\"http:\/\/findbugs.sourceforge.net\/manual\/eclipse.html\">Findbugs <\/a>and <a href=\"http:\/\/code.google.com\/javadevtools\/codepro\/doc\/index.html\">Google\u2019s CodePro Analytix<\/a> (both free) or <a href=\"http:\/\/www.klocwork.com\/products\/solo\/index.php\">Klocwork Solo for Java<\/a> which is priced per user.<\/p>\n<p><span style=\"font-weight: bold\">The Tradeoffs<\/span><\/p>\n<p>Managing your code, building it and testing it in the Cloud has a number of clear advantages:<\/p>\n<ul type=\"square\">\n<li>Faster time to market \u2013 you can get access to the infrastructure and tools quickly, with minimal hassle and setup time.<\/li>\n<li>Savings  on cost and Capex \u2013 especially for load testing \u2013 you don\u2019t have to pay  upfront, you only have to pay for what you use when you use it, so you  can better manage your cash flow.<\/li>\n<li>Convenience \u2013 you don\u2019t have to provision and operate the gear yourself and add to your operational headaches.<\/li>\n<li>Access  to specialist skills \u2013 your Cloud provider will know more about these  technologies and how to solve a specific problem much better than you  can afford to, so you don\u2019t need to contract or hire gurus to help solve  problems or make sure everything is setup properly, or waste time  figuring it out yourself.<\/li>\n<li>Service levels \u2013 they\u2019ll have more  people to help keep things running, to make sure code and data are  backed up, systems are cleaned up and monitored and patched. They\u2019re  less likely to lose your code and data than you are.<\/li>\n<\/ul>\n<p>When it  comes to security, the common argument for working with a Cloud-based  provider is that they will be more responsible and serious about  security than most of their customers will be or can be. Because the of  economies of scale, they can invest in doing things right, and because  they have to be secure to compete. GitHub for example looks like they  have a <a href=\"http:\/\/help.github.com\/security\/\">good security program in place<\/a> and they are hosted by <a href=\"https:\/\/github.com\/blog\/493-github-is-moving-to-rackspace\">Rackspace<\/a>  so the data center, network and servers will be setup and taken care of  much better than a small company, especially a startup, can afford to  or would know how to do.<\/p>\n<p>The concern with using a Cloud platform like this comes down to some fundamental points:<\/p>\n<p>1.     It\u2019s a shared platform, used by a lot of companies. The more  successful the platform is, the more customers and interesting and  valuable data \/ IP that they manage, the more attractive a target they  are to bad guys. A small company by itself is an easy target, but not  especially interesting or easy to find. But a platform that holds data  for a lot of small, innovative companies? Yummy\u2026.[pronounced in a deep,  growly voice with a foreign accent]<\/p>\n<p>2.    You take on some  important risks any time that you outsource something that is core and  critical to your business. Your data \/ code \/ customer base is more  important to you than it is to whoever you outsource this responsibility  to. If something goes badly wrong, if you can\u2019t get an important change  or an important bug fix out to a customer because the Cloud service  isn\u2019t working, or if the integrity or confidentiality of your code is  compromised, they will be sad, and they will lose a customer (you)&#8230;  but you may go out of business.<\/p>\n<p>You can ask for, and pay for, good SLAs &#8211; but <a href=\"http:\/\/www.informationweek.com\/news\/cloud-computing\/infrastructure\/229402054\">Amazon\u2019s major EC2 outage<\/a>  earlier this year showed that even the best providers can\u2019t meet their  SLA commitments. While Amazon did a lot of things right in handling and  recovering from that outage, it affected a lot of customers for too  long.<\/p>\n<p>3.    There\u2019s <a href=\"http:\/\/www.atlassian.com\/hosted\/security.jsp\">more to a secure online platform<\/a>  than using SSL and network firewalls and running in a good data center &#8211;  pretending otherwise is at best na\u00efve. As a customer, you need to be  confident in how the Cloud services provider designed and built the  software architecture and platform to protect the confidentiality and  integrity of your IP and data, in their multi-tenant partitioning scheme  and software security controls, and in their SDLC. Security  vulnerabilities in application code are a <a href=\"https:\/\/www.whitehatsec.com\/home\/news\/10pressarchives\/NR_042610survey.html\">serious source of risk to businesses on the Web<\/a>, and most companies still <a href=\"http:\/\/www.veracode.com\/reports\/index.html\">do a poor job of building apps in a secure way<\/a>.<\/p>\n<p><a href=\"https:\/\/www.dropbox.com\/features\">DropBox<\/a>, a Cloud-based document storage facility is an example of a platform that seemed to be secure and confidential, until somebody <a href=\"http:\/\/www.theregister.co.uk\/2011\/05\/16\/dropbox_ftc_not_good_enough\/\">started to look deeper into it<\/a>, and they continue to run into <a href=\"http:\/\/www.pcmag.com\/article2\/0,2817,2387343,00.asp\">problems with basic security issues<\/a>  Unfortunately, none of the hosted platforms provide any kind of  statement on their secure SDLC that I could find, on what steps they  take to ensure that the platform is designed and implemented safely.<\/p>\n<p>Testing in the Cloud, especially load testing for Web apps, looks to be a  no-brainer \u2013 the business case is too compelling to ignore. Many of the  other tools have a lot of promise: something like Atlassian\u2019s  end-to-end hosted studio would save a lot of time and trouble for a  small company, and the upfront cost savings are real.<\/p>\n<p>It comes  down to how much trust you can put into your Cloud provider and their  SLAs for availability and support, and whether in the end you can afford  to trust your core IP to somebody else. <a href=\"http:\/\/37signals.com\/\">37 Signals<\/a>, which builds and operates its own Cloud solutions for project management and document sharing, <a href=\"http:\/\/37signals.com\/svn\/posts\/1206-37signals-on-github\">doesn\u2019t think it is a good idea<\/a>:<\/p>\n<blockquote>\n<p>We  host all the source code for our applications internally for obvious  security reasons. That\u2019s not to say Github\u2019s private repository hosting  isn\u2019t a good option, especially if you want a hassle-free setup. It\u2019s  just not for us.<br \/>\nJH 22 Aug 08<\/p>\n<\/blockquote>\n<p>For some companies,  especially startups, IP embodied in their code is critically important \u2013  it may be all that they have. Ironically, it\u2019s these companies that are  most likely to use a Cloud platform like GitHub or Jira Studio or  BitBucket. Deciding whether to trust your future to the Cloud is not an  easy decision to make. But as the technology continues to get better,  it\u2019s a question that is worth asking.<\/p>\n<p><strong><i>Reference: <\/i><\/strong><a href=\"http:\/\/swreflections.blogspot.com\/2011\/07\/developing-and-testing-in-cloud.html\">Developing and Testing in the Cloud<\/a> from our <a href=\"http:\/\/www.javacodegeeks.com\/p\/jcg.html\">JCG partner<\/a> Jim Bird at the <a href=\"http:\/\/swreflections.blogspot.com\/\">Building Real Software blog<\/a>.<\/p>\n<div style=\"margin: 0px\"><strong><i>Related Articles :<\/i><\/strong><\/div>\n<ul>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2011\/06\/not-doing-code-reviews-whats-your.html\">Not doing Code Reviews? What\u2019s your excuse?<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2011\/07\/top-25-most-dangerous-software-errors.html\">Top 25 Most Dangerous Software Errors &#8211; 2011<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2011\/07\/most-powerful-jvm-language-available.html\">The Most Powerful JVM Language Available<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2011\/02\/selecting-new-programming-language-to.html\">Selecting a new programming language to learn<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>There\u2019s a lot of hype around \u201cthe Cloud\u201d and what it can do. One of the things that I am interested in is Cloud solutions that can help small software companies, and especially to kickstart software startups. Good tools that development teams can take advantage of to build and test their own stuff, without all &hellip;<\/p>\n","protected":false},"author":41,"featured_media":2386,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[210],"class_list":["post-475","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development","tag-cloud"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Developing and Testing in the Cloud - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"There\u2019s a lot of hype around \u201cthe Cloud\u201d and what it can do. One of the things that I am interested in is Cloud solutions that can help small software\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2011\/07\/developing-and-testing-in-cloud.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Developing and Testing in the Cloud - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"There\u2019s a lot of hype around \u201cthe Cloud\u201d and what it can do. One of the things that I am interested in is Cloud solutions that can help small software\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2011\/07\/developing-and-testing-in-cloud.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2011-07-11T21:44:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2012-10-21T20:00:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/software-development-2-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jim Bird\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jim Bird\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/developing-and-testing-in-cloud.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/developing-and-testing-in-cloud.html\"},\"author\":{\"name\":\"Jim Bird\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/3998192f3bf1e7750944bfa22630fdcc\"},\"headline\":\"Developing and Testing in the Cloud\",\"datePublished\":\"2011-07-11T21:44:00+00:00\",\"dateModified\":\"2012-10-21T20:00:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/developing-and-testing-in-cloud.html\"},\"wordCount\":2565,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/developing-and-testing-in-cloud.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/software-development-2-logo.jpg\",\"keywords\":[\"Cloud\"],\"articleSection\":[\"Software Development\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/developing-and-testing-in-cloud.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/developing-and-testing-in-cloud.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/developing-and-testing-in-cloud.html\",\"name\":\"Developing and Testing in the Cloud - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/developing-and-testing-in-cloud.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/developing-and-testing-in-cloud.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/software-development-2-logo.jpg\",\"datePublished\":\"2011-07-11T21:44:00+00:00\",\"dateModified\":\"2012-10-21T20:00:51+00:00\",\"description\":\"There\u2019s a lot of hype around \u201cthe Cloud\u201d and what it can do. One of the things that I am interested in is Cloud solutions that can help small software\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/developing-and-testing-in-cloud.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/developing-and-testing-in-cloud.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/developing-and-testing-in-cloud.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/software-development-2-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/software-development-2-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/07\\\/developing-and-testing-in-cloud.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Software Development\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/software-development\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Developing and Testing in the Cloud\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/3998192f3bf1e7750944bfa22630fdcc\",\"name\":\"Jim Bird\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/12045e36cd5c3c349d8d92a3cb2ced977bd13b8f800bf76e882767daff8aad3b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/12045e36cd5c3c349d8d92a3cb2ced977bd13b8f800bf76e882767daff8aad3b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/12045e36cd5c3c349d8d92a3cb2ced977bd13b8f800bf76e882767daff8aad3b?s=96&d=mm&r=g\",\"caption\":\"Jim Bird\"},\"description\":\"Jim is an experienced CTO, software development manager and project manager, who has worked on high-performance, high-reliability mission-critical systems for many years, as well as building software development tools. His current interests include scaling Lean and Agile software development methodologies, software security and software assurance.\",\"sameAs\":[\"http:\\\/\\\/swreflections.blogspot.com\\\/\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/Jim-Bird\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Developing and Testing in the Cloud - Java Code Geeks","description":"There\u2019s a lot of hype around \u201cthe Cloud\u201d and what it can do. One of the things that I am interested in is Cloud solutions that can help small software","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2011\/07\/developing-and-testing-in-cloud.html","og_locale":"en_US","og_type":"article","og_title":"Developing and Testing in the Cloud - Java Code Geeks","og_description":"There\u2019s a lot of hype around \u201cthe Cloud\u201d and what it can do. One of the things that I am interested in is Cloud solutions that can help small software","og_url":"https:\/\/www.javacodegeeks.com\/2011\/07\/developing-and-testing-in-cloud.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2011-07-11T21:44:00+00:00","article_modified_time":"2012-10-21T20:00:51+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/software-development-2-logo.jpg","type":"image\/jpeg"}],"author":"Jim Bird","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Jim Bird","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/developing-and-testing-in-cloud.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/developing-and-testing-in-cloud.html"},"author":{"name":"Jim Bird","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/3998192f3bf1e7750944bfa22630fdcc"},"headline":"Developing and Testing in the Cloud","datePublished":"2011-07-11T21:44:00+00:00","dateModified":"2012-10-21T20:00:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/developing-and-testing-in-cloud.html"},"wordCount":2565,"commentCount":0,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/developing-and-testing-in-cloud.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/software-development-2-logo.jpg","keywords":["Cloud"],"articleSection":["Software Development"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2011\/07\/developing-and-testing-in-cloud.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/developing-and-testing-in-cloud.html","url":"https:\/\/www.javacodegeeks.com\/2011\/07\/developing-and-testing-in-cloud.html","name":"Developing and Testing in the Cloud - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/developing-and-testing-in-cloud.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/developing-and-testing-in-cloud.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/software-development-2-logo.jpg","datePublished":"2011-07-11T21:44:00+00:00","dateModified":"2012-10-21T20:00:51+00:00","description":"There\u2019s a lot of hype around \u201cthe Cloud\u201d and what it can do. One of the things that I am interested in is Cloud solutions that can help small software","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/developing-and-testing-in-cloud.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2011\/07\/developing-and-testing-in-cloud.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/developing-and-testing-in-cloud.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/software-development-2-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/software-development-2-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2011\/07\/developing-and-testing-in-cloud.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Software Development","item":"https:\/\/www.javacodegeeks.com\/category\/software-development"},{"@type":"ListItem","position":3,"name":"Developing and Testing in the Cloud"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/3998192f3bf1e7750944bfa22630fdcc","name":"Jim Bird","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/12045e36cd5c3c349d8d92a3cb2ced977bd13b8f800bf76e882767daff8aad3b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/12045e36cd5c3c349d8d92a3cb2ced977bd13b8f800bf76e882767daff8aad3b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/12045e36cd5c3c349d8d92a3cb2ced977bd13b8f800bf76e882767daff8aad3b?s=96&d=mm&r=g","caption":"Jim Bird"},"description":"Jim is an experienced CTO, software development manager and project manager, who has worked on high-performance, high-reliability mission-critical systems for many years, as well as building software development tools. His current interests include scaling Lean and Agile software development methodologies, software security and software assurance.","sameAs":["http:\/\/swreflections.blogspot.com\/"],"url":"https:\/\/www.javacodegeeks.com\/author\/Jim-Bird"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/475","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=475"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/475\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/2386"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=475"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=475"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=475"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}