Search icon
Arrow left icon
All Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletters
Free Learning
Arrow right icon
Cloud-Native Applications in Java

You're reading from  Cloud-Native Applications in Java

Product type Book
Published in Feb 2018
Publisher Packt
ISBN-13 9781787124349
Pages 406 pages
Edition 1st Edition
Languages
Authors (4):
Andreas Olsson Andreas Olsson
Ajay Mahajan Ajay Mahajan
Profile icon Ajay Mahajan
Munish Kumar Gupta Munish Kumar Gupta
Profile icon Munish Kumar Gupta
Shyam Sundar S Shyam Sundar S
Profile icon Shyam Sundar S
View More author details

Table of Contents (20) Chapters

Title Page
Dedication
Packt Upsell
Foreword
Contributors
Preface
1. Introduction to Cloud-Native 2. Writing Your First Cloud-Native Application 3. Designing Your Cloud-Native Application 4. Extending Your Cloud-Native Application 5. Testing Cloud-Native Applications 6. Cloud-Native Application Deployment 7. Cloud-Native Application Runtime 8. Platform Deployment – AWS 9. Platform Deployment – Azure 10. As a Service Integration 11. API Design Best Practices 12. Digital Transformation 1. Other Books You May Enjoy Index

Chapter 6. Cloud-Native Application Deployment

One of the most unique things about cloud-native applications is their deployment. In traditional application deployment, teams deploy their applications by logging on to a server and installing the application. But in the cloud there are usually many servers, and logging into each one and installing the application manually is not feasible and can be very error prone. To combat these problems, we use cloud provisioning tools to automate the deployment of cloud-native applications.

In this chapter, we will dive into the deployment model for the microservice—including how to package your application as a Docker container, how to set up the CI/CD pipeline, and how to protect your service from security attacks such as a distributed denial of service (DDoS). We will cover the following:

  • Deployment models, packaging, and containerization (using Docker)
  • Deployment patterns (blue-green, canary release, and dark release)
  • DDoS
  • CI/CD

Deployment models


We will cover the deployment models that will be used to deploy our application in the cloud environment.

Virtualization

The fundamental building block of the cloud is a virtual machine (referred to as VM from now on), which is equivalent to a physical server (or host) on which users can log in and install or maintain applications. The difference being that there can be several VMs hosted on a single host thereby increasing the resource utilization. This is achieved by using virtualization, where a hypervisor is installed on the host that can then apportion the resources available on the physical server, such as compute, memory, storage, and networking to the different VMs hosted on it. Cloud-native applications can be deployed on such VMs using the following strategies:

  • Several applications per VM
  • One application per VM

When running several applications per VM there is the possibility of one application hogging all the resources available on the VM and starving out the other...

Deployment patterns


Having covered the packaging and deployment models of cloud-native applications, we will now cover the patterns used for deploying cloud-native applications. Traditionally, applications get deployed in several environments such as development, testing, staging, pre-production, and so on, and each of these environments might be a scaled-down version of the final production environment. Applications move through a series of pre-production environments and get deployed finally to the production environment. However, one significant difference is that while downtime is tolerated in all other environments, downtime in a production deployment could lead to serious business consequences.

With cloud-native applications, it is possible to release software with zero downtime. This is achieved by the rigorous application of automation to every aspect of the development, testing, and deployment of the application. We will cover continuous integration (CI) / continuous deployment ...

Summary


In this chapter, we learned about the various deployment patterns that can be used for deploying cloud-native applications, and how continuous integration tools such as Jenkins can be used to automate the build and deployment. We also learned how to build and run a sample cloud-native application using Docker containers.

lock icon The rest of the chapter is locked
You have been reading a chapter from
Cloud-Native Applications in Java
Published in: Feb 2018 Publisher: Packt ISBN-13: 9781787124349
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime}