Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Multi-Cloud Handbook for Developers
  • Toc
  • feedback
Multi-Cloud Handbook for Developers

Multi-Cloud Handbook for Developers

By : Subash Natarajan, Natarajan, Jacob, Jeveen Jacob
4.9 (15)
close
Multi-Cloud Handbook for Developers

Multi-Cloud Handbook for Developers

4.9 (15)
By: Subash Natarajan, Natarajan, Jacob, Jeveen Jacob

Overview of this book

Unleash the power of cloud computing with Multi-Cloud Handbook for Developers, your guide to mastering the nuances of cloud-native and multi-cloud, covering practical strategies for design, development, and management. Explore the essential concepts, challenges, and methodologies critical for navigating the complex landscape of modern cloud computing. Using core architectural and design principles (such as microservices and 12-factor architecture) and advanced strategies (such as distributed application design patterns, domain-driven design (DDD), and API-first strategies), you’ll learn how to build portable and efficient apps across various cloud platforms. You’ll understand how to leverage Infrastructure as Code (IaC), continuous integration and deployment (CI/CD), GitOps, and DevOps practices, along with containerization and orchestration techniques using Docker and Kubernetes. You’ll also get to grips with data, security, compliance, and cloud cost management strategies in multi-cloud environments. With real-world case studies, best practices, and insights into future trends, this book will equip you with the skills to develop, manage, troubleshoot, and innovate cloud-native applications across diverse cloud platforms, positioning you at the forefront of the cloud computing revolution.
Table of Contents (17 chapters)
close
1
Part 1:Introduction to Multi-Cloud and Cloud-Native
4
Part 2: Designing and Developing Cloud-Native Applications for Multi-Cloud
7
Part 3: Managing and Operating Cloud-Native Apps in Multi-Cloud
11
Part 4: Best Practices, Case Studies, and Future Trends for Multi-Cloud and Cloud-Native

The evolution of application development

The evolution of application architecture has seen a shift from integrated monolithic structures to the decoupled services of service-oriented architecture (SOA), leading up to today’s microservices and containers. These advancements prioritize flexibility and efficient, independent deployment, reshaping software development in the cloud era. Let’s explore each one.

The monolithic era

In the early days of computing, when applications were developed as monolithic architectures, every functionality was bundled together in a single application. The waterfall approach was king, with each development phase (requirements, design, implementation, testing, deployment, and maintenance) occurring sequentially. The advantage of monolithic applications was their simplicity as developers could easily understand the entire application and its dependencies. However, monolithic architectures had significant drawbacks:

  • Limited scalability: Scaling monolithic applications took time as increasing capacity often required adding hardware or duplicating the entire application stack
  • Rigidity: Making changes to monolithic applications was time-consuming as any modification required retesting and redeploying the entire application
  • Slow release cycles: Due to the waterfall approach, it took longer to deliver new features and bug fixes since each development phase had to be completed before the next could begin

To overcome the limitations of monolithic architectures, developers began to adopt SOA in the early 2000s.

The advent of SOA

SOA is an architectural style that structures an application as a collection of loosely coupled, reusable services. These services communicate with each other using standard protocols and can be combined to create composite applications. The key advantages of SOA include the following:

  • Reusability: Services can be reused across different applications, reducing development time and effort
  • Modularity: Applications can be broken down into smaller, more manageable components, making it easier to maintain and update individual services
  • Agility: Changes to one service do not require modifications to other services, allowing for faster release cycles

While SOA helped solve some challenges of Monoliths, it also comes with drawbacks, such as the increased complexity of managing and coordinating multiple services and the overhead introduced by the communication protocols between services.

Microservices and containers

Microservices, an evolution of SOA, are small, independent services that can be developed, deployed, and scaled independently. They communicate with each other via lightweight protocols such as HTTP/REST or message queues. Microservices offer several advantages over monolithic architectures and traditional SOA, including the following:

  • Improved scalability: Each microservice can be scaled independently, allowing more efficient resource utilization
  • Faster release cycles: Smaller code bases and independent deployment make delivering new features and bug fixes easier
  • Better fault isolation: If a microservice fails, it is less likely to impact the entire application, improving overall system resilience

Containers, another key technology in the cloud-native landscape, provide a lightweight, portable way to package and deploy applications and their dependencies. Containers isolate applications from the underlying infrastructure, enabling them to run consistently across different environments. This isolation simplifies deployment and scaling, making containers perfect for microservices-based architectures. We will learn more details about this topic in upcoming chapters.

Figure 1.1 depicts the evolution from monolithic, where components are interdependent, to SOA, which introduces a service-based structure, and finally to microservices, where services are fully independent, embodying cloud-native flexibility and scalability:

Figure 1.1 – The evolution from monolithic to microservices-based systems

Figure 1.1 – The evolution from monolithic to microservices-based systems

bookmark search playlist download font-size

Change the font size

margin-width

Change margin width

day-mode

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Delete Bookmark

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete