@jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects...
Transcript of @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects...
![Page 1: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/1.jpg)
Microservices and Serverless in Python projects
José Manuel OrtegaEuropython 2018
@jmortegac
v 0.5
![Page 2: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/2.jpg)
Agenda
•Microservices in python• Introducing Serverless and Function as a Service•Python frameworks for AWS•AWS Lambda functions with zappa and chalice•Deploy AWS lambda functions from aws console
2Microservices and Serverless in Python projects
![Page 3: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/3.jpg)
Microservices vs Serverless
3Microservices and Serverless in Python projects
![Page 4: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/4.jpg)
Microservices
4Microservices and Serverless in Python projects
![Page 5: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/5.jpg)
Asynchronous calls with asyncio and aiohttp
5Microservices and Serverless in Python projects
![Page 6: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/6.jpg)
REST API Development
6Microservices and Serverless in Python projects
![Page 7: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/7.jpg)
Performance
7Microservices and Serverless in Python projects
8% less memory6% faster response times
![Page 8: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/8.jpg)
Microservices with graphql
8Microservices and Serverless in Python projects
![Page 9: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/9.jpg)
9Microservices and Serverless in Python projects
![Page 10: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/10.jpg)
10Microservices and Serverless in Python projects
![Page 11: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/11.jpg)
11Microservices and Serverless in Python projects
![Page 12: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/12.jpg)
12Microservices and Serverless in Python projects
![Page 13: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/13.jpg)
13Microservices and Serverless in Python projects
SERVER
![Page 14: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/14.jpg)
14Microservices and Serverless in Python projects
CLIENT
![Page 15: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/15.jpg)
Microservices benefits
•Separation of concerns•Services are decoupled from each other•Managing smaller projects•More scaling and deployment options
15Microservices and Serverless in Python projects
![Page 16: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/16.jpg)
16Microservices and Serverless in Python projects
Serverless
![Page 17: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/17.jpg)
Serverless architecture
•FaaS - Function as a Service•Fully managed computing
• Provisioning• Scalability• Monitoring• Logging
•Deploy your code•Pay only for actual usage
17Microservices and Serverless in Python projects
![Page 18: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/18.jpg)
Serverless architecture
18Microservices and Serverless in Python projects
![Page 19: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/19.jpg)
Serverless uses cases➢ REST API
• Stateless services and microservices• Suitable for Chat bots
➢ Events• File processing (S3 event) & Data ingestion• Data/Stream processing• Incidents handling (CloudWatch event log)• IoT
➢ Scheduled tasks• Monitoring, load testing• Periodical jobs
19Microservices and Serverless in Python projects
![Page 20: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/20.jpg)
20Microservices and Serverless in Python projects
![Page 21: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/21.jpg)
Serverless benefits
•No server management•Automatic scaling and load balancing•Lower infrastructure costs•Flexibility and high availability• Infrastructure managed by service provider
21Microservices and Serverless in Python projects
![Page 22: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/22.jpg)
Serverless drawbacks
• The tools around the deployment automation of serverless functions are still in development.
•There is no control over containers when the execution environments are created or destroyed
•Debugging, Deploying and monitoring
22Microservices and Serverless in Python projects
![Page 23: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/23.jpg)
Cloud providers
•AWS•Microsoft Azure•Cloud platform•OpenWhisk(OS)•Kubeless(OS)
23Microservices and Serverless in Python projects
![Page 24: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/24.jpg)
Aws lambda
24Microservices and Serverless in Python projects
![Page 25: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/25.jpg)
25Microservices and Serverless in Python projects
![Page 26: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/26.jpg)
Aws lambda functions
26Microservices and Serverless in Python projects
![Page 27: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/27.jpg)
Aws lambda functions
27Microservices and Serverless in Python projects
![Page 28: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/28.jpg)
Create lambda function with awscli
28Microservices and Serverless in Python projects
$ aws lambda create-function \--region eu-west-1 \--function-name MyHandler\--zip-file fileb://handler.zip \--role arn:aws:iam::XXX:role/MyLambdaRole \--vpc-config SubnetIds=XXX,SecurityGroupIds=XXX \--handler handler.handler \--runtime python3.6 \--profile personal \--timeout 10 \--memory-size 512
![Page 29: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/29.jpg)
29Microservices and Serverless in Python projects
![Page 30: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/30.jpg)
30Microservices and Serverless in Python projects
![Page 31: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/31.jpg)
Frameworks
31Microservices and Serverless in Python projects
python-λ
![Page 32: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/32.jpg)
32Microservices and Serverless in Python projects
![Page 33: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/33.jpg)
33Microservices and Serverless in Python projects
![Page 34: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/34.jpg)
Zappa architecture
34Microservices and Serverless in Python projects
![Page 35: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/35.jpg)
Zappa
35Microservices and Serverless in Python projects
![Page 36: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/36.jpg)
36Microservices and Serverless in Python projects
![Page 37: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/37.jpg)
37Microservices and Serverless in Python projects
![Page 38: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/38.jpg)
38Microservices and Serverless in Python projects
![Page 39: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/39.jpg)
39Microservices and Serverless in Python projects
# zappa_settings.json{
"dev": {"aws_region": "us-east-1","django_settings": "hello.settings","profile_name": "default","project_name": "hello","runtime": "python3.6","s3_bucket": "zappa-huyg6op0s"
}}
![Page 40: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/40.jpg)
Zappa deploy
40Microservices and Serverless in Python projects
$ zappa deploy <env>
•Zips code and dependencies•Create AWS Lambda and deploys the zip•Creates endpoint on API Gateway and links to AWS Lambda
![Page 41: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/41.jpg)
Zappa deploy
41Microservices and Serverless in Python projects
![Page 42: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/42.jpg)
Zappa
42Microservices and Serverless in Python projects
![Page 43: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/43.jpg)
Zappa Asynchronous Task
43Microservices and Serverless in Python projects
![Page 44: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/44.jpg)
Chalice
44Microservices and Serverless in Python projects
•Python Serverless Microframework for AWS•Each endpoint is a separate function
![Page 45: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/45.jpg)
Chalice
45Microservices and Serverless in Python projects
![Page 46: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/46.jpg)
Chalice
46Microservices and Serverless in Python projects
![Page 47: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/47.jpg)
Chalice example
47Microservices and Serverless in Python projects
![Page 48: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/48.jpg)
Chalice methods
48Microservices and Serverless in Python projects
Resource HTTP Verb AWS Lambda
/talks GET get_talks
/talk POST add_new_talk
/talks/{ID} PUT update_talk
/talks/{ID} DELETE delete_talk
![Page 49: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/49.jpg)
Chalice methods
49Microservices and Serverless in Python projects
![Page 50: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/50.jpg)
Chalice options
50Microservices and Serverless in Python projects
![Page 51: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/51.jpg)
Chalice deploy
51Microservices and Serverless in Python projects
Updating IAM policy.Updating lambda function...Regen deployment package...Sending changes to lambda.API Gateway rest API already found.Deploying to: dev
![Page 52: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/52.jpg)
52Microservices and Serverless in Python projects
![Page 53: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/53.jpg)
https://github.com/lambci/docker-lambda
53Microservices and Serverless in Python projects
![Page 54: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/54.jpg)
http://serverlesscalc.com/
54Microservices and Serverless in Python projects
![Page 55: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/55.jpg)
55Microservices and Serverless in Python projects
![Page 56: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/56.jpg)
https://github.com/serverless/examples
56Microservices and Serverless in Python projects
![Page 57: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/57.jpg)
References
57Microservices and Serverless in Python projects
•https://aws.amazon.com/blogs/compute/microservices-without-the-servers
•https://github.com/Miserlou/Zappa•https://github.com/pmuens/awesome-serverless
•https://github.com/aws/chalice•https://chalice.readthedocs.io/en/latest
![Page 58: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/58.jpg)
58Microservices and Serverless in Python projects
Serverless architecture is the next generation of cloud evolution
![Page 59: @jmortegac Europython 2018 José Manuel Ortega · Microservices and Serverless in Python projects 19. Microservices and Serverless in Python projects 20. Serverless benefits •No](https://reader030.fdocuments.in/reader030/viewer/2022041016/5ec7eb6d67a31852e735405f/html5/thumbnails/59.jpg)
Thank you!
José Manuel Ortegajmortega.github.io