Overview
Welcome to this introductory course on microservices and serverless, essential technologies for cloud native and application modernization workloads.
Rather than building large applications, known as monoliths, that perform all the functionality, microservices break down larger applications into smaller pieces that are independently maintainable and scalable, providing a host of benefits. This architecture is now used in the largest software organizations in the world, because it provides cost benefits, team autonomy, and other advantages.
Likewise, serverless has emerged as an increasingly popular compute option in the cloud era. Giving developers and operators the ability to run applications without managing underlying infrastructure.
In this course, you will create microservices using various methodologies. You will create REST APIs using Python and Flask. Next, you will learn the basics of Serverless applications, and how to run your applications on the IBM Cloud Code Engine.
The course contains several hands-on labs which allow you to practice and apply the content you learn in the course.
In the final project, you will create a front-end application composed of several microservices and deploy them on the Cloud using serverless.
Syllabus
- Introduction to Microservices
- In this module, you will learn methodologies to follow while creating microservices. Learn the best practices for your application’s development, deployment, and operation stages. Also, understand how microservices allow you to independently design, deploy, and scale them while avoiding a single point of failure in your architecture. And finally, get an insight into different anti-patterns to avoid while designing microservices-based applications.
- Web API Essentials: REST API and GraphQL
- In this module, you will learn about the REST architecture, its key characteristics of flexibility, uniformity, and scalability. Create your very first REST based API using Python and Flask. Use Swagger to document it and test it using cURL, Postman, and a functionality provided by Swagger. Learn the importance of API Gateways, why you need them, their advantages, especially for abstracting your backend and allowing you to plug additional services.
- Serverless Overview
- In this module, you will learn the basics of Serverless applications, and compare them with Containers and Traditional computing models while looking at the advantages and disadvantages of each. You will also understand the Function-as-a-Service model and its constraints. Further, get an overview of the Serverless Framework, a reference architecture, and other use cases. And finally, you will learn about the serverless platforms most commonly used these days.
- Create and Deploy Microservices using Serverless
- In this module, you will learn about how the IBM Cloud Code Engine builds and deploys your apps in seconds. You will then be introduced to IBM Cloud Code Engine’s use cases: deploy applications, build and deploy applications, and run jobs. Next, you will use a Dockerfile to build a container-based application. You will learn to use the IBM Cloud Console or IBM Cloud CLI to perform the application deployment tasks and then deploy it on the IBM Cloud Code Engine.
- Final Project
- Optional: OpenShift Essentials/Working with OpenShift and Istio
- Discover how Red Hat® OpenShift®, a container platform for Kubernetes, helps you automate the provisioning, management, and scaling of your Cloud applications. Explore what a service mesh is and how service meshes benefit organizations who are using microservices. Wrap up this module with an understanding of microservices on OpenShift.
Taught by
Alex Parker