Application Development using Microservices and Serverless

IBM via Coursera

Go to Course: https://www.coursera.org/learn/applications-development-microservices-serverless-openshift

Introduction

### Course Review: Application Development using Microservices and Serverless In today's fast-evolving tech landscape, the ability to develop applications using microservices and serverless architectures is an invaluable skill. The Coursera course titled **"Application Development using Microservices and Serverless"** provides a well-structured introduction to these crucial technologies, and it stands out for its comprehensive coverage and practical orientation. #### Overview This course fills a significant gap for developers looking to modernize their applications. It shifts the focus from traditional monolithic applications to modern development strategies that allow for more flexibility and efficiency, breaking down large systems into smaller, independently deployable components. This modularity not only simplifies maintenance but also enhances scalability and reliability—an essential consideration for today’s cloud-native workloads. #### Course Syllabus Breakdown 1. **Introduction to Microservices**: - The course kicks off with methodologies for creating microservices, emphasizing best practices from development through to deployment. It pays particular attention to design patterns and anti-patterns, equipping you with the knowledge to avoid common pitfalls while laying a solid framework for effective microservices architecture. 2. **Web API Essentials: REST API and GraphQL**: - The next module provides hands-on experience in building RESTful APIs using Python and Flask. It covers essential tools such as Swagger for documentation and testing, and dives into API Gateways—a critical component for managing API traffic and enhancing security. This module is particularly valuable as it bridges theoretical concepts with practical application. 3. **Serverless Overview**: - Following the web API essentials, learners are introduced to serverless architecture. Comparisons with containerization and traditional computing models help clarify the pros and cons of each approach. The exploration of Function-as-a-Service offers insights into building scalable applications without the overhead of managing servers. 4. **Create and Deploy Microservices using Serverless**: - This hands-on module walks participants through deploying applications with IBM Cloud Code Engine, including creating a container-based application using Docker. Engaging with tools like the IBM Cloud Console empowers students to perform deployment tasks efficiently, a key competency for modern developers. 5. **Final Project**: - Students can consolidate their learning through a final project, giving them the opportunity to apply new skills in a practical setting. This project is a crucial component as it helps cement the concepts learned throughout the course. 6. **Optional: OpenShift Essentials/Working with OpenShift and Istio**: - For those looking to dive deeper into container orchestration, this optional module covers Red Hat OpenShift, introducing concepts like service mesh. This is a beneficial addition for developers seeking to understand the wider ecosystem of cloud-native technologies. #### Recommendations **Who Should Take This Course**: This course is ideal for entry-level software developers, aspiring cloud engineers, and anyone who wishes to transition from monolithic applications to microservices architecture. A basic understanding of programming and cloud concepts is beneficial but not mandatory. **What You Will Gain**: By the end of this course, participants will have gained not only theoretical knowledge but also practical skills applicable in real-world scenarios. You’ll be equipped with the tools needed to design, deploy, and manage modern scalable applications. **Pros**: - Comprehensive syllabus covering essential topics in microservices and serverless architecture. - Hands-on projects and exercises that promote active learning. - Expert instructors from reputable institutions. **Cons**: - While the course offers a lot of valuable content, some sections may require additional research or practice outside of the provided materials for complete mastery. ### Conclusion The **"Application Development using Microservices and Serverless"** course on Coursera is a well-designed program for anyone eager to step into modern application development. With its practical approach and solid foundational knowledge on key technologies, this course is highly recommended for developers aiming to upgrade their skills in line with industry standards. Whether you're a newcomer to software development or looking to enhance your existing skill set, this course will provide valuable insights and practical experience that are essential in today’s technology-driven world.

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.

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

Skills

Representational State Transfer (REST) Cloud Applications Openshift Microservices serverless

Reviews

I finished this course in less than 2 weeks. The course was easy to follow and can give you a quick start on IBM cloud and Serverless Applications. Highly recommend this course.

Thanks for this. I enjoyed the course, and the info was well laid out.

It is a bit challenging, but labs and project in a very good way are introducing the Cloud Computing technologies. I liked the classes very much.

This is a great course. The lab is very helpful to get some clear understanding of the key concepts of cloud native development.

Excellent. Kindly make sure that the Code Engine CLI sometimes spent much time to starts and as per tests, this would be due to some issue with lab/count and nothing related about personal computers.