Advanced

Approx. {{courseState.expectedDuration}} {{courseState.expectedDurationUnit}}

Assumes 6hr/wk (work at your own pace)

Built by
Join {{21080 | number:0}} Students
view course trailer
View Trailer

Course Summary

You will learn about challenges of building applications that can serve hundreds of thousands of users, and how you can prepare for them as a developer. And more importantly - you will learn how to harness the power of App Engine - Platform as a Service, run by Google, so you can focus on your application's features, not on managing infrastructure that runs your app. Let Google run and scale the infrastructure and do what you do best - write code!

However, to use App Engine effectively, you have to learn how it works, and this is exactly what this course will teach! You will also learn the best practices of using Cloud Endpoints that allow you to easily create RESTful services and make them accessible to iOS, Android and Javascript clients. They allow you to automatically generate client libraries to make wiring up the frontend easy. And there are some nifty built-in features, like denial-of-service protection and OAuth 2.0 support.

Why Take This Course?

Cloud computing is one of the fastest growing fields right now. And no wonder - it provides an easy and affordable way to run your applications. However, the traditional way of hosting and scaling applications on Virtual Machines in the Cloud comes with a cost - even if the infrastructure is virtual, you still have to manage it - do load balancing, bring instances up and down, take care of patching your software and in general spend a lot of your time and resources on just the infrastructure.

Google is one of the pioneers in the business of scaling, and now you can use their infrastructure, and let them do all the scaling work so that you can focus on the unique features your app provides.

Are you a Python developer? If so, maybe you'd like to check out our Developing Scalable Apps in Python course.

Project

There will be an overarching project throughout the course, starting from Lesson 2. You will develop an application for organizing conferences, similar to sites like meetup.com or eventbrite.com. We have provided the frontend of the app, and all your effort will go into making the backend.

And because you will be using Cloud Endpoints, it’s really easy to hook up your backend with a native mobile app. We have created an Android app that uses the same backend as the web frontend. You will able to recompile it against your backend, if you so wish!

At the end of the course you will do a final project, where you will have to expand the functionality of the same app.

Prerequisites and Requirements

You should be fairly comfortable programming in Java, preferably with some experience developing web applications and working with databases for at least a year. You will be developing the backend of a sample app, so you don’t have to worry about HTML or JavaScript.

You should have sufficient permissions to install new software on your computer, and comfortable configuring it, including setting up system variables.

We will be using Maven and Eclipse for this course, and we strongly suggest that you use them as well.

See the Technology Requirements for using Udacity.

What Will I Learn?

Projects

You will work on the Conference Central app throughout the course, with every lesson adding more functionality, and harnessing more of the power of Cloud App Engine.

Syllabus

Overview

This course consists of 6 lessons. First one is an overview of cloud computing and the benefits of Platform as a Service. Lessons 2-5 will cover important theoretical concepts of Google App Engine and also plenty of hands-on exercises implementing what you have learned. Lesson 6 will be a short intro on an easy way to create native mobile apps that talk to your backend.

Lesson 1: Scalability Basics

Do you know how and why server racks were invented years ago? Have you realized all of the problems that you have to solve if you will try to scale your app by yourself? Learn about a better way.

Lesson 2: Getting Started

Set up your first App Engine project and learn how to define Cloud Endpoints.

Start the course project app - Conference Central and add authentication and user profiles.

Lesson 3: Storing and Retrieving Data

One of the most important things you want to do in your app is storing data. In this lesson you will learn what is Google App Engine Datastore, how is it different from RDBMS and how you can use it in your applications.

Add the ability to store and retrieve user profiles and conferences to the course project app.

Lesson 4: Advanced Datastore Concepts

Learn more about how Datastore works, including queries, filters, indexes and transactions.

Add different ways to query conferences.

Lesson 5: Advanced App Engine Topics

There are a lot of things you might want your application to do in background, without making the user wait, or even initiate the process. Learn about task queues and cron jobs and how you can use them to add advanced functionality to your app. You will also learn about Memcache, and get an overview of topics like Edge Caching, AppStats and other methods of optimising your apps performance.

Add a push queue, cron job and a customised Memcache entry to your app.

Lesson 6: App Engine and Mobile Apps

You have been using Cloud Endpoints in the app, and now it’s time to see how you can use them in a mobile app. Learn how to generate native libraries for Android and iOS that can talk to your backend. You can even recompile the Android app we provide with our course, to work against your own project. How cool is that?

Generate mobile client libraries for your app.

Instructors & Partners

Magnus Hyttsten works as a Developer Advocate at Google. He is an uncompromising software technologist and product marketing fanatic who likes to work in fast-paced environments. Prior to joining Google, he worked for a company in the Telecommunications Industry that he co-founded and worked as CTO for since 2000. He enjoys the datacenter, statically-typed programming languages, evangelizing about technology, and doing things that have not been tried before. Right now, he is extremely passionate about connecting mobile devices with the Cloud.

Jocelyn Becker wrote the developer documentation for the very first external Google API, the Adwords API, back in 2004, and she's been documenting Google APIs and training developers to use them ever since. For the past couple of years she's been developing and delivering training courses for Google Cloud products, and she wants to help others learn just how easy it is to get your web apps running when you use App Engine.

instructor photo

Gundega Dekena

Course Developer

Once upon a time Gundega was a Udacity student. In a way she still is, because she is learning new things from instructors she works with and her Udacity coworkers every day.

If you occasionally want to read fun news about robotics, science and games, follow her on G+ - https://plus.google.com/+GundegaDekena.

track icon

View more courses in Web Development