Book Image

Optimizing Your Modernization Journey with AWS

By : Mridula Grandhi
Book Image

Optimizing Your Modernization Journey with AWS

By: Mridula Grandhi

Overview of this book

AWS cloud technologies help businesses scale and innovate, however, adopting modern architecture and applications can be a real challenge. This book is a comprehensive guide that ensures your switch to AWS services is smooth and hitch-free. It will enable you to make optimal decisions to bring out the best ROI from AWS cloud adoption. Beginning with nuances of cloud transformation on AWS, you’ll be able to plan and implement the migration steps. The book will facilitate your system modernization journey by getting you acquainted with various technical domains, namely, applications, databases, big data, analytics, networking, and security. Once you’ve learned about the different operations, budgeting, and management best practices such as the 6 Rs of migration approaches and the AWS Well-Architected Framework, you’ll be able to achieve operational excellence in cloud adoption. You’ll also learn how to deploy some of the important AWS tools and services with real-life case studies and use cases. By the end of this book, you’ll be able to successfully implement cloud migration and modernization on AWS and make decisions that best suit your organization.
Table of Contents (20 chapters)
1
Part 1: Migrating to the Cloud
6
Part 2: Cloud Modernization – Application, Data, Analytics, and IT
12
Part 3: Security and Networking Transformation
15
Part 4: Cloud Economics, Compliance, and Governance

Exploring the service models – SaaS, PaaS, and IaaS

As you navigate your path to the cloud, there are key decisions that you must make that revolve around how much you want to manage yourself and how much you want your service provider to manage. These cloud service models can be put into three categories that match your current needs so that you’re prepared for the future:

  • Infrastructure as a Service (IaaS): IaaS is a service model that offers consumers on-demand access to virtualized compute, storage, and networking.
  • Platform as a Service (PaaS): PaaS is a service model that offers consumers on-demand access to a ready-to-use cloud-native platform for developing, running, hosting, managing, and maintaining applications.
  • Software as a Service (SaaS): SaaS is a service model that offers consumers on-demand access to ready-to-use software for cloud-hosted applications.

The following diagram shows what you manage for each type of model:

Figure 1.5 – Cloud models

Figure 1.5 – Cloud models

Let’s discuss each of these in more detail.

Infrastructure as a Service (IaaS)

Infrastructure services enable companies to acquire resources on-demand and as-needed. This gives users cloud-based alternatives instead of them having to buy the required hardware, which is often expensive and labor-intensive. The main offerings include computing resources such as storage, servers, and networking.

The features of IaaS are as follows:

  • Highly flexible and highly scalable
  • On-demand offerings that can be accessed via the internet
  • Highly redundant as data lives in the cloud
  • Zero management is needed for the virtualization tasks
  • Cost-effective

Ease of use

As shown in the following diagram, IaaS is often called an everything-as-a-service business model:

Figure 1.6 – The IaaS model

Figure 1.6 – The IaaS model

IaaS is suitable for companies of any size and complexity. However, there are some use cases where companies can find IaaS more beneficial:

  • High-performance computing: Performing groundbreaking complex calculations for batch processing workloads, media transcoding, scientific modeling, and gaming requires a high-performance computing architecture with clustered compute servers and data storage. IaaS can be leveraged to take advantage of its rapid scalability and support for networking compute resources.
  • Disaster recovery and backup solutions: Building a disaster recovery plan on-premises involves a complex infrastructure that requires fixed capital expenses. With IaaS, this can be achieved in a few steps; all you need to do is set up the required infrastructure services for disaster recovery and backup solutions.
  • Real-time data analytics: The ever-increasing requirement of applications to analyze data in real time requires decisions to be made in seconds. Collecting real-time data and processing it can be a time-consuming and expensive development endeavor.

IaaS can be used to manage, store, and analyze big data and handle large workloads while easily incorporating business intelligence tools. Getting business insights out of this raw data and predicting trends can be rendered effectively.

