Tech talk/demo: Deploying multiple Open edX instances onto a Kubernetes Cluster with Tutor

I wanted to share a general update to this audience. This afternoon i released v1.0.0 of the Cookiecutter, the first general production release for fully automated build & deploy onto AWS. I have a continued interest in porting this code base for Digital Ocean, GCC, Azure et al as well as other popular CI platforms.

Related: the original Github Actions build & deploy workflows have been refactored into a collection of reusable components that you’ll find here: https://github.com/openedx-actions. These components greatly simplify working with Open edX on Kubernetes and most are designed to work independently of the Cookiecutter itself. Today I also promoted several of these actions to v1.0.0. See the README’s on each regarding any details that might bear on your decision of whether of not to incorporate these into your projects. The following actions are now available for general production use:

@andres “any kind of aws resource” is a very broad statement, however, i can confirm that to date i’ve been able to find high-quality vendor-supported Terraform components for everything that i needed for the Cookiecutter automation of building the AWS environment, which includes: VPC, EC2, EKS, ECR, RDS, IAM, S3, Elasticache, Certificate Manager and Route53.

@braden @lpm0073 @andres @gabor @keithgg @regis @jhony_avella @Felipe To accelerate a bit the process, should we do a synchronous meeting, with the goal of deciding on the definition of a shared project scope for this, that we would all agree to adopt and maintain together?

Here is a poll to find a time to do this – if you would like to participate, please add your availability :slight_smile: Try to select the maximum amount of slots, to help to find a common time:

The results will be there.

3 Likes

hello all, apologies to all for my absence. I’ve been down with COVID for the last couple of weeks, but feeling better now :slight_smile:

3 Likes

@antoviaque great idea! I just added my availability.

1 Like

Thank you for filling the availability poll! :+1:

It looks like we have two slots where everyone who has answered is available – let’s do July 26th at 16:00UTC? That’s right after the contributors meetup.

Zoom URL to join: Launch Meeting - Zoom

See you there! :slight_smile:

3 Likes

To follow-up on the latest meeting, should we plan a new one for 16th of August?
cc: @Felipe @antoviaque @lpm0073

Thanks to those who have attended this meeting. It was really nice to see everyone, and the conversation was fruitful!

Attendees

@MoisesGonzalezS @Neo @gabor @jhony_avella @Felipe @braden @andres @lpm0073 @keithgg @antoviaque

Action items

Resulting from the discussions:

  • @Felipe will look into Helm charts - shared helm charts to deploy Open edX on Kubernetes looks like a good option to collaborate with. He will post his review of it within the next couple of weeks
  • If this confirms that it would be worth using to try to work together, @Felipe and @braden will work out a concrete proposal document together, for shared helm charts to deploy Open edX on Kubernetes, which will then be reviewed by the group.

Recording

Chat log

00:07:40 Felipe Montoya: Miro | Online Whiteboard for Visual Collaboration
00:44:23 jhony: GitHub - eduNEXT/drydock
00:53:12 Gábor Boros: libdjango/templates · main · opencraft / Operations / OpenCraft Helm Charts · GitLab

2 Likes

We should definitely plan for a follow-up meeting – but maybe after we have completed the async steps decided during the meeting, and done at least one async pass of review on the document that will result from it? Synchronous meetings can be useful to resolve discussions that take a lot of back & forth – but for meetings to be useful there should be work & async discussions between them?

@Felipe @braden When do you think you will get a first draft up for review?

The inmediate next step was actually on me. Here is un update:

After our meeting I started my helm investigation enthusiastically and I think I have reached a point where its clear that writing helm charts for the openedx project is something that we at edunext would be very interested in.

Now, I suppose that we can write some plan together @braden. I’d use this place to leave some ideas that I think would be ideal to tackle or general concerns I have.

For the project

  • we need to make it flexible and modular
    • many composable libraries?
    • put everything behind flags?
  • get started with the project already adopting oep-55
  • publish the charts to artifacthub.io

The community politics

  • make it in a provider agnostic place? e.g the openedx org
  • use the core contributors program to handle participation
  • would we target this to eventually be a reference installation as per oep-45?

Learning from the configuration project

  • owner file or equivalent. I think this was the largest issue we found, trying to modify a role who’s maintainer or main user was not clear
  • public roadmap from the start
  • we will not be able to merge and maintain every thing that operators might want. The project should make it easy to extend this in other ways
  • sometimes the preprocessing of the values was the key element of a feature, but this was only a secure data thing that was never published. E.g: embargo CIDRs

Best practices

  • everything we have come to expect of an openedx project:
    • conventional commit
    • lots of CI actions to update, test on PRs
    • high test coverage. How is this achieved in helm
  • what are HELM specific best practices that we should adhere to?

I’ll be happy to work sync or async in the next step.

4 Likes

@Felipe That’s great! I’ll ping you early next week and we can start writing up the plan :slight_smile:

2 Likes

FYI, the plan for this is being formalized in OEP-59:

@braden @lpm0073 @andres @gabor @keithgg @regis @jhony_avella @Felipe @MoisesGonzalezS @Neo

To follow-up on the discussions in OEP-59: Deploying Open edX on Kubernetes Using Helm by bradenmacdonald · Pull Request #372 · openedx/open-edx-proposals · GitHub and get everyone up to date, would it be useful to schedule a follow-up to our last synchronous meeting? When we meet it also usually boosts the progress and decision-making, too :slight_smile:

And also, discussing with @Kelly_Buchanan this week we realized that there isn’t currently a good community working group to discuss this type of collaboration, and many other DevOps topics. The closest is the build-test-release working group, but it has its hands very full with managing the releases, and is understandably focused on it.

Maybe our current group could be a good starting point for a more general DevOps working group? From past experiences in other areas of Open edX, having regular meetings helps to find ways to collaborate more, and keep the momentum of initiatives going. It could also help liaising more with people from DevOps at 2U, which was what prompted this realization in the discussion with @Kelly_Buchanan – as 2U doesn’t use at all the named releases, the build-test-release discussions are often pretty far from their concerns.

5 Likes

Count me in the meeting! :blush:

I would like to attend the meetings of that DevOps working group in the future. Thanks.

Sounds good, I’m up for a meeting. The real question is though, who will organize it?

BTW as a status update: I am currently doing some prototyping with Helm and Tutor and hope to have some interesting findings to share in the coming weeks :slight_smile:

1 Like

A follow-up meeting sounds good. I’ll do the legwork and set it up.

We last had the meeting on Tuesday 26 July at 4pm UTC. Can we do the same this time and have it on the 22nd of November? I figure next week would be too short notice for most folks.

Or shall we do a whenisgood poll again?

3 Likes

I’m OK with the proposed schedule :slight_smile:

2 Likes

There is already the Product Working Group happening at that time - could we do 1h earlier, ie 2022-11-22T15:00:00Z2022-11-22T16:00:00Z? If that doesn’t work for some of us either, I’ll create a poll to find a time.

In the meantime, I’ll send a tentative invite to everyone, to make sure everyone is aware and has it on our calendars. For anyone who doesn’t get the invite, just ask me or anyone else from this thread to add you – or join directly at https://us02web.zoom.us/j/84300773265?pwd=bU5pSnBJZXpUNElzOHNDZEVWOW9mQT09

2 Likes

Can you send me an invite @antoviaque? I’m interested in joining the meeting.

1 Like