Cloud Native Architectures
eBook - ePub

Cloud Native Architectures

Design high-availability and cost-effective applications for the cloud

  1. 354 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

Cloud Native Architectures

Design high-availability and cost-effective applications for the cloud

About this book

Learn and understand the need to architect cloud applications and migrate your business to cloud efficiently

Key Features

  • Understand the core design elements required to build scalable systems
  • Plan resources and technology stacks effectively for high security and fault tolerance
  • Explore core architectural principles using real-world examples

Book Description

Cloud computing has proven to be the most revolutionary IT development since virtualization. Cloud native architectures give you the benefit of more flexibility over legacy systems. To harness this, businesses need to refresh their development models and architectures when they find they don't port to the cloud. Cloud Native Architectures demonstrates three essential components of deploying modern cloud native architectures: organizational transformation, deployment modernization, and cloud native architecture patterns.

This book starts with a quick introduction to cloud native architectures that are used as a base to define and explain what cloud native architecture is and is not. You will learn what a cloud adoption framework looks like and develop cloud native architectures using microservices and serverless computing as design principles. You'll then explore the major pillars of cloud native design including scalability, cost optimization, security, and ways to achieve operational excellence. In the concluding chapters, you will also learn about various public cloud architectures ranging from AWS and Azure to the Google Cloud Platform.

By the end of this book, you will have learned the techniques to adopt cloud native architectures that meet your business requirements. You will also understand the future trends and expectations of cloud providers.

What you will learn

  • Learn the difference between cloud native and traditional architecture
  • Explore the aspects of migration, when and why to use it
  • Identify the elements to consider when selecting a technology for your architecture
  • Automate security controls and configuration management
  • Use infrastructure as code and CICD pipelines to run environments in a sustainable manner
  • Understand the management and monitoring capabilities for AWS cloud native application architectures

Who this book is for

Cloud Native Architectures is for software architects who are keen on designing resilient, scalable, and highly available applications that are native to the cloud.

Frequently asked questions

Yes, you can cancel anytime from the Subscription tab in your account settings on the Perlego website. Your subscription will stay active until the end of your current billing period. Learn how to cancel your subscription.
No, books cannot be downloaded as external files, such as PDFs, for use outside of Perlego. However, you can download books within the Perlego app for offline reading on mobile or tablet. Learn more here.
Perlego offers two plans: Essential and Complete
  • Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
  • Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Both plans are available with monthly, semester, or annual billing cycles.
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Yes! You can use the Perlego app on both iOS or Android devices to read anytime, anywhere — even offline. Perfect for commutes or when you’re on the go.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Yes, you can access Cloud Native Architectures by Tom Laszewski, Kamal Arora, Erik Farr, Piyum Zonooz in PDF and/or ePUB format, as well as other popular books in Computer Science & Cloud Computing. We have over one million books available in our catalogue for you to explore.

Information

Amazon Web Services

Amazon Web Services (AWS) is the pioneer in the cloud computing space. It started offering IT infrastructure services in 2006, when the term cloud computing hadn't even been coined! The first few services that AWS launched were Amazon Simple Queue Service (SQS), Amazon Simple Storage Service (S3), and Amazon Elastic Compute Cloud (EC2), and ever since there's been no stopping. Today, AWS is probably one of the most advanced and mature public cloud providers, with presence across 18 geographic regions, 130+ services, and has already announced plans to launch many more in the days ahead. Over a period of time, AWS has also diversified into various new technology and solutions spaces, that has even blurred the typical definitions of IaaS, PaaS, and SaaS. In this chapter, we will discuss some of these differentiators and new architectural patterns which can help you with a mature cloud-native experience by leveraging multiple AWS services. The following are some of the specific topics that you will learn about in this chapter:
  • AWS' cloud-native services, strengths, and differentiators around CI/CD, serverless, containers, and microservices concepts, and covering the following services:
    • AWS CodeCommit
    • AWS CodePipeline
    • AWS CodeBuild
    • AWS CodeDeploy
    • Amazon EC2 Container Service
    • AWS Lambda
    • Amazon API Gateway
  • Management and monitoring capabilities for AWS cloud-native application architectures
  • Patterns for moving off monolithic application architectures to AWS native architectures
  • Sample reference architectures and code snippets for CI/CD, serverless, and microservices application architectures
