Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
VirtualizationVirtualizationTechnologiesTechnologies
How to Supercharge your AgileDevelopment Team
Matthew G. Duvall, PMPJuly 14, 2015
About MeAbout MeGraduated as Accountantfrom Radford UniversityThis new thing called"Interconnected Networks"hit the scene (aka Internet)Masters in InformationTechnology from StevensonUniversityEmployed at UMMSin Finance, then transitionedto IT Professional in 2001
AgendaAgenda
Brief History of ComputingWhat is the cloud?Cloud Technologies:
Software StacksDevelopment MethodologiesManaging Agile Development TeamsFuture Trends
OpenStackOpenShift
Brief History of ComputingBrief History of Computing
... too far back
Main FramesMain FramesCentral Processing
"Dumb" Terminal
Processing
PC RevolutionPC RevolutionCentral Processing
Computer Terminal
Processing
Interconnected NetworksInterconnected Networks"The Internet"
The explosive growth of the internethas connected the computing
power of many devices across theglobe.
Increase in Computing PowerIncrease in Computing Power
1997 IBM Deep Blue 2015 Samsung GalaxyS6
versus
Increase in Computing PowerIncrease in Computing Power
1 Deep Blue = 11.38 GFLOPs
Exynos GPU = 302GFLOPs
=
Cloud ComputingCloud Computing
Cloud Resources
Computing Device
Processing
Text
Processing is moving into the "Cloud"
What is the cloud?What is the cloud?
Short Answer:
"Someoneelse's
computer."
Common Cloud ServicesCommon Cloud Services
Gmail
Common Cloud ServicesCommon Cloud Services
Gmail
Docs
Common Cloud ServicesCommon Cloud Services
Gmail
Docs Storage
Common Cloud ServicesCommon Cloud Services
Gmail
Docs Storage Dev
Categories of Cloud ServicesCategories of Cloud Services
Infrastructure as a Service (IaaS)Infrastructure as a Service (IaaS)Provides multiple "virtualmachines" (VMs) from asingle piece or collectionof hardware (bare metal).VMs can be differentoperating systems(Windows, Linux) runningon same hardware.Average 4 to 1 ratiodepending on applicationof VM. ( 1 CPU core = 4virtual CPUs)Commercial: FOSS:
VMWareOpenStack
Platform as a Service (PaaS)Platform as a Service (PaaS)Provides a platform allowingcustomers to develop, run andmanage web applications.Can run on top of IaaS solutions.Creates "gears" or slices ofcomputing resources.Developers can add "Cartridges" suchas databases and programminglanguages.
OpenShift
Platform as a Service (PaaS)Platform as a Service (PaaS)
Software as a Service (SaaS)Software as a Service (SaaS)SaaS is software licensed on asubscription base and is centrallyhosted by a provider.Also known as on-demandsoftware.Most everyday consumableinternet services are SaaS, suchas e-mail and collaborationsoftware.Microsoft Office365 and AdobeCreative Cloud license anddistribute centrally but youdownload software to computer.
Software StacksSoftware StacksSoftware stacks are
'layers' of software thatwhen combined together
provide a service.
Popular Example: LAMPLinuxApacheTomcat WebserverMySQLPHP Programming Language
Software StacksSoftware StacksPopular and fastest growing stack: MEAN Stack
The Rise of AngularThe Rise of AngularJavaScript web frameworksupported by GoogleAllows creation of SPAs (SinglePage Applications)
Example of SpeedExample of SpeedCreated a Poll Application
Create a new PollCreate one to many questionsOpen for a certain time periodUsers can only answer onceEmail the poll URLMetrics on Poll results
Results:Created a Node / MongoDB Gear in OpenShiftUsed the MEAN StackWrote basic CRUD (create, read update, delete) operationsUsed D3.js library for chartsBack for review with customer in 128 minutes!
Development MethodologiesDevelopment Methodologies
Agile DevelopmentAgile DevelopmentProduct Planningderived frombacklog ofapproved features
Sprints rangefrom 2 - 4 weeksmaxStable'production ready'product at theend of sprint
Also helps to have an Agile customer!
A winning combination!A winning combination!
+ +
=Happy
Customer
Managing Agile TeamsManaging Agile Teams
image: eremedia.com "Office Space"
Start with an "AgileCustomer", explain thebenefits of iterativedevelopment.Use some type of 'ticketmanagement' tool toorganize Sprints:
TrelloGitHubAtlassian JIRA
Managing Agile TeamsManaging Agile Teams
image: eremedia.com "Office Space"
Set team rules andprocedures, such as:
code structurebranching methodologycheckin frequency
Git Branching MethodGit Branching Method
http://nvie.com/posts/a-successful-git-branching-model/
Small teams from 1 -3developers can usually staywithin a development branchwithout code merge issues.More than 3 developers on ateam and branches should bebroken down into featuresand merged into adevelopment branch.
Peer Testing and VerificationPeer Testing and Verification
image: eremedia.com "Office Space"
It is important to build in timefor test creation into theSprint.Also make sure to create peertests
Developer codes featureDeveloper writes tests forfeaturePeer review featurerequirements and re-runstests or creates new tests
Angular Testing:
- automatically run tests
- end to end testing
Karma
Jasmine
Future TrendsFuture Trends
is a 'shippingcontainer' system for
code.
Docker
Web Components: by GooglePolymer Project
Angular 2.0
Don't let the 'Cloud' rain onDon't let the 'Cloud' rain onyour parade!your parade!
Become a Cloud ServicesBecome a Cloud ServicesSuper Hero!Super Hero!
image: www.viola-notes.com