You should consider the following factors if you wish to choose an IaaS provider:

  • Security: Protecting sensitive data, standardizing identity management procedures, and evaluating compliance standards are some of the security procedures that can dramatically impact your security posture when you’re using an IaaS model. It’s important to make sure that the IaaS provider is protected against security risks.
  • Pricing model: In addition to the initial expenses, make sure that you understand your IaaS provider’s pricing structure and the different monitoring tools and mechanisms that they are providing for monitoring and tracking your spending. Sometimes, the initial pricing may convince you to migrate from your on-premises infrastructure, but laying out a long-term plan with expected savings will enable you to plan for resource provisioning effectively.
  • SLA and support process: Knowing your vendor’s SLAs to ensure any infrastructure issues are resolved promptly is crucial for your businesses to run without interruptions. Understanding the level of support they provide once you become a paying customer is crucial.
  • Integration capabilities: When you’re migrating to an IaaS model, it is important to understand how your current workflows can be incorporated into the cloud without major customizations. Without proper integration, your products may suffer from additional development and administrative efforts, which will often translate into higher costs and application support.
  • Latency requirements: Analyzing which IaaS will provide you with the closest/less latency to your customers is also important. Also, if the data you need must be located physically in a country, make sure that the IaaS provider has facilities in that country. The following questions can help you address this:
    • Where are this IaaS provider’s closest data centers?
    • How many data centers are in the region I’m interested in?
    • Is there a region/data center/facility in the country that my data needs to live in?

In summary, IaaS represents general purpose compute resources to support customers-facing websites, web applications or customers that are heavy on data, analytics and warehousing. IaaS supports a diverse set of workloads and, as we explore in later chapters, we will look into the emerging compute models that are positioned for modern application architectures such as microservices.

Platform as a Service (PaaS)

Platform services enable developers to build applications by providing hardware and software tools that can be accessed from the internet. Businesses have the freedom to incorporate special software components while they are designing and creating applications. The cloud’s inherent characteristics enable these components to be highly scalable and available. PaaS provides application life cycle management tools and integrated development environments (IDEs) to help you select the best for your needs.

An important characteristic of PaaS is that it lets you manage how different tenants are isolated. So, if the load on one tenant becomes high, the demand is distributed to the right instances of the applications. This function enables high scaling and availability. Developers can build applications anywhere in the world and don’t have to worry about operating systems, storage, the underlying infrastructure, or software updates:

Figure 1.7 – The PaaS model

Figure 1.7 – The PaaS model

The features of PaaS are as follows:

  • Developer-friendly
  • Built on virtualization technology
  • Scalable and highly available
  • Quicker churn in coding and testing
  • Pluggable customizations
  • Available to multiple developers at the same time
  • Easy integration of web services and databases
  • Lower capital commitment
  • You can manage applications easily
  • Reusability

With PaaS, you get support for application development, operating software, deploying to IaaS infrastructure automatically, handling runbook scenarios automatically, and bringing many improvements, including monitoring your end-to-end applications. Let’s look at why companies usually implement PaaS:

Many forward-thinking companies, including large businesses, small start-ups, and everything in-between want to build projects and create an open source-like world where everybody inside the company can have access to the code of all the other projects to reuse. They are hoping that they will be able to use common code and services to increase their productivity and innovation.

With PaaS, developer efficiency can be tremendously enhanced by leveraging common tools so that they can realize the benefits of the open source technology approach.

A key success criterion is moving as many teams and projects to the new PaaS as quickly as possible. This ensures that there’s sufficient mass within the company to create the desired innovation and shared development benefits such as the following:

  • Cut down on costs: Many companies invest large amounts of capital to run existing legacy applications where they would like to reduce the ongoing spending. To run mainframe-like applications, companies need to invest in special hardware or build the virtualization themselves. Legacy applications cannot be changed because of resource constraints such as the original owner being gone or out of the business. With PaaS offerings, you can reduce specialized management, increase the ability to share resources, and cut the costs of operating these applications by 50-80%.
  • Increase reusability: Many companies are looking for ways to build several APIs or applications as quickly as possible. PaaS provides the required middleware so that you have a reusability paradigm where developers can design and build common features that can be reused.
  • Faster time to market: Due to its cost-effectiveness and access to state-of-the-art resources, companies of any size can build robust systems at a faster pace and accelerate their launch times.

