Why Cloud? - Architect View
Gourav Sharma
Empowering Businesses with Cloud & Community: Your Amazon TAM & CheersWithGourav Host.
There are some words that I never understood in my corporate career. Being a Trainer or Solution Architect the words like " being transparent to the user" (meaning the user does not see this!!), "Massively scalable or infinitely elastic" (means more CPUs, more users, other varying definitions or sometimes no definition!!) and “ turning the Industry on its head (means certainly an innovation and not sure about the somersault!!). The IT services (be it service providers or IT department in end-user firms) has its lingo (my 3 years of Corporate life). End to end (the highly elastic meaning of the end!!) deliver value (a lower price or 1% faster!!), and transformation solutions (mobile app or an AI algorithm!!) are some samples. Cloud is a technology foundation that has its own platitudes – server less (does not mean no server!!), Switching on and off VM instances ( Really?), Software-defined everything makes the hardware a commodity ( kidding me? Try to run a performance-hungry app that is badly architected on "any" hardware!!).
In the last 6 months, in my architectural journey, I have been involved in Cloud Consulting for IT partners and customers. As in any subject, the axiom the more you know, the less you know is so true, and the Cloud subject is no different. I spent several 100 hours of work on this, and I know I am barely getting started. I am convinced product firms, customers of private & public Clouds, Cloud service providers, and IT service providers need to understand the fundamentals well.
To understand the Cloud, we need to focus on four distinct areas.
- Business Knowledge or frequently called as Business Domain skills
Business knowledge will always remain critical to writing applications that deliver value to the organization and its customers. We need to understand the basics of the Industry, a given business domain within an Industry, and details of a given area. This knowledge will always remain essential whether we do Agile/ waterfall development.
2. Architecture knowledge – Business functions need to be expressed as Applications with requisite UI and data stores. Architecture can be Microservices ( ideally ) or Monolith.
Understanding the business and understanding how the systems need to be architected would remain paramount even in the Microservices era. The best microservices architecture will be based on what is called Domain-Driven Design. The functional and non-functional needs are ever more critical in building a great system. The mantra that a great engineer would develop ten times better code than a good engineer is valid even in this era. DevOps, CI/CD, and Developer workflow tools are essential for this era. Still, they would be irrelevant if the code is not designed and written well.
3. Orchestration and Automation layer knowledge – As it is difficult to manage many loosely coupled services, these technologies help. A good understanding of this layer is critical.
There is little doubt orchestrator like Kubernetes and Infrastructure automation tools like Ansible or Terraform will make life easier for operations people. Reams of paper written about replica sets, where a new well sized (means over configured) instance will be spun up that can replace the failed instance without worrying much. However, an operator with in-depth knowledge of the full stack would solve root cause problems (not just keep it running by spending more) for any kind of workload!- Stateful or no- state business logic.
4. Software-defined data center aka Private Cloud or Public Cloud Knowledge – SDX ( Software-defined Compute, Storage and Network knowledge – both software and hardware stack)
One would say that we need not know details of Intel or AMD processors powering the compute or storage system specifics and network characteristics in the cloud era. This assumption may be correct to some degree to the operations but certainly not for the Architecture team. Cascade Lake Gen X CPU is not equal to Previous Generation Intel CPU nor AMD Epyc processor is the same as AMD previous generation CPU. Input/output operations/ second on storage and network latency are essential characteristics that affect application performance. Age-old principles of understanding the infrastructure details to power the application to guarantee performance are valid even today. The software layer only helps provision, de-provision, and other administrative tasks, but underlying infrastructure still ensures performance. Basic knowledge of the infrastructure and the SDX software must be essential to design a top-class data center or leverage a world-class Cloud.
Conclusion
Cloud, associated tools, and practices have abstracted many complexities. Still, it should not encourage illiteracy of the basics of computer science, at least for several roles. Again, proper knowledge is essential to build great applications that leverage the appropriate infrastructure well.
Salespeople, software developers, customers, and skilled operators need to understand the fundamentals well to be effective in their roles. Not knowing is certainly not a virtue. I am convinced that let us not be clouded by the " cloud" and ignore the basics as we move to the Cloud. I am getting back to learning across the stack. Are you?
Intern at J.P Morgan | 4? @ CodeChef | 5? @ Hackerrank | Networking | Docker | K8s | CFTP | ICSI (CNSS) Certified Network Security Specialist | Secretary @ ISA HIT Student Section | Author @ IJSER
3 年Cloud computing is the on-demand delivery of compute power, database storage, applications, and other IT resources. Through a cloud services platform with pay-as-you-go pricing, You can provision exactly the right type and size of computing resources you need, You can access as many resources as you need, almost instantly. Simple way to access servers, storage, databases and a set of application services.