4–7 Nov 2019

Building cloud native applications

Peter Jausovec (Oracle), Boris Scholl (Microsoft)
9:00—17:00 Monday, 4 November—Tuesday, 5 November
Location: M5
See passes and pricing

Participants should plan to attend both days of training course. Note: to attend training courses, you must be registered for a Platinum or Training pass; does not include access to tutorials on Tuesday.

This training will give you an understanding of fundamental building blocks of the next generation cloud-native apps. You will learn how to decide on containers vs. functions, which communication patterns to use, how to set up development and debugging environment, CI/CD pipelines and monitor and observe your applications using key metrics through theory, demos, and exercises, using Kubernetes.

What you'll learn, and how you can apply it

After this training, you will understand what makes an application a cloud-native application and get an excellent foundation to get started with designing and building cloud-native applications. Additionally, you will learn how to:

  • decide when to use containers vs. functions
  • set up the environment for development and debugging
  • set up CI/CD pipelines for builds and deployments
  • set up monitoring for key application metrics
  • decide on communication patterns
  • utilize a service mesh to do zero-downtime deployments, A/B tests, and canary deployments

Who is this presentation for?

This training is for software developers and architects who want to get an overview of cloud-native development and principles and start developing cloud-native applications.

Level

Beginner

Prerequisites:

Basic understanding of containers, Docker and Kubernetes is needed as we will use this through practical exercises. Note that you don’t need an in-depth understanding of Kubernetes or Docker—if you’ve built a Docker image before or used a Kubernetes CLI, you are all set. Even if you haven’t used these tools before, there will be plenty of guidance in exercises to get you started. You should also be familiar with at least one of the popular programming languages such as C#, Java, Go, or Javascript.

Hardware and/or installation requirements:

Make sure you have a computer with installed Docker and Kubernetes—you can either use Minikube or Docker for Mac/Windows or even a managed Kubernetes solution from one of the cloud providers.

Day One

Cloud native fundamentals

  • Fallacies of distributed computing and why they are still valid in a cloud-native world
  • Availability and SLAs in cloud-native applications
  • Microservices, containers, and functions
  • Meaning of serverless computing
  • Application modernization

Architecting cloud-native applications

  • Choosing the right compute option
  • Choosing the right data option
  • Service communication patterns
  • Understanding gateways, ingress, and egress
  • Defense in depth

Developing cloud-native applications

  • Development process – tools and environments
  • Local and in-cloud debugging
  • Configuration and secret management

Day Two

Testing cloud-native applications

  • Testing in the cloud-native world
  • Development, testing, staging environments
  • Testing in production
  • Mock services

Operating cloud-native applications

  • Setting up effective CI/CD pipelines
  • Builds, deployments, and releases
  • Importance of monitoring and observability
  • Centralized logging and visualizing metrics
  • Alerting and on-call

Service Mesh

  • What is it and why is it interesting?
  • Traffic management: Zero downtime deployments, A/B testing, Canary
  • Ingress and egress
  • Testing with the service mesh
  • Developing resiliency services
  • Security in the mesh

Portability

  • Portability considerations
  • Packaging options
  • Special cases: Air gapped environments

About your instructors

Photo of Peter Jausovec

Peter Jausovec is a software engineer with more than 10 years of experience in the field of software development and tech. During his career, he spent time in various roles, starting with QA then moving to software engineering and leading tech teams. His early career was mostly focused on developer and cloud tooling, however, in recent years he has been focusing on developing distributed systems and cloud-native solutions.

Photo of Boris Scholl

Boris Scholl is a Product Architect with the Azure Compute engineering team focusing on the next generation of distributed systems platforms and application models. He has been working on Azure Developer tools and platforms in various product engineering roles since late 2011. Boris re-joined the Azure Compute team in 2018 after having spent the 18 months outside Microsoft leading an engineering team to work on a microservices platform based on Kubernetes and Service Meshes. His work on distributed systems platforms has resulted in several patents about cloud computing and distributed systems. Boris is a frequent speaker at industry events, a contributor to many blogs, instructor for distributed computing topics and the lead author of one of the first books about microservices and Docker on Azure (Microservices with Docker on Azure).

Conference registration

See passes and pricing

Get the Platinum pass or the Training pass to add this course to your package. Early Price ends 20 September.

Leave a Comment or Question

Help us make this conference the best it can be for you. Have questions you'd like this speaker to address? Suggestions for issues that deserve extra attention? Feedback that you'd like to share with the speaker and other attendees?

Join the conversation here (requires login)

Contact us

confreg@oreilly.com

For conference registration information and customer service

partners@oreilly.com

For more information on community discounts and trade opportunities with O’Reilly conferences

velocity@oreilly.com

For information on exhibiting or sponsoring a conference

Contact list

View a complete list of Velocity Conference contacts