Programming with the OSS Cloud Stack Mike Amundsen Principal API - - PowerPoint PPT Presentation

programming with the oss cloud stack
SMART_READER_LITE
LIVE PREVIEW

Programming with the OSS Cloud Stack Mike Amundsen Principal API - - PowerPoint PPT Presentation

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,


slide-1
SLIDE 1

1 1

Programming with the OSS ‘Cloud Stack’

  • Mike Amundsen

Principal API Architect Layer 7 Technologies

  • @mamund
slide-2
SLIDE 2

2 2

  • Mike Amundsen
  • Web Architect, Author, Presenter
  • Software Explorer
  • Principal API Architect, Layer 7 Technologies

Preliminaries

slide-3
SLIDE 3

3 3

  • 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.

Last Project

slide-4
SLIDE 4

4 4

  • 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.

Next Project

slide-5
SLIDE 5

5 5

  • Define some terms
  • Open source, cloud stack, etc.
  • Explore “cloud programming”
  • Standards, lifecycle, etc.
  • View sample products available today
  • Coding, testing, data, deployment, etc.

Goals today – “the ‘future’ of programming”

slide-6
SLIDE 6

6 6

Tooling…

slide-7
SLIDE 7

7 7

For the cloud!

slide-8
SLIDE 8

8 8

Where is this coming from?

slide-9
SLIDE 9

9 9

Reducing operational costs/barriers

Start-up experience

slide-10
SLIDE 10

10 10

Maintaining agility/flexibility

Small biz experience

slide-11
SLIDE 11

11 11

Availability anywhere/anytime

“Mobile-ism”

slide-12
SLIDE 12

12 12

Keeping up w/ the cool kids

“Hipster-ism”

slide-13
SLIDE 13

13 13

  • 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

Where is this coming from?

slide-14
SLIDE 14

14 14

Let’s look into “the future”

slide-15
SLIDE 15

15 15

First some definitions…

slide-16
SLIDE 16

16 16

  • “Open source is a philosophy or pragmatic

methodology that promotes free redistribution and access to an end product's design and implementation details.” - Wikipedia

Open Source

slide-17
SLIDE 17

17 17

  • “Cloud computing is a metaphor used by

Technology or IT Services companies for the delivery

  • f computing requirements as a service to a

heterogeneous community of end-recipients.” – Wikipedia

Cloud

slide-18
SLIDE 18

18 18

  • “In computing, a solution stack is a set
  • f software subsystems or components needed to

deliver a fully functional solution, e.g. a product or service.” – Wikipedia

Stack

slide-19
SLIDE 19

19 19

Open Source Cloud Stack

  • Free distribution and access to …

computing requirements as a service … to deliver a fully functional solution.

slide-20
SLIDE 20

20 20

And the functional solution is…

slide-21
SLIDE 21

21 21

  • “Computer programming is the process
  • f designing, writing, testing, debugging, and

maintaining the source code of computer programs.” – Wikipedia

Programming

slide-22
SLIDE 22

22 22

Let’s also throw in…

slide-23
SLIDE 23

23 23

  • “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

  • f provider and consumer.” - Wikipedia

Data

slide-24
SLIDE 24

24 24

  • “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

Version Control

slide-25
SLIDE 25

25 25

  • “Software deployment is all of the activities that

make a software system available for use.” – Wikipedia

Deployment

slide-26
SLIDE 26

26 26

So So, in a nut n a nutshe shell ll we want nt…

slide-27
SLIDE 27

27 27

The following open source services

  • Data
  • Programming
  • Version Control
  • Debugging/Testing
  • Deployment
slide-28
SLIDE 28

28 28

But from a browser;

slide-29
SLIDE 29

29 29

But from a browser; cuz it’s 2012, dude!

slide-30
SLIDE 30

30 30

Let’s write some code…

slide-31
SLIDE 31

31 31

Let’s write some code…

slide-32
SLIDE 32

32 32

Programming w/ Cloud9IDE

slide-33
SLIDE 33

33 33

Create a Project

slide-34
SLIDE 34

34 34

Open for Editing

slide-35
SLIDE 35

35 35

Code a simple Web server

slide-36
SLIDE 36

36 36

Fire up a VM for debugging

slide-37
SLIDE 37

37 37

Run instance in your browser

slide-38
SLIDE 38

38 38

Set breakpoints, inspect vals, etc.

slide-39
SLIDE 39

39 39

Let’s manage some data…

slide-40
SLIDE 40

40 40

Data w/ CouchDB

slide-41
SLIDE 41

41 41

Create a Database

slide-42
SLIDE 42

42 42

User Documents

slide-43
SLIDE 43

43 43

Message Documents

slide-44
SLIDE 44

44 44

Searches and Queries

slide-45
SLIDE 45

45 45

Code DB calls from C9 Editor

slide-46
SLIDE 46

46 46

Test results in your VM

slide-47
SLIDE 47

47 47

Let’s control some versions…

slide-48
SLIDE 48

48 48

Version Control w/ Github

slide-49
SLIDE 49

49 49

Use git client from C9 editor

slide-50
SLIDE 50

50 50

Add source files and commit

slide-51
SLIDE 51

51 51

Push to github to share

slide-52
SLIDE 52

52 52

Call your friends; lets’ code!

slide-53
SLIDE 53

53 53

Let’s do some testing…

slide-54
SLIDE 54

54 54

Testing w/ SauceLabs/Selenium

slide-55
SLIDE 55

55 55

Let’s deploy some servers…

slide-56
SLIDE 56

56 56

Deployment w/ Heroku

slide-57
SLIDE 57

57 57

Select Deploy from C9 editor

slide-58
SLIDE 58

58 58

Select target servers

slide-59
SLIDE 59

59 59

Add a new deployment project

slide-60
SLIDE 60

60 60

Validate deployment

slide-61
SLIDE 61

61 61

Soak in the devops goodness.

slide-62
SLIDE 62

62 62

So, in a nutshell, we got…

slide-63
SLIDE 63

63 63

  • 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

The following open source services

slide-64
SLIDE 64

64 64

All from a browser;

slide-65
SLIDE 65

65 65

All from a browser; cuz it’s the future, dude!

slide-66
SLIDE 66

66 66

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….
slide-67
SLIDE 67

67 67

slide-68
SLIDE 68

68 68

My advice is to jump right on in, the water is fine.

slide-69
SLIDE 69

69 69

Programming with the OSS ‘Cloud Stack’

  • Mike Amundsen

Principal API Architect Layer 7 Technologies

  • @mamund