Tuesday, 19 May 2020

Agile vs Scrum


Agile vs Scrum
Agile
Agile management represents various software-development methodologies that have been influenced by iterative and incremental development, which includes Extreme Programming (XP), Rational Unified Process (RUP), Scrum, and others.
Agile process or methods provide an environment where there is constant evolution in requirements and evolution as a result of collaboration between self-organising cross-functional teams.
Agile methodologies foster a disciplined project-management approach that encourages a set of best practices, allowing a rapid delivery of high-quality software and enhancing a business approach, which aligns development with the customer needs.
 The Agile methodologies stand in contrast to the traditional waterfall methodology, where all the requirements are initially analysed and documented before the development begins. While in Agile approach, requirements are like the actual software-development advances within each iteration. This approach provides flexibility in accommodating changes in the requirements and priorities of the business.
Scrum
Scrum, on the other hand, is a subset of Agile. A Scrum is a simple and flexible Agile methodology for software development.
The Scrum is not a technique or a process but a lightweight and simple framework to address complex problems of a project and deliver a high-value product creatively. The major distinguishing attributes of Scrum are as follows:
1)     Simplicity
The development in Scrum is done in sprints, which are 1, 2, and 3 weeks in length. The Scrum team consists of:
1.1)
Product Owner: The major responsibility of the product owner is to maximize the value of the product and work of the development team. Additional duties include managing the product catalogue.
1.2)
Scrum Master: The development team consists of self-organising professionals who turn the product catalogue into product increment at the end of each sprint.
1.3)
Development Team: The Scrum Masters make sure that the Scrum team is abiding by the Scrum theory and its rules.
2)     Flexibility
In the traditional waterfall model, when the business and technical requirements are documented and detailed, it results in endless documentation. The Scrum makes use of user stories to describe the functions needed to be developed. A tool called Pivotal Tracker is used to store these user stories in a backlog. If a change needs to be made or a need arises to add to the user stories, in that case the team can adjust as early as the next sprint. This allows the business to change their minds and the development team to be flexible enough to adjust to those changes. The ability to accommodate change is a powerful attribute of the Scrum methodology.
3)     Communication and Collaboration
In Scrum methodology, the communication between business users takes place on a daily/weekly basis according to the sprint schedule. This close communication and collaboration is a crucial factor, promoting the success of the Scrum methodology. The Scrum team achieves collaboration in following ways:
·        The Product Owner, the Scrum Master, and the development team work closely on a daily basis.
·        Sprint-planning meetings are conducted, which allows the development team to organise its work based on the knowledge gathered from the business priorities.
·        Conducting daily scrum meetings where the development team can account for the work completed, its future prospects, and deal with issues if any.
·        Conducting sprint reviews allows the team members to evaluate their former work by recommending better practices with every sprint.


Sunday, 17 May 2020

Architecture diagram - AWS Route53 DNS Failover - AWS Region Level High Availability

Architecture diagram for

AWS Route53 DNS Failover - AWS Region Level High Availability


Thursday, 14 May 2020

Difference between Apache and Tomcat



Difference between Apache and Tomcat

Apache servers static content is meant to use a request/response scheme that is a message exchange pattern. The client makes a request to the server and the server sends a response.
In the case of the httpd server.
One of the main purposes of the Apache web server is to serve HTML files that are text files formated with the HTML markup language. Other static content could be served as well, like XML, JSON, images, video files, sound files, etc.

Tomcat server is a servlet container, which is designed to serve Java servlets. Tomcat is a server that is meant to run applications that were written in Java.
The servlets are Java classes that are used to serve dynamic web content. You can use Tomcat to serve static content as well. Recent versions of Tomcat have an improved performance to serve static content.

Httpd(Apache Web Server) is a web server whereas Tomcat is a Servlet Container. While at the simplest level both can be viewed as web servers that serve static files they have very different focuses. httpd is typically used to host static content and dynamic content written in perl, php amongst others. Tomcat is primarily intended to be used to serve web applications developed in Java to the Java Servlet specification.


Apache Web Server
Apache Tomcat Server
It is Open Source
It is Open Source
Apache Web Server is a HTTP Server
Apache Tomcat Server is a JSP / Servlet Container.
Apache Web Server uses HTTP Protocol
Apache Tomcat Server uses AJP Protocol instead of HTTP. AJP is a optimized version of HTTP Protocol.
Apache Web Server can handle static page when coded using HTML and can handle dynamic pages when coded using PHP, Perl, Ruby, Supports CGI scripts, Server API modules, etc.
Apache Tomcat Server can handle both dynamic and static pages at any time.
Apache Web Server can host any programming language.
Apache Tomcat Server was used for hosting java based code and Perl scripts
Apache Web Server can be used for load Balancing, Request processing and response processing.
It can manage entire life cycle such as pages which are generated through Servlet and pages which are generated through JSP can be managed.
Apache Web Server was purely made in C programming language
Apache Tomcat is purely made up of JAVA.
Apache Web Server can bind to 80 and 443 with less privileges.
Tomcat can’t bind to ports below 1024 without root privileges.
Available as XAMPP package
Available as XAMPP package
Supports SSL Options
Supports SSL Options
Apache Web Server is Stable.
Apache Tomcat Server is more stable than Apache Web Server.
Apache Web Server is basically a web server
Apache Tomcat Server is basically a application server that servers the servlet pages.
More widely used for PHP Web Server
More widely used for JSP pages.
Secure
Highly Secure than Apache Web Server
Supports  Integrated Windows Authentication
 Only limited integration was available using Tomcat based solution.
