application considerations for cloud
TRANSCRIPT
© 2015 IBM Corporation
IBM CLOUD
Cloud Considerations
Kyle BrownDistinguished EngineerIBM Cloud Lab [email protected]
07/14/15
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?
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
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
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
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
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.
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
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
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
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
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
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