How To Develop Software Using Only SaaS
The world is fast moving to Software-as-a-Service (SaaS) and we developers are busy learning how to build SaaS applications.
We can now finally do that using nothing but SaaS applications ourselves.
The Developer’s Toolbox
As developers, we don’t ask for much.
An Integrated Development Environment (IDE) lets us do our main task: writing code. A Source Code Management (SCM) system stores our Heartbreaking Work of Staggering Genius. A Continuous Integration (CI) server pulls our code through hoops that prove it is ready for use. And finally a Platform-as-a-Service (PaaS) or other deployment environment runs our applications.
We are used to running all of these on premises. IDEs like Eclipse or IntelliJ run on our local machines. SCMs like Git or Subversion run on some company server, as does our Jenkins/Hudson or TeamCity CI server. Finally, we deploy to a Paas like CloudFoundry, or to a custom server.
Most of those tools already run in the cloud. For those that don’t, we can easily find good alternatives. Let’s take a look at some of the candidates.
Integrated Development Environments
I’ve written about Cloud9 before. It’s mainly focused on web languages like JavaScript. For Java, Codenvy seems a better choice. For both, you can run the hosted offering, or deploy it in your own data center.
Neither can match a local IDE experience yet, but the gap is closing. On the other hand, they offer some functionality you won’t easily find in locally installed IDEs, like remote pair programming.
Source Code Management
Git has taken over the world, and the SaaS version of it, GitHub, is following suit.
Some people even think that your GitHub profile is your resume.
Again, you can use the hosted version (with public or private repositories), or install GitHub in your data center.
Both Cloud9 and Codenvy work seamlessly with GitHub repositories.
Continuous Integration
Jenkins/Hudson is the leader in this space, and CloudBees offers a SaaS version. Other products include Bamboo, Travis CI and CodeShip. Some of these are free for open source projects. Again, there are hosted and on premises versions.
The CI tools support GitHub through public SSH keys for access and commit hooks for starting jobs.
Platform-as-a-Service
After GitHub, these are probably the most familiar to you: Pivotal CloudFoundry, Heroku, Google App Engine, and Azure. CloudFoundry is backed by many big organizations (including the company I work for, EMC) and seems to be emerging as the leader.
Some cloud IDEs let you push to a PaaS directly, but I don’t think that’s the right way to do it.
You should commit to your SCM and let CI pick up your changes.
Your CI jobs should be responsible for pushing to the PaaS. Your CI may have a custom integration to your PaaS, or you may have to use something like the CloudFoundry command-line interface to push your changes.
Conclusion
It seems that our entire tool chain is now available as a service, although the IDEs still leave us wanting a bit. Most of these tools are available as open source and can be deployed in your own data center.
Looks like we’re making some progress towards a Frictionless Development Environment!
What SaaS applications are you using for software development? Please leave a comment below.
Reference: | How To Develop Software Using Only SaaS from our JCG partner Remon Sinnema at the Secure Software Development blog. |
This sure sounded great, so I thought I would start exploring the idea.
Since I’m interested in Java, I clicked on the code envy link.
From their web page they claim
“Developers command our no-thrashing, no-blocking Docker microservices to build, run and deploy from anywhere. Sharing environments easily.”
So I click on the java spring trial and get the familiar “your browser is not supported, you must install …”
Really !?!? The latest Internet Explorer won’t work ?
Installing new browsers is not an option in my company, IT has us locked down.
Guess I’ll just stick with IntelliJ.
Hi Eddie,
IE has caused us some issues in the past which is why it’s not currently supported. However, you can still take advantage of Codenvy’s build, run and debug SaaS environments from work:
1. Use our CLI () to execute commands against projects in Codenvy. You can see a 100% CLI demo here:
2. Install Codenvy behind your firewall as a single server instance or a full private development cloud ()
We’d love a chance to talk more about how we can help – you can tweet to me @BradMicklea
Brad