Programming with the OSS ‘Cloud Stack’ Mike Amundsen Principal API Architect Layer 7 Technologies @mamund 1 1
Preliminaries Mike Amundsen Web Architect, Author, Presenter Software Explorer Principal API Architect, Layer 7 Technologies 2 2
Last Project Building Hypermedia APIs w/ HTML5 & Node (November 2011) Methodology for writing/maintaining business-level APIs in the cloud. Real solutions for real use-cases. Three Servers, Six Clients, 200+ pages. 3 3
Next Project Programming the Web w/ HTML5 & Node (November 2012?) User’s Manual for Cloud-based developers. I put myself on a six month diet of Chromebook-only development Design, code, source control, collaborate, test, & deploy All from the Chromebook, all to the cloud. 4 4
Goals today – “the ‘future’ of programming” Define some terms - Open source, cloud stack, etc. Explore “cloud programming” - Standards, lifecycle, etc. View sample products available today - Coding, testing, data, deployment, etc. 5 5
Tooling… 6 6
For the cloud! 7 7
Where is this coming from? 8 8
Start-up experience Reducing operational costs/barriers 9 9
Small biz experience Maintaining agility/flexibility 10 10
“Mobile - ism” Availability anywhere/anytime 11 11
“Hipster - ism” Keeping up w/ the cool kids 12 12
Where is this coming from? Start-up experience - Reducing operational costs/barriers Small Biz experience - Maintaining agility/flexibility Mobil-ism - Availability anywhere/anytime “Hipster - ism” - Keeping up w/ cool new toys 13 13
Let’s look into “the future” 14 14
First some definitions… 15 15
Open Source “ Open source is a philosophy or pragmatic methodology that promotes free redistribution and access to an end product's design and implementation details .” - Wikipedia 16 16
Cloud “ Cloud computing is a metaphor used by Technology or IT Services companies for the delivery of computing requirements as a service to a heterogeneous community of end- recipients.” – Wikipedia 17 17
Stack “ In computing, a solution stack is a set of software subsystems or components needed to deliver a fully functional solution , e.g. a product or service.” – Wikipedia 18 18
Open Source Cloud Stack Free distribution and access to … computing requirements as a service … to deliver a fully functional solution. 19 19
And the functional solution is… 20 20
Programming “ Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs .” – Wikipedia 21 21
Let’s also throw in… 22 22
Data “ Data as a service is based on the concept that the data can be provided on demand to the user regardless of geographic or organizational separation of provider and consumer.” - Wikipedia 23 23
Version Control “A distributed version control system (DVCS) keeps track of software revisions and allows many developers to work on a given project without necessarily being connected to a common network .” – Wikipedia 24 24
Deployment “ Software deployment is all of the activities that make a software system available for use.” – Wikipedia 25 25
So So, in a nut n a nutshe shell ll we want nt … 26 26
The following open source services Data Programming Version Control Debugging/Testing Deployment 27 27
But from a browser; 28 28
But from a browser; cuz it’s 2012, dude! 29 29
Let’s write some code… 30 30
Let’s write some code… 31 31
Programming w/ Cloud9IDE 32 32
Create a Project 33 33
Open for Editing 34 34
Code a simple Web server 35 35
Fire up a VM for debugging 36 36
Run instance in your browser 37 37
Set breakpoints, inspect vals, etc. 38 38
Let’s manage some data… 39 39
Data w/ CouchDB 40 40
Create a Database 41 41
User Documents 42 42
Message Documents 43 43
Searches and Queries 44 44
Code DB calls from C9 Editor 45 45
Test results in your VM 46 46
Let’s control some versions… 47 47
Version Control w/ Github 48 48
Use git client from C9 editor 49 49
Add source files and commit 50 50
Push to github to share 51 51
Call your friends; lets’ code! 52 52
Let’s do some testing… 53 53
Testing w/ SauceLabs/Selenium 54 54
Let’s deploy some servers… 55 55
Deployment w/ Heroku 56 56
Select Deploy from C9 editor 57 57
Select target servers 58 58
Add a new deployment project 59 59
Validate deployment 60 60
Soak in the devops goodness. 61 61
So, in a nutshell, we got… 62 62
The following open source services Programming Cloud9IDE – http://c9.io Data CoudchDB – http://cloudant.com Version Control git – http://github.com Debugging/Testing selenium – http://saucelabs.com Deployment heroku.com 63 63
All from a browser; 64 64
All from a browser; cuz it’s the future, dude! 65 65
Bottom Line… Programming the Cloud while ON the Cloud is here already. There are lots of cloud services available; most free to start. Many offerings are OSS – you can install and run your own! It took me a while to adjust, but soon I preferred it. But there’s one big caveat…. 66 66
67 67
My advice is to jump right on in, the water is fine. 68 68
Programming with the OSS ‘Cloud Stack’ Mike Amundsen Principal API Architect Layer 7 Technologies @mamund 69 69
Recommend
More recommend