10 Ingredients for DevOps Transformation with Mark Andersen
At Capital One, DevOps is about delivering high quality, working software, faster. This means software that is reliable, secure, usable, and perfor...Learn More
If you’re like most businesses, you already have at least one workload running in the cloud. However, that doesn’t mean that cloud migration is right for everyone. While cloud environments are generally scalable, reliable, and highly available, those won’t be the only considerations driving your decision.
For companies considering their first cloud migration, there are a lot of factors that you’ll want to take into account, from the benefits and the risks, to the cloud service model and type that is right for your business. In this post, we’ll look at the high-level elements that you should consider as you contemplate a move to the cloud.
There are many problems that moving to the cloud can solve. Here are some typical scenarios that will benefit from cloud migration.
While your specific environment will determine the risks that apply to you, there are some general drawbacks associated with cloud migrations that you will want to consider.
If you’re thinking to migrate your business to the cloud, you may be asking yourself what the common pitfalls are when migrating to the cloud. In this short video, Andrew Larkin, AWS and Cloud Expert at Cloud Academy shares his experience with you.
Now that you’ve decided to try the cloud, you’ll have to choose the cloud computing service model that you would like to deploy it in. These are the most common service models:
Here’s where you’ll have to make an important choice.
IaaS is best for companies that don’t mind hosting their applications in third-party data centers but would prefer to outsource the care of their physical infrastructure to concentrate more completely on developing, deployment, and monitoring.
However, if you prefer your applications to be portable, you might want to simply drop your code onto a robust PaaS platform that provides a full (and invisible) infrastructure environment. SaaS is a delivery model through which centrally hosted productivity software is licensed on a subscription basis.
|IaaS takes care of||PaaS takes care of||SaaS takes care of|
Assuming you’ve chosen a cloud model, it’s time to choose the cloud type. There are three basic options:
Public: Your resources are entirely hosted by a cloud provider like Amazon Web Services (AWS).
Private: You create your own private cloud using a platform like OpenStack or VMware’s vCloud.
Hybrid: Your resources are spread over both private and public platforms.
With its healthy mix of on-demand reliability, high availability, security, and reduced operations costs, hybrid cloud implementations can be attractive. Going hybrid can sometimes give you the best of both worlds. I’ll illustrate how hybrid can work through a hypothetical scenario.
Let’s imagine that your web app is quickly gaining popularity and users. In order to keep up with the growing demand, you need the underlying resource to scale up dynamically. During peak usage, you should be able to deploy maximum resources to serve requests, and when demand drops, you should ideally be able to simply drop unneeded resources to save costs. This is possible within a public cloud. But suppose the data your app gathers is highly confidential and can’t just be stored off-premise. This is where a hybrid solution can help. In this case, you can choose which components you want to live in the public cloud, and which will remain in your data center.RightScale reported that enterprises are increasingly adopting a multi-cloud strategy (85%), and 58% plan to use hybrid clouds.
Having chosen a cloud model and cloud type, the real struggle is about to begin. Now, it’s time to see if your applications are cloud-ready. Here are some factors that you will need to consider:
Some traditional applications are so complicated and tightly coupled that customers might not be willing to rework it. However, the foremost requirement for any successful migration is that the app should follow a distributed architecture and should be scalable by design. Tools like PaaSLane and Cloudamize can help you assess your applications’ cloud-readiness. AWS’s Migration Hub service is a one-stop shop for everything you might need tool-wise to discover and assess your application’s readiness for cloud migration.
Every application has its integration points, such as payment gateways, SMTP servers, web services, external storage, and third-party vendors. It’s very important to analyze the impact your cloud migration will have on those dependencies. Sometimes you will experience unexpected connectivity or authentication challenges that you should identify and solve up front. The most critical (and tedious) task is to identify all of those integration points. Since older applications might be poorly documented and the developers familiar with the end-to-end functional and non-functional details may no longer be available, you might have to go through each module manually. The task gets complicated if you’re considering migrating hundreds of applications currently running in your data center.
Many of these issues can be addressed through a combination of the familiarity your team has with the apps and an asset discovery tool (either open source or commercial). An asset discovery tool can help you identify entire server configurations within a network, along with connectivity details. For example, say that you have a data center within a network that is hosting around 100 applications. A discovery tool can give you the bird’s eye view of the entire system. It can also provide granular details that can be helpful for a general capacity management assessment. Some of the better-known asset discovery tools include BMC Atrium and HP DDMA. Cloudamize provides a tool that can perform automated discovery of applications and machines, and additionally perform automated application dependency mapping to discover dependencies between applications.
Once you have decided on cloud migration, it’s important to know whether you will be able to deploy your applications on the same OS. Your applications may only run on a specific OS (or OS release). If it’s not compatible with your cloud provider, then you need to find a workable substitute OS, a different cloud provider, or simply give up the whole project. For instance, most cloud providers don’t provide 32-bit OS options and others might have unexpected subscription requirements. It’s best to do your research in advance.
A database is obviously a critical part of any application. Customers invest a great deal on database servers and, often, licenses. Moreover, given the complexity and sensitivity of your data, you just might not want to move it right now: migrating petabytes of data is no trivial undertaking. In either case, you should make sure that the migration methods you use are highly reliable and come with the possibility of rollbacks to deal with any unexpected chaos.
Most cloud providers offer their own migration services. Therefore, it’s very important to evaluate those services before pushing the “start” button. For example, AWS provides their Migration Hub service – which in their own words “simplifies and accelerates discovery and migration from your data centers to the AWS Cloud”.There are also many third-party vendors providing data migration services, like Attunity CloudBeam, ATADATA ATAmotion, CloudEndure Live Migration, and Racemi DynaCenter
Most cloud environments don’t support multicasting, so if your application relies on multicast, then I would say “think twice.”
Many cloud providers have pricing calculators that can help you to estimate the real costs you’ll face after a cloud migration vs. your current costs. AWS TCO (Total Cost of Ownership) calculator and Azure Pricing Calculator are two options. Cloudamize allows you to compare TCO across AWS, Azure, and Google Cloud Platform (GCP), so you can decide which option is the best fit based on your current application workload profiles.
It’s always a great idea to build a small proof of concept (POC) before you actually migrate your workload to the cloud. I know such models won’t anticipate all possible issues, but it will give you greater clarity and understanding about the challenges you may face. Some of the things you should look for during your POC include:
• Performance comparisons with your existing application
• Complexity levels involved in migrating the application
• Network challenges that need to be worked out
• Cloud provider support evaluation
Addressing all the real-time challenges of a cloud migration cannot be captured in one post, but I have tried to address some common issues you should consider before you start the process. Share your cloud migration experiences with us in the comments below or take a tour of how we can help with your migration strategy on our Migration solution page.
The AWS Solutions Architect - Associate Certification (or Sol Arch Associate for short) offers some clear benefits: Increases marketability to employers Provides solid credentials in a growing industry (with projected growth of as much as 70 percent in five years) Market anal...
Moving data to the cloud is one of the cornerstones of any cloud migration. Apache NiFi is an open source tool that enables you to easily move and process data using a graphical user interface (GUI). In this blog post, we will examine a simple way to move data to the cloud using NiFi c...
Amazon DynamoDB is a managed NoSQL service with strong consistency and predictable performance that shields users from the complexities of manual setup.Whether or not you've actually used a NoSQL data store yourself, it's probably a good idea to make sure you fully understand the key ...
As companies increasingly shift workloads to the public cloud, cloud computing has moved from a nice-to-have to a core competency in the enterprise. This shift requires a new set of skills to design, deploy, and manage applications in cloud computing.As the market leader and most ma...
Learn how Aviatrix’s intelligent orchestration and control eliminates unwanted tradeoffs encountered when deploying Palo Alto Networks VM-Series Firewalls with AWS Transit Gateway.Deploying any next generation firewall in a public cloud environment is challenging, not because of the f...
Use AWS Config the Right Way for Successful ComplianceIt’s well-known that AWS Config is a powerful service for monitoring all changes across your resources. As AWS Config has constantly evolved and improved over the years, it has transformed into a true powerhouse for monitoring your...
Cloud Academy is a proud sponsor of the 2019 AWS Summits in Atlanta, London, and Chicago. We hope you plan to attend these free events that bring the cloud computing community together to connect, collaborate, and learn about AWS. These events are all about learning. You can learn how t...
The AWS cloud platform has made it easier than ever to be flexible, efficient, and cost-effective. However, monitoring your AWS infrastructure is the key to getting all of these benefits. Realizing these benefits requires that you follow AWS best practices which constantly change as AWS...
Amazon Web Services’ resource offerings are constantly changing, and staying on top of their evolution can be a challenge. Elastic Cloud Compute (EC2) instances are one of their core resource offerings, and they form the backbone of most cloud deployments. EC2 instances provide you with...
Before migrating domains to Amazon's Route53, we should first make sure we properly understand how DNS worksWhile we'll get to AWS's Route53 Domain Name System (DNS) service in the second part of this series, I thought it would be helpful to first make sure that we properly understand...
As businesses expand their footprint on AWS and utilize more services to build and deploy their applications, it becomes apparent that multiple AWS accounts are required to manage the environment and infrastructure. A multi-account strategy is beneficial for a number of reasons as ...
AWS's WaitCondition can be used with CloudFormation templates to ensure required resources are running.As you may already be aware, AWS CloudFormation is used for infrastructure automation by allowing you to write JSON templates to automatically install, configure, and bootstrap your ...