To keep yourself updated on the latest AWS announcements and service launches news, subscribe to the following resources:
  • What's new page (https://aws.amazon.com/new)
  • AWS blog (https://aws.amazon.com/blogs/aws)

AWS' cloud native services (CNMM Axis-1)

As a start, let's look at the core services that AWS has to offer, which will be relevant to creating your applications in a cloud-native way.

Introduction

AWS offers a very rich portfolio of services that includes core components around infrastructure capabilities, such as Amazon EC2 (virtual servers in the cloud), Amazon EBS (block storage for EC2), Amazon S3 (cloud-based object storage), and Amazon VPC (isolated cloud resources using virtualized networks). These services have existed for multiple years now and are pretty mature for an enterprise-scale deployment level as well. Apart from scale, these services have very deep feature sets that provide ample options to the end customers to pick and choose configurations as per their specific business requirements. As an example, Amazon EC2 offers more than 50 different types of instances to cater to various possible workloads and use cases. So, if a customer to host a high-performance computing (HPC) workload, then there's an option to use compute optimized instances, whereas if you have a NoSQL database that is hungry for high IOPS with low storage latency, then storage optimized instances come in handy.
In fact, AWS has been adding newer instances types as well as updating to newer, faster processors with larger memory footprints every year, which makes it easier for the customers to leverage the latest and greatest compute configurations without having to worry about typical data center procurement and upgrade cycles. Likewise, on the storage and networking front, Amazon EBS, Amazon S3, and Amazon VPC provide multiple configuration options that can provide flexibility when required.
Couple of the biggest benefits that cloud provides are Elasticity and Agility, which basically means that you can spin up and down your infrastructure in lines with your application's needs. This is very different from the traditional data center approach, where everything had to provisioned for peaks, because of which the infrastructure resources were either way too underutilized or were not scalable for some unpredictable peaks. This has radically changed with the cloud, where providers such as AWS have come up with innovative services such as Auto Scaling, wherein you can automatically change your compute fleet size based on certain application behaviors, such as increased CPU utilization or even custom application monitoring metrics. Apart from triggers based on scaling, you can also autoscale the compute capacity based on time-based usage patterns, for example, hourly, daily, or weekly variability in usage. Very similar to compute autoscaling, AWS also offers Elastic EBS volumes, wherein you can increase volume size, adjust performance, or change the volume type while the volume is in use. These types of services and capabilities are definitely differentiators for the cloud and have in fact become the new normal to build web-scale applications. However, in order to use some of these autoscaling features, applications also need to be ready from an architecture standpoint. As an example, if you want to use autoscaling capabilities for your web server fleet to accommodate increased load on your website, then one of the core changes needed from an application standpoint is that you should not have session state information stored locally on any web server. The same should be externalized in a cache (such as Amazon ElastiCache) or even a database (such as Amazon DynamoDB), so that you can seamlessly scale up or down your webservers fleet without having to worry about a users' session disruption because of that.
The following is a sample architecture that AWS publishes for auto-scalable web applications using various core services:
Web application hosting setup (Source – http://media.amazonwebservices.com/architecturecenter/AWS_ac_ra_web_01.pdf)
Now, over and above the core building blocks, such as the ones mentioned in the preceding diagram, AWS offers various higher-level managed services that make it easier for the end user to quickly start deploying their applications without having to worry too much about the underlying infrastructure. As an example, there's Amazon RDS, which is a managed relational database service for MySQL, PostgreSQL, Oracle, SQL Server, and MariaDB. Amazon RDS provides flexibility to set up and operate a relational database while automating time-consuming administration tasks, such as hardware provisioning, database setup, patching, and backups. So, by using this service, you can quickly get started with your database deployments without requiring any specific database administrator level skills. Apart from this, AWS also offers many other services, such as AWS Elastic Beanstalk (to run and manage web apps) and Amazon OpsWorks (to automate operations with Chef), which are like higher-level services in the category of PaaS.
Using these services, you can quickly get your applications running on AWS without getting into the nitty-gritty of the underlying infrastructure. With Amazon OpsWorks, you get an extra set of controls as well, wherein if you want to automate a specific application setup/launch procedure, then you have the capabilities to do that using your own custom Chef recipes.
Other than the preceding points, AWS also offers PaaS services in the big data / analytics and AI space, such as Amazon EMR (hosted Hadoop framework), Amazon Kinesis (works with real-time streaming data), Amazon Lex (builds voice and text chatbots), Amazon Rekognition (searches and analyzes images), and Amazon Polly (turns text into lifelike speech). Using these types of service, developers and data architects can easily create their applications by focusing more on the business logic than the underlying infrastructure management aspects.
Over the last few years, AWS has aggressively moved much further in terms of offering totally newer types of services, which are closer to SaaS. These are mainly the services as part of its business productivity category, such as Amazon Chime (a managed service for video calls and chat), Amazon WorkDocs (enterprise storage and sharing service), and Amazon Connect (managed contact center service). This is a fairly new area for AWS as well, but as these services along with the ecosystem matures, it will create new possibilities for end users to look at the cloud, not just from an infrastructure or platform perspective, but to also utilize productivity software in a pay-as-you-go model.

AWS platform – differentiators

As mentioned in Chapter 1, Introducing Cloud Native Architecture, CNMM is a maturity model wherein if you are using only core building blocks from the cloud (such as, infrastruct...

Table of contents

  1. Title Page
  2. Copyright and Credits
  3. Packt Upsell
  4. Foreword
  5. Contributors
  6. Preface
  7. Introducing Cloud Native Architecture
  8. The Cloud Adoption Journey
  9. Cloud Native Application Design
  10. How to Choose Technology Stacks
  11. Scalable and Available
  12. Secure and Reliable
  13. Optimizing Cost
  14. Cloud Native Operations
  15. Amazon Web Services
  16. Microsoft Azure
  17. Google Cloud Platform
  18. What's Next? Cloud Native Application Architecture Trends
  19. Other Books You May Enjoy