Ethereum

Ethereum is an open-source, public, blockchain-based distributed computing platform featuring smart contract (scripting) functionality. It provides a decentralized Turing-complete virtual machine, the Ethereum Virtual Machine (EVM), which can execute scripts using an international network of public nodes. Ethereum also provides a cryptocurrency token called “ether”, which can be transferred between participants and is used to compensate participant nodes for computations performed. It is a part of the vision of a fully decentralized web.

First of all, it is a non sense to call Ethereum the Bitcoin rival. If both are crypto currencies built on blockchains, Ether will be used more as a mean of exchange as it is at the heart of the smart contract system. Bitcoin can thus be viewed more as a store of value.
Bitcoin is a digital currency which was originally created as an alternative monetary system. On the other hand, Ethereum is created as a blockchain 2.0 platform that can be used to create and execute smart contract applications over blockchain. Bitcoin platform’s crypto token is called bitcoin (which can get confusing) and Ether is the crypto token used on Ethereum platform. Ethereum is essentially Bitcoin with a Turing-complete scripting language. A Turing complete code means that given enough computing power and enough time. Ethereum has its own Turing complete internal code, when Bitcoin has not this form of flexibility.

Smart contracts are applications with a state stored in the blockchain. They can facilitate, verify, or enforce the negotiation or performance of a contract. Ethereum contracts can be implemented in various Turing complete scripting languages. The Ethereum system has been described by the New York Times as “a single shared computer that is run by the network of users and on which resources are parceled out and paid for by Ether.”

Both Swarm and Whisper are complementary technologies contributing to the vision of Ethereum as a “world computer”. When imagining Ethereum as a metaphor for a shared computer, it should be noted that computation alone is not enough. For a computer to be fully useful, it also needs storage to “remember” things and bandwidth to “communicate” them. This could be summarised as such:

Contracts: decentralized logic
Swarm: decentralized storage
Whisper: decentralized messaging

OpenStack

OpenStack is a set of software tools for building and managing cloud computing platforms for public and private clouds. The cloud is all about providing computing for end users in a remote environment, where the actual software runs as a service on reliable and scalable servers rather than on each end-user’s computer. Cloud computing can refer to a lot of different things, but typically the industry talks about running different items “as a service”—software, platforms, and infrastructure. OpenStack falls into the latter category and is considered Infrastructure as a Service (IaaS). Providing infrastructure means that OpenStack makes it easy for users to quickly add new instance, upon which other cloud components can run. Typically, the infrastructure then runs a “platform” upon which a developer can create software applications that are delivered to the end users.

Infrastructure as a Service (IaaS)

Infrastructure as a service (IaaS) refers to online services that abstract the user from the details of infrastructure like physical computing resources, location, data partitioning, scaling, security, backup etc. Means computing infrastructure, virtual machines and other resources as resources to subscribers.
The term “infrastructure as a service (IaaS)” is considered to be part of the nomenclature of cloud computing, along with software as a service (SaaS), platform as a service (PaaS), desktop as a service (DaaS), managed software as a service (MSaaS), mobile back-end as a service (MBaaS), and information technology management as a service (ITMaaS).