An on-boarding kit for the IBM Bluemix Schematics service.
- Introduction
- Video of Terraform Execution
- Terminology
- Terraform Documentation & Resources Supported
- Early Access
- Sponsor Users
- Getting Started
- Examples
Modern cloud infrastructure ranges from bare metal servers, to virtual machines, to containers, to managed services, to SaaS, to PaaS, and beyond. Many times that infrastructure spans multiple data centers, companies, products, and regions around the world. Modern infrastructure is cloud native and global scale.
IBM Cloud Schematics gives architects, developers, and operators the ability to define and manage their modern cloud infrastructure as a single unit, across any number of environments, in an automated and repeatable fashion. In traditional operations developers and operators provision infrastructure and services using multiple and fragmented components and tools in a manual and repetitive manner which severely limits reproducibility, transparency, and codification. This obscures the “how” and “why” of infrastructure choices and changes which limits usage, delays time to value, and impedes ecosystem expansion.
IBM Cloud Schematics uses HashiCorp's Terraform under the hood. Schematic Modules and Configurations are written in HashiCorp Configuration Language.
IBM Cloud Schematics allows users to define their infrastructure in files that can be checked into source control, which enables versioning, commit messages that can reveal the reason behind a change, an audit trail to determine who changed what and when, and collaboration, review, and transparency when working on infrastructure as a team.
IBM Cloud Schematics gives IBM a way to offer infrastructure building blocks to its customers, as well as complete and prescriptive solutions. Customers can more quickly build solutions for the platform, understand how to build those solutions, and better grasp how the platform products and offerings can be put together to create solutions.
IBM Cloud Schematics further enables teams and companies to build up a library of resources that can be reused again and again to net the same results. From tiny building blocks to complete solutions. Need a hadoop cluster? There is a module to do that, just plug in your variables! This allows cross-team and cross-organization code reuse and ensures that the company is working to solve problems as a unit and solving them in the best way possible.
High Resolution available here
High Resolution available here
Click here to watch a video of Terraform Plan, Apply, and Destroy
- IBM Cloud Schematics - The service overlay that enables teams to more easily and safely take advantage of Terraform with IBM Bluemix.
- Infrastructure as code (IaC) - which encapsulates all cloud resources. These can be any IaaS resource such as baremetal servers, virtual machines, containers, load balancers, software defined networking resources, etc; SaaS offerings such as watson services, message hub (message queue), etc; or PaaS offerings such as D(ata)B(ase)aaS, functions as a service (OpenWhisk), etc.
- Terraform - The underlying IaC engine used by IBM Cloud Schematics.
- Configuration - A Terrform Configuration which is a collection of Terraform files which defines the infrastructure as code.
- Modules - A special reusable configuration that is often used as a building block that encapsulates a certain functionality. Used in both configurations and by other modules. A configuration or module can include N modules.
- Configuration Management - tools that install and manage software on any number of resources (baremetal and virtual servers, containers, etc); e.g. chef, puppet, ansible, etc but also bash scripts and images (iso, docker images, vmdk, etc).
- Schematic - A collection of resources that represents an IaC solution. Generally composed of a configuration which potentially uses some N # of modules and configuration management for bootstrapping, as well as documentation and diagrams which are all housed in a source control management repository and displayed through the IBM Cloud Schematic service user interfaces (be they API, CLI, or Web UI).
Click here for the temporary Terraform documentation - IBM is working on a more permanent and professional home for Terraform documentation - stay tuned
Currently the service itself is not available (as of April 06 2017). Early access involves using an IBM supplied and custom-built Terraform binary from a users local machine (not publicaly available). You must be a "Sponser User" to gain early access.
IBM Cloud Schematics will invite companies to be sponsor users; The sponsor user program at IBM creates a partnership between the two companies which will have the two work closely so that IBM can solve the sponsor user's problems with the IBM Cloud Schematics product and the Bluemix platform. It also enables the sponsor user to gain access to the internal progress of the product as well as influence over the direction and roadmap. This involves hands on observation and working sessions with development and operation teams. A more in-depth presentation and discussion will explain the details of what it means to be a sponsor user.
If you are not already a sponsor user, but are interested in becoming one, please contact ckelner@us.ibm.com with subject line "Schematics Sponsor User" introducing yourself.
See the "Getting Started" section for further details on what to do next.
- 1-hr Sponser user introduction and deep-dive into your architecture
- 2-hr on-boarding development and technical dive session
- 2-hr follow-up working session (get something real built)
- Ongoing collaboration via Slack, Email, GitHub
- Bi-monthly 1-hr sync sessions (every two weeks)
You must be a "Sponser User" before you can complete the following steps.
IBM currently has an independent binary from Terraform core. Currently there are two flavors available, one for linux and one for OSX (both for amd64 architectures). The current version is based on terraform 0.9.1
.
Please obtain the password from the IBM Schematics team to download these binaries: click here to download.
Place the terraform
binary into /usr/local/bin
. If you already have terraform
installed on your system and you want to continue to use it, you'll need to update your $PATH
environment variable to make /usr/local/bin
take precedence, OR rename the IBM Cloud terraform binary to something else (e.g. ibm-cloud-tf
). If you decide to update $PATH
you can simply add export PATH=/usr/local/bin:/usr/local/sbin:/opt/local/bin:/opt/local/sbin:$PATH
to your ~/.bashrc
or ~/.profile
(if those files don't exist you can create them) and open a new terminal to take effect.
Place the terraform
binary into /usr/local/
. If you already have terraform
installed on your system and you want to continue to use it rename the IBM Cloud terraform binary to something else (e.g. ibm-cloud-tf
).
Navigate to https://github.com/IBM-Bluemix/tf-single-vm and follow the directions in the README. It will guide you through setting up your credentials and executing Terraform to create running resources from the configuration.