Cloud9 Revisited

It’s been said that a craftsman is only as good as their tools. For developers, DevOps engineers, and SREs the most relied upon tool is the IDE. An IDE, or Integrated Development Environment , is an editor where code is written and sometimes executed. IDEs often include syntax checkers, testing and debugging features, and maybe even code formatting capabilities. Sometimes a specific programming language will ship with an IDE. This was the case back in the day with languages such as GW Basic, Borland’s Turbo Pascal, and Microsoft’s Visual Basic. AWS’s Cloud9 is an editor I thought I’d look into a little closer.

CoreyQuin_quote_Cloud9_Blog.png

The question of AWS’s Cloud9 and it’s relevance recently came up in a Twitter comment posted by Corey Quinn. The current champ as far a IDE’s are concerned is Microsoft’s Visual Studio Code. VS Code has gained a large fan base since it debuted. There’s a massive ecosystem of plug-ins, and no shortage of tutorials. I’ve written about it multiple times on this blog. Cloud9, on the other hand, has not had the same fortune. This is somewhat surprising given the massive influence AWS has in Cloud computing. Though it’s possible that Cloud9 hasn’t gained much ground because AWS’ suite of continuous integration / continuous deployment (CI/CD) tools. While the tools are fine, they have yet to win mind share from competitors such as Jenkins, GitLab, and GitHub.

It’s also entirely possible that part of the adoption issue is due to an unclear pricing scheme. It’s free, however, there are fees for resources used. One of the deployment options leverages an EC2 instance that’s managed by Cloud9. The cost of the EC2 instance is paid by the user. There are other options listed on the deployment page, but I can’t seem to find any that are 100% free of charges related to AWS services. The rabbit hole of “what does it cost” could take more time to figure out than creating the environment. Cloud9 isn’t as simple as it should be.

Cloud9_Options.png

In a world where one presses a “download” link and gets to typing, it’s odd to have to walk through a series of “what-if” scenarios before you can begin. The options are based on who or what will supply the source code. It’s a strange question given that fact that most people installing an IDE are planning to supply the code themselves using the IDE. Nevertheless, there are paths based on use of Amazon Lightsail, CodePipeline, CodeCommit, CodeStar, and/or GitHub. There’s also a separate set of instructions if you’re an educational user such as a teacher or a student. It’s unclear what you do if use one or more of the technologies. Maybe I have some apps in Lightsail, but others that aren’t which use CodePipeline attached to a CodeCommit repository. There are multiple combinations here, but none of that should matter if I just want an intelligent text editor.

The choices don’t get much better from there. The instructions for an EC2 environment setup require a potential user know more than an average amount about their AWS setup. For example, it asks if you want an no-ingress EC2 instance which is managed via AWS Systems Manager. Choosing this then leads you to a message that states, “For a no-ingress EC2 instance, attach an internet gateway to your new VPC so the instance’s SSM Agent can connect to Systems Manager.” If all I want is a code editor, why do I need to create a separate VPC, an internet gateway, and have Systems Manager? All of these services add up. And while there are other options that don’t require setting up a VPC and Internet Gateway, it’s mind-boggling that such an option even exists in the normal documentation. Maybe I could understand if it were in some form of advanced deployment scenario doc, but it’s there alongside other directions.

In the end, it is almost irrelevant if Cloud9 is a great IDE. There’s a pretty heavy lift just getting past the docs to figure out how to deploy it. Couple that with the math around the possible services, and it’s a possible non-starter. The fact that there are some options that might not even be realistic for devs unless they have a high level of permissions associated with their AWS account is another strike against it.

I’d like to hear from folks who use Cloud9 in Enterprise environments. There aren’t too many places I know of where this would fly with management. That said, I’m very curious to know who’s using and why.