Book Image

Cloud Native Applications with Ballerina

By : Dhanushka Madushan
Book Image

Cloud Native Applications with Ballerina

By: Dhanushka Madushan

Overview of this book

The Ballerina programming language was created by WSO2 for the modern needs of developers where cloud native development techniques have become ubiquitous. Ballerina simplifies how programmers develop and deploy cloud native distributed apps and microservices. Cloud Native Applications with Ballerina will guide you through Ballerina essentials, including variables, types, functions, flow control, security, and more. You'll explore networking as an in-built feature in Ballerina, which makes it a first-class language for distributed computing. With this app development book, you'll learn about different networking protocols as well as different architectural patterns that you can use to implement services on the cloud. As you advance, you'll explore multiple design patterns used in microservice architecture and use serverless in Amazon Web Services (AWS) and Microsoft Azure platforms. You will also get to grips with Docker, Kubernetes, and serverless platforms to simplify maintenance and the deployment process. Later, you'll focus on the Ballerina testing framework along with deployment tools and monitoring tools to build fully automated observable cloud applications. By the end of this book, you will have learned how to apply the Ballerina language for building scalable, resilient, secured, and easy-to-maintain cloud native Ballerina projects and applications.
Table of Contents (15 chapters)
1
Section 1: The Basics
4
Section 2: Building Microservices with Ballerina
8
Section 3: Moving on with Cloud Native

Summary

In this chapter, we discussed the monolithic architecture and its limitations, such as scalability and maintenance when the application gets bigger and bigger. Even though a simple application can adopt a monolithic architecture, for larger applications, it is hard to maintain a monolithic architecture. SOA provides a solution to break the system into multiple services and maintain those services separately. An ESB helps to create communication links between those services instead of using point-to-point communication. With the rise of container technology, these services became much more stateless and scalable. Microservices provide a way to build a more resilient and scalable system.

With the advancement of cloud computing, organizations have gradually switched to cloud-based technologies, rather than maintaining their own infrastructure. Cloud native is a new concept that addresses concerns related to old-school monolithic programming paradigms. The microservice architecture and the serverless architecture, together with cloud services, provide a convenient way to build more scalable systems. Various programming principles can be used to implement a cloud native microservice architecture.

The twelve-factor app makes cloud-based apps more cloud native.

Moving to cloud native may be difficult for an organization due to the associated costs. But the benefits associated with cloud native make it much more valuable than maintaining legacy systems. Theories such as Conway's law provide elegant guidelines on how organizations should design their microservice architecture.

Ballerina is a revolutionary programming language that supports cloud native. With built-in tools and network-oriented syntax styles, developers can easily build scalable, reliable, and maintainable systems. In the next chapter, we will discuss installing the Ballerina development kit and writing your first Ballerina code.