integrating rightscale, windows, and .net for fun and profit - rightscale compute 2013
Embed Size (px)
TRANSCRIPT

april25-26
sanfrancisco
cloud success starts here
Integrating RightScale, Windows and
.net for Fun and ProfitGordon Bailey, Director of Technology/IT | Koupon Media
Patrick Moore, Director of Operations | Koupon Media
Patrick McClory, Solutions Architect | RightScale

#2#2
#RightscaleCompute
Agenda
• API 1.5 Overview
• RightScale.netClient Intro and Overview
• Demos…
• MSBuild and Dev/Test in the cloud
• Advanced PowerShell Management with RightScale + API 1.5
• PHB Demo
• Insight from KouponMedia

#3#3
#RightscaleCompute
RightScale API 1.5
• REST API with JSON and XML response types
• RightScale core functionality exposed
• http://reference.rightscale.com/api1.5/index.html

#4#4
#RightscaleCompute
Mapping REST to .net

#5#5
#RightscaleCompute
RightScale.netClient Overview
• Generic wrapper for the RightScale API 1.5 toolset
• Media Types = Classes/Object Model
• Resources = Static methods per class
• A couple of assumptions made:
• Generally, resources map to media types 1:1
• For Resources with multiple urls, more descriptive names are better:• Instance.index() and Instance.index_ServerArray(serverArrayId)

#6
#RightscaleCompute
Demo – Dev/Test with MSBuild
TFS + Windows Azure + RightScale

#7#7
#RightscaleCompute
Use Case/Scenario
• We‘re running a .net shop using Team Foundation Services
2012 (TFS) for source control
• Standard web application being developed
• We‘ll use the Mileage Stats demo app
• Slightly modified to use Microsoft SQL Server instead of SQL CE
• DB Backups and scripts available for download
• Application is nearing time to be released to production
• Ability to test in multiple environments rapidly is critical
• Build from local consistently with how production builds are
created

#8#8
#RightscaleCompute
General SDLC Workflow
Shameless plug… check out my SDLC/ALM blog post!

#9
#RightscaleCompute
Dev/Test with MSBuild
Demo

#10#10
#RightscaleCompute
Organizing your build with MSBuild

#11
#RightscaleCompute
Dev/Test with MSBuild
Demo

#12#12
#RightscaleCompute
Resources
• Source code for reference app in github
• Team Foundation Server or another MSBuild orchestration
utility like CruiseControl.net or TeamCity
• Web Deploy 3.0 installed on all machines packaging builds
• RightScale Support page on MSDeploy
• Some more detail in another blog post

#13
#RightscaleCompute
Demo – Advanced PowerShell
ManagementPowerShell + RightScale

#14#14
#RightscaleCompute
Use Case/Scenario
• Familiar platform for Windows Sysadmins
• Leverage RightScale within other automation processes already
scripted
• Manage our Dev/Test Environments from the MSBuild Demo
• On the way out the door—let‘s make sure we tear the instances down
• Build a scheduled task to stand them up again in the morning with the
latest stable build

#15#15
#RightscaleCompute
Using PowerShell to build the environment

#16
#RightscaleCompute
PowerShell + RightScale API 1.5
Environment Tear-Down Demo

#17#17
#RightscaleCompute
Resources
• Cmdlet code is in Github
• Also builds a package as a part of the post-build events on the
RightScale.netClient solution
• PowerShell API direct call examples on support.rightscale.com
• Will give you examples from curl, PowerShell and sometimes the
RightAPIClient ruby gem
• Other PowerShell references
• ss64.com/ps
• http://www.microsoft.com/en-us/download/details.aspx?id=7097
• http://www.jonoble.com/blog/2011/12/12/powershell-quick-reference-
guides-and-cheat-sheets.html

#18
#RightscaleCompute
PHB DemoNetduino + RightScale + Windows Azure
(among others)

#19#19
#RightscaleCompute
Use Case/Scenario
• Disclaimer: this is not a serious demo
• Let‘s explore a bit of what‘s possible now that we have a
common hook within the .net Framework (v4.5)
• Taking a little inspiration from ‗Wally‘:
• Let‘s figure out the craziest way to enable laziness
• Need to not loose our jobs either—we‘ve got to get some work done
• Goal: Whenever the boss is on the way, let‘s do something that looks
impressive

#20#20
#RightscaleCompute
Patrick‘s Desk Situation

#21#21
#RightscaleCompute
Really going out of our way to ‗not work‘
• We‘ve built a motion detector using a netduino and a few other
parts:
• Netduino Plus 1
• HC-SR04 Ultrasonic Distance Sensor
• Microtivity IM 161 LCD display
• HC-SR501 Human Sensor Module
• Wireless network bridge
• Some code to make it work
• A .net Micro Framework console app to drive the sensors and logic
• Netduino SDK 4.2.2
• Netduino Plus 1 Firmware Upgrade to 4.2.0
• A small service application to take input and do that ‗something‘ we need
to be doing (i.e. launching a 3-tier stack for a developer)

#22#22
#RightscaleCompute
When triggered…

#23
#RightscaleCompute
PHB Demo
Demo

#24#24
#RightscaleCompute
Resources
• Demo code on github
• Hardware as listed earlier
• A patient boss (while you work out the glitches)

#25
#RightscaleCompute
Koupon Media
How we‘ve grown with RightScale

#26#26
#RightscaleCompute
Operations Maturity
• PAST – where we came from
• Too long, too many doing too little, too much• Time
• Servers
• Cost
• PRESENT – what we realized
• Do more with less• Small company embracing cloud, mobility, and social solutions
• Scalable solution
• Easier, Efficient, Faster
• FUTURE – how we can get better
• Visibility for all
• Never enough mentality

#27#27
#RightscaleCompute
RS Professional Experience
• Learning to ride a bike for the first time
• Training wheels, helmet, knee pads, elbow pads
• Confidence comes from within…. AND those teaching us
• Deployments, templates, scripts oh my!
• ―Give a man a fish and you feed him for a day. Teach a man to fish and
you feed him for a lifetime.‖
• Not just a face in the crowd
• Personal, day-to-day service
• ―People work with people they like‖• http://www.rightscale.com/about_us/top-ten-myths-about-working-at-rightscale.php

#28#28
#RightscaleCompute
Factual Results: time & money
• Actual results of all the who-ha
• How much was our time worth?
• Connecting time & money
• Realizing where you need to adjust in order to grow
• Spending what you need to not what you think you need to

#29#29
#RightscaleCompute
Factual Results: time & money
• Time: sometimes the easy way is the Right way
• PAST: 2-3 hours• Manual
• Tedious
• Human error
• PRESENT: 45 mins – 1 hour• 4 steps
• Consistent
• FUTURE: 25 mins flat (our new PR goal)• Quick, easy, efficient

#30#30
#RightscaleCompute
Factual Results: time & money
• Cost: cutting branches off the money tree
• PAST: X servers costing $x.xx / month• Not utilizing full to even quarter of server capability
• Not utilizing all of an already paid for service
• PRESENT: Y servers cost = X servers cost• Fully customizable templates, scripts, servers
• Utilizing more and more of a server / service
• MSDN - Scheduler
• FUTURE: • Not taking the shortcuts but understanding what we need compared to what we want

#31#31
#RightscaleCompute
Contact Info
• Gordon Bailey• [email protected]
• Patrick Moore• [email protected]
• Patrick McClory – Solutions Architect• [email protected]
• @patrickmcclory
• http://www.linkedin.com/in/patrickmcclory
• https://github.com/patrickmcclory/

april25-26
sanfrancisco
cloud success starts here
Questions?

april25-26
sanfrancisco
cloud success starts here
Reference Slides

#34#34
#RightscaleCompute
RightScale.netClient status
• Still in Alpha – not feature
complete/parity with API 1.5 – 14
Resources to complete
• Demo-ready, feedback welcome, but
not production complete as of yet
• Published on nuget and available on
github
• Lots of functional tests for existing work
within a unit test project – dependent
on some specific setup, but designed
to test functionality

#35#35
#RightscaleCompute
VolumeTypes.show(:cloudid, :id)

#36#36
#RightscaleCompute
RightScale.netClient Design/Architecture

#37#37
#RightscaleCompute
Class Design
• Generic RightScaleObjectBase<T>
• Derived base class for
taggable objects
• Will likely expand as
development continues to
manage globally used
concepts
• Tags
• Actions
• Other property-level items
Base Class Management
• Centralized logic for all API
calls
• Cached authentication
mechanism for all calls
within the same application
scope
• One and done
Singleton for Web Client

#38#38
#RightscaleCompute
RightScale.netClient.Base Classes
• RightScaleObjectBase<T> handles generic
properties and actions
• Type parameter is required to manage serialization and
deserialization of JSON objects
• Handles single and list deserialization
• Centralized place to parse and manage links collection
• TaggableResourceBase<T>• For objects that are able to receive tags—separate base
class derived from RightScaleObjectBase<T>

#39#39
#RightscaleCompute
RightScale.netClient.Core.APIClient
• Single point of interaction for all HTTP methods
• Handles username/password/account number or
OAuth authentication for API 1.5
• Automatically authenticates if not already
authenticated
• Auth information can be sored in
app.config/machine.config under specific keys
Singleton Implementation for API Caller

#40#40
#RightscaleCompute
PHB Detector