AWS Introduction
Cloud Computing
Delivery of on demand computing resources.
- pay for what you use
- Elastic resources
- self and Metered services
- from single machine to data centers in minutes
AWS provides a service-driven application architecture in which you choose a specific service, such as S3, to perform specific tasks, such as to back up files on a hard drive.
Cloud Computing Advantages
- Global in minutes
- variable expense
- Economies of Scale
- Stop guessing capacity
- Increase Speed and Agility
- Focus on Business differentiators
Service Driven application
Also known as SOA - Service Oriented Architecture [reliable, flexible services]
Software Architecture evolution
client-server -> SOA -> MicroServices
Cloud Computing Service Models
Cloud Providers provide their services according to different Models, if we stack layers they are like this
Layers of service models | examples |
---|---|
SaaS | CRM, email, games |
PaaS | databse, webserver, development tools |
IaaS | Virtual Machines, Network, load balancers |
SaaS
A software distribution service that lets you use applications without actually having the applications installed locally. Another term used to describe this service is software on demand. The host, Provider, maintains the software, provides the required licenses, and does all the other work needed to make the software available. SaaS typically keeps the host completely in control and doesn’t offer any sort of monitoring.
providers:
Salesforce CRM Gmail Many Monitoring providers[New Relic] Many Database Providers [AWS RDS]
PaaS
A platform provides a complete solution for running software in an integrated manner on a particular piece of hardware. For example, Windows is a particular kind of platform. The virtual platform provided by PaaS allows a customer to develop, run, and manage applications of all sorts. PaaS is more of a development solution than a production environment solution
providers:
RedHat Openshift Google App Engine Microsoft Azure
IaaS
A form of cloud computing that provides virtualized computing resources. You essentially use IaaS to replace physical resources, such as servers, with virtual resources hosted and managed by Amazon.
providers:
- Amazon AWS
- Windows Azure
- Google Compute Engine
- Rackspace open Cloud
There are other models like, DaaS, i.e Database as a service , XaaS everything as a service
Cloud Computing Deployment Models
- All in the Cloud
- Hybrid
- On Premises
Exercises: 1) Continuous Integration tools Hari: Jenkins, Bamboo, Teamcity, Travis CI, GO CD. Krishna: 2) Agile, Scrum, Kanban, Lean methodologies Hari: Agile: describes a set of principles for software developement under which requirements and solutions eveolve through the collaborative effort of self-organizing cross-functional teams. It advocates planning, eveolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change. These principles support the definition and continuing evelution of many software development methods. Scrum: Scrum is an iterative and incremental agile software developemnt framework for managing product development. It defines “a flexible, holistic product development startegy where a development team works as a unit to reach a common goal, challenges assumptions of the traditional, sequential approach to product development and enables teams to self organize by encouraging physical co-location or close online collaboration of all the team members, as well as daily face to face communication among all the team members and disciplines involved. Lean methodologies: Lean thinking is a business methodology that aims to provide a new way to think about how to organize human activities to deliver more benefits to society and value to individuals while eliminating waste. The term lean thinking was coined by James P. Womack and Daniel T. Jones[1] to capture the essence of their in-depth study of Toyota’s fabled Toyota Production System.[2] Lean thinking is a new way of thinking any activity and seeing the waste inadvertently generated by the way the process is organized by focusing on the concepts of: Value, Value streams, Flow, Pull, Perfection.
Krishna: 3) SOA, Microservices, REST