The idea behind reusability is to use something that already exists rather than investing money and resources into creating something new. This is especially critical for new companies that are starting from scratch and it is even more important for their businesses to do things right. Reusability is an important aspect, where the developers can reuse existing APIs, existing services, or components that will help you to start with low costs and develop faster. There are a few factors to consider when you’re choosing the right PaaS provider for you:

  • Developer support: Learning whether your PaaS vendor providers platforms that support all major programming languages, easy-to-use templates to build and deploy applications, and support for relational and non-relational databases is recommended. Researching how well-equipped your vendor is when it comes to streamlining the developer’s processes and deployment procedures is also helpful before locking in on a provider.
  • Compliance and Regulation: Vendors that adhere to the industry standards and regulatory requirements will be helpful for you to be in alignment with the best practices in the industry.
  • Reliability and Performance: Your potential PaaS provider should be implementing disaster recovery and fault-tolerant techniques to ensure the RTO and RPO of your business systems. An ideal provider will have strategies and processes to guarantee both planned and unplanned events.
  • Data Security: Data is the heart of any application and providers need to be able to guarantee SLAs, and support guidelines that will respect the confidentiality of ensuring data security and privacy.

In summary, the PaaS market is competitive and offers unique solutions for customers of any size or vertical to build customized applications faster.

Software as a service (SaaS)

SaaS is the most common category of cloud computing that enables users to leverage software through the web or APIs. SaaS offloads the users from downloading or installing applications on their local devices that they like to use in collaboration with their projects. Storing and analyzing the data is also done via a remote cloud network. The SaaS solutions are hosted centrally in the cloud and can be accessed from anywhere, anytime.

The vendor is fully responsible for the consumer’s software experience. Users are not responsible for hardware management, nor the functionality of these vendor-hosted applications. Many popular solutions such as Salesforce (customer relationship management software), Canva (graphics), and Slack (collaboration and messaging) are all examples of SaaS.

The following are some of the features of the SaaS model:

  • Reduced risk: Companies don’t have to build the software that meets their needs; they can try out the SaaS products for a zero or low fee. This characteristic enables them to explore and evaluate the best product that can be used with their existing system with no financial risk.
  • Increased productivity: SaaS products, as opposed to the traditional model, can enable users to provision their resources and start using them in a few hours. This cuts down on the installation, configuration, and deployment time so that the users can focus more on building their applications and innovate faster.
  • Increased data protection: Data is routinely stored in the cloud and all software maintenance in the form of updates, version upgrades, and support is taken care of by the service provider. As a result, data loss is protected from hardware failures.
  • Customers don’t manage, install, or upgrade the software: The provider takes care of making upgrades available to their customers.
  • Easy to access: Applications are accessed via internet-connected devices. Analytic tools for data reporting and intelligence tools, which are often expensive and difficult to configure, are easily available.
  • Flexible pay model: Customers pay to gain access to the software and applications. Start-ups and small businesses can easily leverage SaaS applications, given that they are easy to set up and no capital or expertise is required to build these tools and applications. There is a variety of business scenarios where you can take advantage of the SaaS model and its self-provisioned nature.
  • Applications with web and mobile access: Companies that are building applications that require web and mobile access can take advantage of the SaaS technology.
  • Short-term projects: Companies often use SaaS technology when they’re building applications that are short-term projects and that are not required all year long.
  • Startups and small businesses: You will find that SaaS comes in handy when there is not much time, capital, or expertise available to build your applications and host them on-premises.

While choosing the right SaaS vendor, make sure that you consider the following factors:

  • Limited customizations: SaaS applications are available out of the box with limited customizations from the vendor. If you have a strong requirement that is dependent on the SaaS application, you may want to consider building some customizations to work around this limitation.
  • Limited compliance: Vendors own the SaaS applications and continually release new features and fixes. However, you lose a degree of control when it comes to meeting ever-increasing legal, regulatory, and compliance requirements to keep your organization away from non-compliance. Make sure that you ask your SaaS provider about uptime, resiliency, and any critical compliance requirements ahead of signing up.
  • Vendor viability: Acquisitions are commonplace for the SaaS market and often result in terminations of services with very short notice. Ensure that you agree on an SLA with an uptime guarantee and also have a thorough understanding of the duration of your contract.

In this section, we looked at various cloud computing models and their use cases, benefits, and limitations. Next, we will discuss the cloud deployment models in detail