It can be used with Tomcat
It can be used but with limited functionality.
Faster than Tomcat while serving static pages
Faster than Apache while serving JSP dynamic pages.

Tuesday, 5 May 2020

Hypervisor

Hypervisor

Hypervisor definition
A hypervisor is a process that separates a computer’s operating system and applications from the underlying physical hardware. Usually done as software although embedded hypervisors can be created for things like mobile devices.

The hypervisor drives the concept of virtualization by allowing the physical host machine to operate multiple virtual machines as guests to help maximize the effective use of computing resources such as memory, network bandwidth and CPU cycles.

A hypervisor is a function that abstracts -- isolates -- operating systems (OSes) and applications from the underlying computer hardware. This abstraction allows the underlying host machine hardware to independently operate one or more virtual machines (VMs) as guests, allowing multiple guest VMs to effectively share the system's physical compute resources, such as processor cycles, memory space, network bandwidth and so on. A hypervisor is sometimes also called a virtual machine monitor (VMM).

A hypervisor would be used by someone who wants to consolidate space on a server or run multiple isolated applications on a single server.

Hypervisors are important to any system administrator or system operator because virtualization adds a crucial layer of management and control over the data center and enterprise environment. Staff members not only need to understand how the respective hypervisor works, but also how to operate supporting functionality such as VM configuration, migration and snapshots.



Sunday, 3 May 2020

Cloud computing with AWS

Cloud computing with AWS
Amazon Web Services (AWS) is the world’s most comprehensive and broadly adopted cloud platform, offering over 175 fully featured services from data centers globally. Millions of customers—including the fastest-growing startups, largest enterprises, and leading government agencies—are using AWS to lower costs, become more agile, and innovate faster.
The AWS Global Cloud Infrastructure is the most secure, extensive, and reliable cloud platform, offering over 175 fully featured services from data centers globally. Whether you need to deploy your application workloads across the globe in a single click, or you want to build and deploy specific applications closer to your end-users with single-digit millisecond latency, AWS provides you the cloud infrastructure where and when you need it.
With millions of active customers and tens of thousands of partners globally, AWS has the largest and most dynamic ecosystem. Customers across virtually every industry and of every size, including start-ups, enterprises, and public sector organizations, are running every imaginable use case on AWS.

Most functionality
AWS has significantly more services, and more features within those services, than any other cloud provider–from infrastructure technologies like compute, storage, and databases–to emerging technologies, such as machine learning and artificial intelligence, data lakes and analytics, and Internet of Things. This makes it faster, easier, and more cost effective to move your existing applications to the cloud and build nearly anything you can imagine.

AWS also has the deepest functionality within those services. For example, AWS offers the widest variety of databases that are purpose-built for different types of applications so you can choose the right tool for the job to get the best cost and performance.

Largest community of customers and partners
AWS has the largest and most dynamic community, with millions of active customers and tens of thousands of partners globally. Customers across virtually every industry and of every size, including startups, enterprises, and public sector organizations, are running every imaginable use case on AWS. The AWS Partner Network (APN) includes thousands of systems integrators who specialize in AWS services and tens of thousands of independent software vendors (ISVs) who adapt their technology to work on AWS.

Most secure
AWS is architected to be the most flexible and secure cloud computing environment available today. Our core infrastructure is built to satisfy the security requirements for the military, global banks, and other high-sensitivity organizations. This is backed by a deep set of cloud security tools, with 230 security, compliance, and governance services and features. AWS supports 90 security standards and compliance certifications, and all 117 AWS services that store customer data offer the ability to encrypt that data.

Fastest pace of innovation
With AWS, you can leverage the latest technologies to experiment and innovate more quickly. We are continually accelerating our pace of innovation to invent entirely new technologies you can use to transform your business. For example, in 2014, AWS pioneered the serverless computing space with the launch of AWS Lambda, which lets developers run their code without provisioning or managing servers. And AWS built Amazon SageMaker, a fully managed machine learning service that empowers everyday developers and scientists to use machine learning–without any previous experience.

Most proven operational expertise
AWS has unmatched experience, maturity, reliability, security, and performance that you can depend upon for your most important applications. For over 13 years, AWS has been delivering cloud services to millions of customers around the world running a wide variety of use cases. AWS has the most operational experience, at greater scale, of any cloud provider.

Global network of AWS Regions
AWS has the most extensive global cloud infrastructure. No other cloud provider offers as many Regions with multiple Availability Zones connected by low latency, high throughput, and highly redundant networking. AWS has 76 Availability Zones within 24 geographic regions around the world, and has announced plans for nine more Availability Zones and three more AWS Regions in Indonesia, Japan, and Spain. The AWS Region/Availability Zone model has been recognized by Gartner as the recommended approach for running enterprise applications that require high availability.