29. In summary
• Cloud API’s will help you scale
• Having your code in the cloud makes it
easier to access, collaborate and maintain
• Integration enables easy targetting of
platforms
My name is Ruben Daniels and I’ve been JavaScript developer since 1999.\nI’ve written the Ajax.org Platform, our open source UI and application framework that runs fully in the browser.\nI co-founded ajax.org in 2005, and since 2010 we are working on Cloud9 IDE. We have a team of 20 people worldwide with our main office in amsterdam and an office in San Francisco soon as well.\n\n\n
boe!\n
RUBEN\nFirst Lieke will explain more about the Cloud and why it is essential for developers to move to Cloud development\n\nThen I will give a live demo of Cloud9 IDE explaining the interface\nAnd then I will show how to build a Node.js Hello world application using Cloud9\n\nLastly we’ll talk about Collaboration and the challenges that live there in\n
LIEKE\nWe believe that all development will be in the Cloud. Lets step back and talk about this.\nYou might wonder, why will I be working in the Cloud?\n\nAnd, what is this thing we called ‘Cloud’ Anyway?\n\n\n
LIEKE\n- lets Look at cloud for a second\nThe cloud is the next step up from virtualization\nWith virtualization we could stop caring about hardware\nbut we still had to care about which operating system we ran\nhow to install and configure database software such as mysql\nand we are still aware of each and every server and we need to worry about how to scale them.\n\n
LIEKE\nThere appear to be 2 types of systems people call Cloud. Some call API’s on VM management systems cloud, which is closer to ‘infrastructure as a service’ . And systems where the layer moves up to API’s and those are usually called Platforms as a service\n\n- For me the promise of the cloud is that this integration moves up to the API level, which we then use to develop applications on top of. This means storage, database and computation. \n\nThis level of Cloud is still mostly a promise, although Google app engine and Heroku are quite far with this.\n\n
LIEKE\nLets make a perhaps unnecessary analogy of what cloud means: \nLets say that you have a box of books that you want to store, and retrieve. \nBefore virtualization you had to worry about building a shed, making sure the roof didn’t leak and the doors had locks. Now with virtualization the shed is a given, but you still need to manage the space inside, make sure there are shelves and you have to store things yourself. With cloud you get essentially a guy, or robot, you can give your box of books, he’ll go store it for you and when you ask for it he gets it back. It’s a basic analogy, but it shows the levels of pre-integration.\n\n
LIEKE\nWhat is the most useful feature of the cloud?\n
For one: SCALING\n
LIEKE\nImagine you are building a new social application.You start with a few users. You are running a normal VM at Amazon. Now suddenly, Justin Bieber tweets about your application and you get 8 million teenage girls trampling your server. \nWether this fits your business model or not is irrelevant, your server is toast. Now you have to scale your backend resources rapidly.\nWhat do you have to think about? \nYou have to fire up instances and a loadbalancer, but worst of al you have to figure out how to scale your code. Most applications with any social features or database cannot scale horizontally without significant engineering.\nIt’s a Nightmare, and not just because of Justin Bieber. \nBecause the cost of architecting and scaling your app before you know your app will get popular is too high.\n\n
LIEKE\nCloud infrastructure solves this problem with special cloud API’s specially architected for scaling.\nBy enabling this scalability out of the box, you can scale from 1 user to millions of users and down again.\nAnd this is without cost of pre-empting it, or the loss of failing when your webapp gets popular. \nIn short, the Cloud will save time and money and developers can focus on how to make their applications do more of what their users want. I guess we can agree that the Cloud is a good thing\n
RUBEN \nNow what will this mean for developing apps?\nCloud platforms come with SDK’s and you have to install this on your PC and hope that everything will be the same locally as it is online.\nLets give an example. Lets take App Engine, they have data base called Big Table, it lives in Googles Cloud. It is difficult for you to run big table on your local machine, the simulation is never perfect.\nIn the future we will be developing ON the cloud environment itself, where you don’t have any differences and you can test and debug immediately on the systems.\n
RUBEN\nOur vision with cloud9 is that the development environment does not have to live only on your own computer . It can live in the cloud too, just like any web app, with a seamless experience. \nYou would develop your application, run and debug it in the same environment that you will eventually deploy to.\n \nNow you don’t have to install an SDK and you can start right away, your test cycle is very short, you can just change the code and press run. And you can test against the real systems, not a mockup. That makes life for developers a lot better, a lot easier, and it saves you a lot of hassle. We are currently developing different cloud platform integrations for cloud9, you should be able to try this soon.\nBut there are more benefits to having your code and environment online.\n\n
LIEKE\nTake this scenario. You are a developer and joined a new company. \nA year ago they delivered a web app, and now a customer calls because they heard about the latest technologiea, and they want you to add support for it in their webapp.\nHowever for you to safely add this you need the entire development environment including \n- servers - databases - test scripts - and deployment\nall setup and ready for you to work with.\n\nYou now have to find your way into this system, talking to ops, finding server passwords, figure out the deployment procedures. \nSo basically before you have recreated what resembles a development environment you can use, without just ‘hacking live’, you have to spend ages figuring this out. \n\n\n\n\n
LIEKE:\n\nThis problem is a reality for many developers.\nImagine trying to add a new feature to such a project, or fixing a bug?\n\nNow imagine this: A developer environment in the Cloud was actually used to create the application.\nThe entire state of \n- tools\n- editors and \n- processes are now available by entering a url in a browser.\n\n\n
LIEKE \nYou as a developer can start immediately finding the point to \n- extend the app\n- and run the automated tests on a cloud-testfarm\n\nWhen you added a proper test for the new code and having passed the tests, you click the rollout button, and the customer is happy. And it makes you happy too, because you don’t spend time being a system admin, or repeating useless effort. Keeping entire developer environment for a project behind a url makes life a lot better. \n\n
RUBEN -- tell about ACE, how we got to work with Mozilla, and tell about Cloud9\n
LIEKE \nNow lets take a short look at collaboration\nThere are general Challenge of Collaboration\n\nIf you look at the world, you can see it is one big collaborative effort in itself. Buildings, governments, businesses... Everything is a collaboration and nature has shaped it in a particular way that is apparently efficient.\n\n\n
LIEKE\nLets take an example of kids making sandcastle.\nIf we need to do something simple such as making a big pile of sand, everybody can work freely with a common goal, and work in parallel optimally doing the same thing.\n\n\n\n\n
LIEKE\nNow after kids finish mountain of sand the dynamic changes.\nTasks will start to split up: one digs trench, other builds towers\nThe parallel collaboration turned into task separation\nWhen one kid starts interfering with work of another, usually someone will be crying very soon.\n\n\n
LIEKE\nI don't think he really hates sandcastles. Just that he cannot separate tasks properly with that other kid in the picture :) Now that is the difficulty about collaboration.\nI think Fundamentally, there is no single way of collaboration. Every task has different parameters, it even changes based what phase of the process you are in.\n\n\n
Ruben\nWith development everybody is already used to working with source control as a way of collaborating on software. This is a very remote way of collaborating, you each work on your own code and then you merge work at some point. However, there are many more possibilities for collaborating on software development.\nFor Cloud9, we are figuring out a way for developers to actively work together, whilst avoiding the frustrations\n\n
RUBEN \nHaving an IDE in Cloud opens up new ways of collaborating for development. For instance Interactive code-reviews, helping or training programmers, and sharing bits of code.\n\nWe will no longer have to rely on inventions like this for effective pair programming :) (chair)\n\nA new way of online collaboration can enhance the developer experience\n\n\n
LIEKELets say you have a remote team working on a project. With Cloud9 you have the ability to share your work environment. Lets look at the situation of our office. We have a couple of ppl spread around US and Europe our core team is in Amsterdam. Very often, someone has a problem. He has a bug, cant figure it out, a new piece of code needs to be built and this needs a lot of thought. Now it is handy to work together on that code. How do you do that?\n\n
LIEKE\nWith Cloud9 your entire project is online. Not just the code. Your runtime is there, your database is there, and its all behind a single Url. As u are used to with any other online service, With Cloud9 you can share the url of your developer environment with a colleague on the other side of the world. When u do that, you have to grant him permission (this is either read only or read write) and then he joins you in your project.  \n
Lieke\nWithin that project you will be able to communicate directly, chat, video and audio call. More importantly you can type together on the same code in collaborative way, more like how ppl work together on google, docs. Not only that. The person who got invited can actually run the code, click the debug button and run it in the system identical to yours, because it is YOUR system. That person doesn’t have to simulate your environment: ‘Works on my machine’, doesn’t exist anymore.\n
RUBEN\nIn summery:\n\n- Cloud API’s will help you scale\n- Having your code in the cloud makes it easier to access, collaborate and maintain\n- Integration enables easy targetting of platforms\n\nThat was a bit about the future,\nThank you for your attention,\nAnd join our growing community for ACE, Cloud9 IDE or use cloud9 online for your open source projects!.\n\n
That was a bit about the future,\nThank you for your attention,\n\nAnd join our growing community for ACE, Cloud9 IDE or use cloud9 online for your open source projects!.\n\n