43
Welcome to the SGCI Webinar! We will be starting shortly. Your audio has been muted, and you are encouraged to turn off your video during the presentation. Controls for these are near the bottom of the right-side control panel for BlueJeans. You may submit questions at any time using Chat, and the moderator will share them with the presenter when appropriate. This presentation will be recorded and slides will be posted. 1

Creating a developer pipeline by teaching gateway technologies

Embed Size (px)

Citation preview

Page 1: Creating a developer pipeline by teaching gateway technologies

Welcome to the SGCI Webinar!• We will be starting shortly.

• Your audio has been muted, and you are encouraged to turn off your video during the presentation.• Controls for these are near the bottom of

the right-side control panel for BlueJeans.

• You may submit questions at any time using Chat, and the moderator will share them with the presenter when appropriate.

• This presentation will be recorded and slides will be posted.

1

Page 2: Creating a developer pipeline by teaching gateway technologies

Creating a developer pipeline by teaching

gateway technologiesMarlon Pierce, Suresh Marru

Science Gateways Research Center, Indiana [email protected], [email protected]

Page 3: Creating a developer pipeline by teaching gateway technologies

http://sgrc.iu.edu

Page 4: Creating a developer pipeline by teaching gateway technologies

The Pipeline Problem

Finding and retaining people to work on science gateways is tough.

Page 5: Creating a developer pipeline by teaching gateway technologies
Page 6: Creating a developer pipeline by teaching gateway technologies

If only there was an untapped reservoir of talent close by....

Page 7: Creating a developer pipeline by teaching gateway technologies
Page 8: Creating a developer pipeline by teaching gateway technologies

The Pipeline Solution

Recruit students to work with us by teaching a graduate level class on the underpinnings of gateways.

Embrace change.

Page 9: Creating a developer pipeline by teaching gateway technologies

What Is a Science Gateway?A Science Gateway is a user-centric environment

for conducting online computational science

Page 10: Creating a developer pipeline by teaching gateway technologies

(Not actual IU students)

Page 11: Creating a developer pipeline by teaching gateway technologies

What if Mark Zuckerberg Read More Chemistry and Biology Books?

Page 12: Creating a developer pipeline by teaching gateway technologies
Page 13: Creating a developer pipeline by teaching gateway technologies

Goal 1: Apply basic distributed computing concepts to Science

Gateways.

Page 14: Creating a developer pipeline by teaching gateway technologies

Goal 2: Apply new architectures, methodologies, and technologies to

Science Gateways: Microservices, DevOps

Page 15: Creating a developer pipeline by teaching gateway technologies

Browser

Web Interface Server

Application Server

Server SDK

Client SDK

IU: Big Red 2

Resource Plugins

XSEDE: Stampede XSEDE: Comet Juelich: Jureca

HTTPS

HTTP or TCP/IP

Facebook doesn’t look like this, so why should science gateways?

Page 16: Creating a developer pipeline by teaching gateway technologies

Goal 3: Teach open source software practices

Page 17: Creating a developer pipeline by teaching gateway technologies

Challenges for Science Gateways• Providing a rich user experience • Defining an API for the application server• Defining the right microservices.• Implementing the components, wiring them together correctly.• Supporting multiple gateway tenants• Fault tolerance for components• State management• Continuous delivery• Security management• Supporting full scientific exploratory cycle

Page 18: Creating a developer pipeline by teaching gateway technologies
Page 19: Creating a developer pipeline by teaching gateway technologies

What Do We Teach?

A quick survey of course material

Page 20: Creating a developer pipeline by teaching gateway technologies

Micro-Services

DevOpsDistributed Systems

Page 21: Creating a developer pipeline by teaching gateway technologies

Putting It All Together: Gateways and Microservices

Page 22: Creating a developer pipeline by teaching gateway technologies

Virtualization, Containers, Docker

Page 23: Creating a developer pipeline by teaching gateway technologies

API and Metadata Model Design

