Know Your Cloud: 7 Lessons for Maximizing Cloud Capabilities
Know Your Cloud: 7 Lessons for Maximizing Cloud Capabilities
If you're a DevOps shop operating in the cloud, here are seven lessons you absolutely must know in order to maximize the benefits from your cloud capabilities.
Join the DZone community and get the full member experience.Join For Free
The latest cloud capabilities give developers the flexibility to design their apps and services efficiently, without the expensive cost and manual setup of traditional data centers. The most popular cloud providers have a wide array of services that extend across the spectrum, from IaaS to PaaS, as well as hybrid, containers, and microservices solutions.
According to a Gartner survey, CIOs expect private, public, and hybrid cloud consumption to rise from 31% in 2014 to 58% in 2018, which means more tools, more options, and more ways for teams to integrate efficient continuous delivery methods. But with so many different types of cloud deployment models, it's easy to feel like you're not getting the most out of your cloud investment.
We spoke with 6 cloud development leaders to ask them how DevOps teams can maximize their cloud capabilities. From those conversations, we derived these 7 lessons.
Getting Started on the Cloud
Mark Davis, CEO of Real Quantum
"First, if you move the same old architecture to the cloud, you're doing it wrong," says Davis. "It'll end up costing as much or more than on-premises operation. Change the architecture to leverage the strengths of the cloud, such as PaaS and elasticity, then make the move."
"Secondly, data movement in and out of the cloud platform can end up costing you more than you thought," Davis continues. "Cloud providers typically allow data ingress for free, but data egress incurs a charge. If your data has to move back and forth between on-premises or other cloud providers, be prepared for those costs."
"And finally, the cost of cloud services isn't the most important criterion when selecting a provider. Look instead at the availability and strength of key capabilities that your company will need down the road."
Scaling Your Cloud Services
Ben Finkel, Trainer at CBTNuggets
Cloud computing has obvious advantages when it comes to scaling a variety of web services. Developers have the opportunity to pay as they go, building their servers up, down, and even horizontally whenever they need to meet demand.
"Scaling down is often missed when people talk about scaling," says Ben Finkel, trainer at CBTNuggets. "Traffic patterns change. Sometimes they burst and then they shrink."
Data storage is also highly reliable and highly available on the cloud, allowing teams to provision, use, then de-provision data at will. This saves time and cost when temporary repositories are needed. Unlike like traditional data centers, developers have the ability to quickly reduce scale and automate when demand decreases, keeping costs low.
"For example, Black Friday shopping weekend in the USA is a huge retail weekend," explains Finkel. "If you're in retail, you need to increase capacity for that weekend, but when it passes, you need to decrease capacity."
Weighing the Cost of Cloud Computing
David Rael, host of Developer on Fire podcast
When estimating the cost, developers should consider what data resources they'll need as their services and products mature.
"While snazzy web portals are nice and appealing, you want to be thinking more about APIs and command line interactions that allow you flexibility in crafting your own experience," says David Rael, host of Developer on Fire.
Free cloud storage options have an advantage here to allow developers to transition their architecture slowly over multiple weeks, and lets teams get used to new processes and features. However, in the long run buying cloud storage is the better investment, ensuring more stability, storage space, and support from the provider.
Developers should also be aware of their Service Level Agreements (SLA)—again keeping in mind their product roadmap and long term goals. AI, big data, mobile, IoT, and blockchain all may require different cloud infrastructure solutions. These can dramatically impact the cost of any paid cloud deployment model and have more relevance when choosing a provider than teams may initially realize.
Right-sizing Your Cloud Capabilities
Scott Hanselman, Principal Program Manager for Open Source at Microsoft
Leveraging the automation and optimization tools of cloud providers can make a large impact on how you organize your dev teams. But quantity of tools does not always equate to quality, particularly if your team is on a budget.
"When I started, being colocated was crucial," says Scott Hanselman, former Chief Architect at Corillian Corporation. "Now teams can be distributed throughout time zones and locations."
Smart cloud monitoring can reduce operation cost by handling storage, replication, and hard-disk failures across the globe, while also keeping teams lean. This allows teams to focus on other tasks rather than monitoring hard disk space or server errors.
"A single thoughtful individual can now run a complete global startup, where the cloud is now taking the place of an entire teams of ops people," says Hanselman.
Prioritize the Right Solutions
Amy Boyd, CTO and Startup Advisor
Teams should have a clear idea of the general solutions they need when deciding on what cloud capabilities to utilize. Teams should avoid solutions that involve extra servers and microservices that may be beyond their current resources and abilities.
"Cloud deployments have forced developers to think more about failure cases. When many parts of your overall software are separate networked services, it's impossible to ignore failure," Amy Boyd, former CTO of CityMunch says.
"Nowadays there could be failures in networks being unavailable, permissions not sufficient, networks being unstable, etc.—so requiring a retry. Now your APIs need to be idempotent when the retry comes in. Who knows if the first request actually succeeded?!" Boyd states. "This is a good thing, though! Creating resilient software has never been easier."
Take the Right Security Measures
Thanks to its remote operating nature, security is generally stronger for dev teams who utilize cloud computing. Most security threats and data breaches utilize physical access to systems, especially in small and mid-size businesses.
But with smaller teams relying more on automation, dev leaders must also implement quality processes for onboarding and offboarding personnel. Teams need to think about how to limit administrative privileges to users to avoid expensive cloud surprises.
"All the clouds have this and that certification, and this and that cloud computing security, and iOS this and that. That doesn't mean that you, the app developer and architect, are off the security hook," Hanselman states.
The big public cloud providers all have robust security measures, each offering easy and low cost mitigations to potential security threats. Still, it's important to know your industry and business needs when it comes to security.
"It's still your responsibility, common sense, and best practices that rule the day," Hanselman states.
No One-Size-Fits-All Option for Cloud Services
The cloud computing bandwagon has gained so much momentum that businesses are likely to jump on without seeing where the train is going. The tech is transformative, but business and DevOps leaders still need to think critically about their needs. There is no one-size-fits-all options for cloud services.
Chris Hartjes sums up this point well: "You have to decide how much you want to trust those who provide those services. Remember—you have to use their tools and follow their rules for interacting with whatever you are entrusting them with."
When considering the balance of cloud computing options, developers must decide how much automation they wish to rely on, versus the cost and lack of control they give up in return. Some cloud options, like private and hybrid clouds, provide more flexibility and better prices for certain needs.
Maximizing Your Cloud Platform
All of these cloud leaders will tell you that there's more to maximizing your cloud capabilities that what's in this article. This is simply a taste of the most important lessons learned from collective decades of cloud experience.
To learn more about maximizing your cloud platform, head over to the Stackify blog, where we cover cloud computing, DevOps, .NET, and so much more.
Published at DZone with permission of John Julien , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.