Navigating the Cloud: How to Avoid Dead Ends
Márk Sági-Kazár
2024-09-20 @ AWS Lounge Hungary
Bad news
There is no silver bullet.
~60% of cloud adoption challenges are not technical
- No alignment on goals
- Lack of skills / experience
- Lack of processes
- Underestimating costs
- Compliance & security
Adopting cloud for the wrong reasons
- Dev: “I want more control over the infrastructure”
- Ops: “I want to stay on the job market”
- Biz/mgmt: “I don’t care, just make it cheap and work”
Stakeholder unalignment
- Dev: “Ops problem, I don’t care”
- Ops: “I can’t run this shitty application in the cloud”
- Biz/mgmt: “I don’t care, just make it cheap and work”
Adoption strategy
- Lift an shift
- Greenfield projects
…anything in-between
Underestimating costs
- Cost of hiring new talent / picking up skills in-house
- Cost of application changes
- Too wide scope
- Unidentified gaps
Cloud vs On-premise
- Resource allocation: easier, faster, unlimited
- Managed services
Cloud Native
Cloud Native is a set of contracts between dev and ops to streamline the delivery of applications in the cloud.
Definition
Cloud Native application
- Delivered as a container
- Horizontally scalable
- Resilient
- Observable
- Uses cloud services (eg. for storage)
…and a gazillion other things
- Managed data services
- Scaling
- Observability
- IaC
- Security
- Compliance
Microservices
“This application can only run in the cloud if it’s rewritten as microservices”
Summary
- Align goals and stakeholders
- Identify gaps
- Pick the right scope
- Bridge the gap between dev and ops
- Iterate