Page 24: Creating a developer pipeline by teaching gateway technologies

Messaging Systems: RabbitMQ, Apache Kafka

Page 25: Creating a developer pipeline by teaching gateway technologies

Resource Management and Scheduling: Mesos, Aurora, and Torque

Page 26: Creating a developer pipeline by teaching gateway technologies

Distributed State Management: Zookeeper, Consul

Page 27: Creating a developer pipeline by teaching gateway technologies

Security: OAuth2 and OpenIDConnect

Page 28: Creating a developer pipeline by teaching gateway technologies

Putting It All In Place: Continuous Integration and Deployment

Page 29: Creating a developer pipeline by teaching gateway technologies
Page 30: Creating a developer pipeline by teaching gateway technologies

Mission Accomplished! Students learned on their own.

Page 31: Creating a developer pipeline by teaching gateway technologies
Page 32: Creating a developer pipeline by teaching gateway technologies
Page 33: Creating a developer pipeline by teaching gateway technologies
Page 34: Creating a developer pipeline by teaching gateway technologies
Page 35: Creating a developer pipeline by teaching gateway technologies

More Information and Next Steps

• http://courses.airavata.org• Additional material in Canvas

• Details on assignments• We are interested in taking this to a broader audience

Page 36: Creating a developer pipeline by teaching gateway technologies

Thank you for participating!

• Please offer your feedback with our 30-second evaluation:http://sciencegateways.org/webinareval

• Join us next month (March 8) for

Building a Modern Research Data Portal with Globus – Introduction to the Globus Platform

36

Page 37: Creating a developer pipeline by teaching gateway technologies

Science!

Page 38: Creating a developer pipeline by teaching gateway technologies

Spring 2016 Course Overview• Students organized into teams of 3-4• 8 biweekly project milestones, each depended on the previous

assignment.• Basic sequence, Part 1:

• Learn to submit jobs on IU’s Karst Cluster, MOAB scheduler• Develop core job management application• Design an API• Design a Web front end• Capture job execution metadata

• All code must be in GitHub, must build cleanly on the grader’s laptop

Page 39: Creating a developer pipeline by teaching gateway technologies

Spring 2016 Project Milestones, Part 2• Integrate with a continuous integration and deployment system

• Travis-CI and Amazon Code-Deploy• Apache Jenkins on Jetstream

• Break up your monolithic Web applications into microservices• Combine with CI/CD

Page 40: Creating a developer pipeline by teaching gateway technologies

Spring 2016: What Worked, What Didn’t?• Small class, we got to know the

students pretty well.• Students managed to build basic

functioning gateways that used CI/CD automatically linked to GitHub accounts.

• Students got bogged down in job submission issues.

• Students had trouble breaking up their monolithic Web applications into microservices.

Page 41: Creating a developer pipeline by teaching gateway technologies

Fall 2016: Begin at the End• For Fall 2016, we reverse the order.• Students learned CI/CD and microservices in the first assignments.• We moved aggressively to problems of load balancing, fault tolerance,

and containerization of services.• We de-emphasized job submission to traditional clusters

• Used Apache Mesos and Apache Aurora for this.

Page 42: Creating a developer pipeline by teaching gateway technologies

Fall 2016: What Worked, What Didn’t• All the students were able to

keep up with the assignments.• Many were using technologies for

the first time.

• Some surprises• Some teams took it as a challenge

to use different approaches.

• Didn’t have the chance to get to know students as well as before.

• Larger class, graders

• Monthly assignments were too large.

• Biweekly worked better.

Page 43: Creating a developer pipeline by teaching gateway technologies

Spring 2017: Advanced Topics• In the Spring 2016 and Fall 2016 courses, we knew the answers

(mostly).• Now in Spring 2017 course, we tackle problems we don’t know the

answers to.• Or, if you prefer, for a given problem,

• Introductory Class: Find an answer that works• Advanced Class: Find the best answer

• How do you do that?