Skip to content

honestica/test-sre-louis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

Lifen

Care together

Infrastructure - SRE Challenge

Build and deploy

SRE people are here to be along with developer teams to help, advice and advocate infrastructure principles and practices. It notably means that we are the entrypoint as soon as developers need to build and deploy a brand new feature or service.

At Lifen, we are running a bunch of Rails services. Since we've decided to run our workloads on Kubernetes, we are packing our services through Helm.

So, now, let's imagine that one of the developers on the team went through a Rails tutorial on friday night and loved it. He/She decided to implement a new tool in it. Early monday morning, he/she had a Rails-based service that solves a crucial need for the support team, that has been raised the previous week.

The Support team manager eard about this service and immediately ask the CTO who pulled you in with the following inquiry:

  • "Can you deploy this app by the end of the day?".

As SRE, we are expecting from you to be able to quickly provide operational support for developer and to design the right answer regarding team needs and infrastructure requirements. Feel free to add (images, diagrams, etc) or describe anything that you think will help us in understanding your solution.

Deal with it! 😄

Problem

In order to ba able to deploy the service, you'll have to package the service to deploy it. Then you should be able to deploy it to the local Kubernetes cluster, once it's done, the service will be exposed through its url.

Requirements:

  • Packed through a Helm chart
  • Can run on a local Kubernetes
  • Highly available
  • Values are templated

As soon as the service is ready in its 1st version, you'll add a DB and an object storage service.

Requirements:

  • Database engine running on Kubernetes
  • The service is setup to take advantage of database and object storage

Since we are metric driven, we need to have a proper way to monitor this brand new service so, it's time to setup a simple monitoring stack with the very basics *(such as Prometheus+ELK) then expose the metrics endpoint. Also to be sure not missing any crash and monitor the release, we need to have a basic subset of alerts.

Requirements:

  • Monitoring stack is running on Kubernetes
  • It collects both metrics and logs
  • It has at least one monitor which trigger alerts

Questions

Regulation around our business makes security extremely important for us to opereate properly. It means that security need to be enforced on every new deploy. So, how would you answer to the following:

  • What kind of actions would you take to ensure that your service is secure enough?
  • Any recommandation to track service actions (database entry added, user logged in...)?
  • BONUS: What could go wrong with the application?
  • BONUS: Is there anything to check within the code of the application?
  • BONUS: Could we improve the performance, resilience or recovery from a disaster?

The Rails service example:

Submit your solution

You will open a Pull-Request on the technical test repository and within your SOLUTION.md you can detail your answer using text, images and whatever else you need in order to make your solution perfectly clear. Please also include the questions'answers.

We will then review together your proposition.

If you have any questions or need more information, feel free to open an issue!

Happy hacking! 🙂

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published