El desarrollo orientado hacia la nube es una realidad. Muchas empresas han reemplazado sus herramientas y modificado sus operaciones para obtener beneficios ofrecidos por este nuevo paradigma. Durante esta sesión se pretende abordar temas relacionados con el surgimiento de estas tecnologías. Entre los cuales destacan los distintos modelos de servicio y despliegue, estrategias para la adopción y el uso de herramientas existentes como Kubernetes.
2. Victor Morales
• +15 yrs as a Software Engineer
• .NET, Java, python, Go programmer
• OpenStack, OPNFV, ONAP and CNCF
contributor.
https://about.me/electrocucaracha
8. Business Drivers
• Capacity planning - Involves ensuring that an
organization has the right infrastructure,
resources and services to support their business
and customer base in the future.
• Operating Overhead - Reducing the up-front
cost of acquiring new IT infrastructure and the
on-going cost of owning and maintaining said
infrastructure.
• Operational Agility - The ability of a business to
respond to change by being able to scale its IT
resources.
https://d1smfj0g31qzek.cloudfront.net/above_the_clouds.ppt.pdf
10. Cloud computing is a specialized
form of distributed computing
that introduces utilization
models for remotely
provisioning scalable and
measured IT resources.
12. Deployment models
• Private Cloud – Operated solely for a
single organization.
• Community Cloud – Shared by several
entities that have a common purpose.
• Public Cloud – Available to be general
public and owned by a single organization
selling cloud services.
• Hybrid Cloud – Any combination of two or
more private/community or public clouds.
13. Cloud strategies In/Out
• Cloud In: Launch
applications directly onto
cloud IaaS, then later pull
workloads into your
datacenter.
• Cloud Out: Move your
datacenter into the modern
era with virtualization
https://www.idg.com/tools-for-marketers/2020-cloud-computing-study/
16. 1. We design software to reduce its cost.
2. The cost of software is ≈ the cost of changing the
software.
3. The cost of changing the software is ≈ the cost of the
expensive changes (power laws and all that).
4. The cost of the expensive changes is generated by
cascading changes
5.Coupling between elements of a design is this
propensity for a change to propagate.
6. So, design ≈ cost ≈ change ≈ big change ≈ coupling.
Transitively, software design ≈ managing
coupling.
https://medium.com/@kentbeck_7670/monolith-services-theory-practice-617e4546a879
The measure of good software architecture is the effort needed to satisfy client requirements.
17. It is a methodology for building software-as-a-service
apps.
1. Codebase: One codebase tracked in revision control, many deploys.
2. Dependencies: Explicitly declare and isolate dependencies
3. Config: Store config in the environment
4. Backing services: Treat backing services as attached resources
5. Build, release, run: Strictly separate build and run stages
6. Processes: Execute the app as one or more stateless processes
7. Port binding: Export services via port binding
8. Concurrency: Scale out via the process model
9. Disposability: Maximize robustness with fast startup and graceful
shutdown
10. Dev/prod parity: Keep development staging, and production as similar
as possible
11. Logs: Treat logs as event streams
12. Admin processes: Run admin/management task as one-off processes
https://12factor.net/
18. Microservices vs Monolithic services
https://microservices.io/
https://www.martinfowler.com/articles/microservices.html
User Interface User Interface
Business Logic
Data Access Layer
Microservice
Microservice Microservice