application considerations for cloud

13
© 2015 IBM Corporation IBM CLOUD Cloud Considerations Kyle Brown Distinguished Engineer IBM Cloud Lab Services [email protected] 07/14/15

Upload: kyle-brown

Post on 15-Aug-2015

69 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Application Considerations for Cloud

© 2015 IBM Corporation

IBM CLOUD

Cloud Considerations

Kyle BrownDistinguished EngineerIBM Cloud Lab [email protected]

07/14/15

Page 2: Application Considerations for Cloud

IBM CLOUD

© 2015 IBM Corporation2

Agenda

What is Cloud Computing? What does IaaS and PaaS provide?

Why would I move to cloud?

What does this mean to my applications?

What does it mean to me?

Page 3: Application Considerations for Cloud

IBM CLOUD

© 2015 IBM Corporation3

What is Cloud Computing?

“The National Institute of Standards and Technology (NIST) defines cloud computing as a "pay-per-use model for enabling available, convenient and on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction."

April 2009

Page 4: Application Considerations for Cloud

IBM CLOUD

© 2015 IBM Corporation4

Cloud Computing Basics

Cloud computing is based on “pay as you go” access to “unlimited” remote data center capabilities–A cloud infrastructure provides a framework to manage

scalable, reliable, on-demand access to resources

Some common terms that you hear associated with Cloud–Self-Service – meaning that developers get access to the

resources when they need them–Automatically Scalable – you can get more compute

power the minute you need it – not by ordering it months before…

–DevOps – A different way of dividing the work between development and operations team; breaking down barriers

Page 5: Application Considerations for Cloud

IBM CLOUD

© 2015 IBM Corporation5

Infrastructure as a Service

NIST Definition: The capability to provision processing, storage, networks, and other computing resources, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure.

It’s the ability to get access to a “virtual” copy of one or more fully-featured computers where you can install whatever you want.

– Often paired with a particular virtualization technology

– May be provided by a standardized open-source project like OpenStack

IBM offerings– Softlayer– IBM Cloud Orchestrator– CMS (which includes management)– PureApplication (which goes beyond just

IaaS)

Code

Data

Runtime

Middleware

OS

Virtualization

Servers

Storage

Networking

Page 6: Application Considerations for Cloud

IBM CLOUD

© 2015 IBM Corporation6

Platform as a Service

NIST Definition: The capability to deploy onto the cloud infrastructure custom applications created using programming languages, services, and tools supported by the provider. The consumer does not manage the underlying cloud infrastructure but has control over the deployed applications and configuration settings for the application-hosting environment.

The major difference from IaaS is that the details of how the middleware and runtimes are provided is hidden from the developer – they just provide their runnable code and it works!

– Different PaaS’s use different tool sets– Often provided by a particular Open Source project like

Cloud Foundry

IBM Offerings– Bluemix (Public, Dedicated and Local)

Code

Data

Runtime

Middleware

OS

Virtualization

Servers

Storage

Networking

Page 7: Application Considerations for Cloud

IBM CLOUD

© 2015 IBM Corporation7

Why would you make the switch?

Mobile development almost demands that you move to cloud– The concepts of Microservices architectures, Responsive Design, DevOps, are all

common in the Mobile application development space – as are the latest runtimes and services.

This is the way that all your new hires already think – it’s hard to get them to do things any other way!

– You now have to retrain University hires into older development styles

In the medium to long term, it’s not only faster, it also may be cheaper.– With autoscaling you don’t need to pay for capacity you are not using

In the end, you’d invest in this even though it doesn’t provide your userswith any new functionality because it enables you to provide future services more effectively.

Page 8: Application Considerations for Cloud

IBM CLOUD

© 2015 IBM Corporation8

What does this mean for my applications? Different applications may be better suited for an IaaS or a PaaS. You need

to approach the choice from the application’s perspective.

An existing application is Cloud-ready if it can be effectively deployed into either a public or private cloud (usually an IaaS) without significant modifications.

– Certain architectural decisions can make applications not cloud-ready

Cloud-centric applications are those specifically written to run on the cloud, usually within a PaaS.

– These applications are built using different tools and runtimes than traditional applications.

– For example, an application might not use a relational database but instead use a NoSQL database, like Cloudant or MongoDB.

– A Cloud-Centric application has a different set of assumptions about what is provided by its infrastructure and how.

The decision on whether youneed an IaaS or PaaS isapplication dependent

Page 9: Application Considerations for Cloud

IBM CLOUD

© 2015 IBM Corporation9

Differing Assumptions

Cloud Ready Assumptions– The infrastructure provides my NFR’s.– The infrastructure is stable.– The components of my application are co-located.– My ops team controls the production servers.– If a disaster happens, it’s someone else’s responsibility to fix it.

Cloud Centric Assumptions– My application and my services provide my NFR’s.– The infrastructure is constantly changing (elastic).– My application components may be globally distributed.– As a Dev/Ops team member I control the production servers.– If a disaster happens, it’s my responsibility to make sure my app stays up.

Choosing one or the otherhas an effect on your team

composition and roles

Page 10: Application Considerations for Cloud

IBM CLOUD

© 2015 IBM Corporation10

Planning for Migration

Determine the Business Drivers for your applications– Are you already rewriting them for other reasons? If so, now’s a great time to

jump into cloud.– Does migrating to Cloud make business sense?

Classify your applications– How cloud-compatible are they (9 rules - http://ibm.co/1gShiEb)?– How valuable are they to you?– How much work does the existing version create for your team?

Build a migration approach and plan– Develop a template architecture for this and other applications– Use the opportunity to pay down technical debt– Promote decoupling principles as you migrate

Page 11: Application Considerations for Cloud

IBM CLOUD

© 2015 IBM Corporation11

Differences to a team lead

Some of the things you used to control go out of your hands– And likewise, things that used to be done for you are now your responsibility

DevOps has some implications you may not want to think about– Some of your team will need to be on Pager duty– Your development team will probably have more access to running production systems– You will probably be releasing code much more frequently– You will need new roles in your team to support all the new automation options

Other changes to your teams– You will probably need to either hire or retrain people for new skills

– Developing for PaaS, new runtimes and services, automation for DevOps– The skills are in higher demand

– Either you’ll pay more now for the skills, or pay more later when people acquire the skills– This is a more collaborative way of doing things

– Ultimately, you’ll have less control over the details of how things are done– But your stress and the stress of the team will be lower

Page 12: Application Considerations for Cloud

IBM CLOUD

© 2015 IBM Corporation12

Business Impact of moving to Cloud

Your budgeting approaches and timeframes will change– Moving to a pay-as-you-go model means you think on smaller timeframes but ultimately

the finer granularity means more control– The overall shift from CapEx to OpEx extends itself farther than you might think

If you go down the Agile and PaaS route– You will get to a Minimum Viable Product faster– The time to get to the final, “fully defined” product may be just as long, or only slightly

shorter as inefficiencies are removed from the development cycle– You will also have the headaches of dealing with a less mature infrastructure in the

meantime

Be aware that all of this is new to the infrastructure teams too:– Security may either resist or still be feeling their way through the implications– Project managers will probably not know how to estimate or manage new PaaS projects

Page 13: Application Considerations for Cloud

IBM CLOUD

© 2015 IBM Corporation13

Where do I start?

Research, Research, Research– You have to catch up to the new way of thinking; here are some great sources to help you

do that:

Have your team start with some sample projects– Signing up for public Bluemix is easy and free. Learn from the many available tutorials

and then expand on your own

Work with your IBM Cloud Advisor and IBM Cloud lab services to determine what the next step is once you have a potential project and approach identified.

http://www.12factor.net