CloudAcademy
  1. Home
  2. Training Library
  3. Amazon Web Services
  4. Courses
  5. Using Amazon Alexa to Perform Voice Activated CI/CD Build and Deployments

Project Introduction

The course is part of this learning path

DevOps Playbook - CI/CD Tools and Services
course-steps 5 certification 2 lab-steps 5

Contents

keyboard_tab
Using Amazon Alexa to Perform Voice Activated CI/CD Build and Deployments
play-arrow
Start course
Overview
DifficultyIntermediate
Duration29m
Students85

Description

Introduction
Are you interested in learning how to apply Amazon Alexa Skills to common development tasks?
This course explains and demonstrates how to automate the process of building, testing, and deploying a Java project to the cloud using Amazon Alexa Skills with Continuous Integration and Continuous Delivery (CI/CD). 

Course Overview
This content will help you gain an understanding of core CI/CD concepts. We start by covering aspects of CI/CD process automation using tools provided by AWS, Jenkins, Blue Ocean and Maven.  We then gain the skills needed to automate the process of building, testing, and deploying a Java project to the cloud using Amazon Alexa Skills. We learn how to do this by integrating the Alexa Skills Kit (ASK) with AWS services like Lambda and Elastic Beanstalk. 

Learning Objectives

  • Recognize and explain core concepts of Continuous Integration and Continuous Delivery (CI/CD)
  • Recognize and work with Jenkins Pipeline and Blue Ocean
  • Extend Amazon Alexa by developing a custom Alexa Skill using the Alexa Skills Kit (ASK)
  • Integrate Alexa with other AWS services like Lambda and Elastic Beanstalk

Intended Audience
Software Developers,  Build and Release Engineers,  Alexa Enthusiasts. 

Prerequisites
To get the most from this content we recommend you have an understanding of the following areas

  • Basic knowledge of the principles of software engineering and development
  • Basic knowledge of Amazon Web Services (AWS) and an AWS account
  • Basic knowledge of Continuous Integration/Continuous Delivery (CI/CD)
  • Basic knowledge of the Alexa Voice Service (AVS)

We recommend the following content to gain an understanding of these concepts 
DevOps Fundamentals
DevOps Playbook - CI/CD Tools and Services

 Feedback 
We welcome all feedback on content please reach out to us at support@cloudacademy.com with any questions or comments.  

Transcript

Automated builds, test automation, and code deployments are pivotal for teams that want to adopt a successful approach to DevOps. DevOps is an approach to software development that I will cover in more detail later. DevOps Pal is an Alexa app, called a skill, that further automates the process of getting code to production by kicking off a Jenkins pipeline through voice, further magnifying efficiency. You now have voice control over Jenkins through Alexa to build your code, launch automated tests, and deploy systems. Alexa can now deploy your code for you. How cool is that? Voice is a simple and frictionless way to interact with technology. It is an easier way to control Jenkins, and returns results about your deployments without having to touch a keyboard. Let's review the architecture diagram for the DevOps Pal skill, and discuss all of the components that make up the project. There are several components and tools used.

 I will give a brief overview of the components now, and we will discuss in more detail later. Echo. The Echo family of devices, which includes the Echo, Echo Plus, Echo Dot, Echo Show, Echo Spot, Echo Look, Tap, et cetera, are speakers with a built-in microphone and connect to the Alexa voice service running in the cloud via WiFi. These devices are often referred to as smart speakers. The Echo Show and Echo Spot both have screens. The Alexa Voice Service. I often refer to the Alexa Voice Service as the Alexa brain that runs in the cloud. The Alexa Voice Service is a suite of services built around a voice-controlled AI assistant. The Alexa Voice Service is flexible enough to allow third parties to add intelligent voice control to any connected product that has a microphone and a speaker. So, Alexa is not limited to just Echo devices. The Alexa Skills Kit is the SDK, software development kit, that allows developers to build their own apps, called skills, for Alexa. A skill extends the functionality of Alexa and teaches her to be smarter by answering questions that she did not know how to answer before. Alexa Developer Portal. 

An Alexa skill includes a voice user interface, or VUI, to understand customer intents, and a back-end cloud service to process intents by telling Alexa how to respond. The voice user interface and the integration with the back-end service is setup and configured through the Alexa Developer Portal. AWS Lambda. A Lambda is like a chunk of code that runs in the cloud. Developers can run their code without having to provision or manage servers. Applications created with AWS Lambda are considered to be serverless. Lambda supports several popular languages like Python, Java, Node.js, Go, C#, just to name a few. GitHub. A version control system for the Java project source code. The Java app for this project is a simple RESTful API that returns "hello world." Jenkins on EC2. Jenkins is an automation server that allows for the setup of a continuous integration or continuous delivery environment, for almost any combination of languages and source code repositories using pipelines. In this project, I used Jenkins to build, test, and deploy my Java API. Jenkins works alongside several other tools. Maven, a build automation tool for Java projects. JUnit, a testing framework for Java projects. 

AWS Command Line Interface. This is a command line tool that allows developers to access their Amazon Web Services account. Blue Ocean, this is a plugin for Jenkins that provides an easy-to-use interface to create and monitor Jenkins pipelines. It is more user-friendly than the traditional Jenkins user interface. AWS ElasticBeanstalk. This is an orchestration service that allows developers to deploy and manage web applications in the AWS cloud. In this case, it provisions a Tomcat web server, load balance servers, BPCs, et cetera. Postman. This is an HTTP client for testing web services.

About the Author

Kesha Williams (pronounced KEY-SHA) is an award-winning software engineering manager with over 20 years’ experience. She's passionate about emerging technologies, speaking, teaching, and mentoring. She's trained thousands of software engineers in the US, Europe, and Asia while teaching at the university level. She routinely leads innovation teams in proving out emerging technologies and shares her learnings at technical conferences around the globe. She recently won the Ada Lovelace Award in Computer Engineering from Look Far and the Think Different Innovation Award from Chick-fil-A for her work with Artificial Intelligence (AI). She was recently featured in Amazon's "Alexa Women of Voice" campaign and named an Alexa Champion. In her spare time, she leads the Georgia chapter of Technovation, writes news for InfoQ, authors video courses, and mentors women in tech.

To learn more about me, visit my website at http://www.kesha.tech