Macaw Overview
Download 1280x800 Macaw Parrots, Green Plants, Leaves, Birds Wallpaper for Windows / Mac, Notebook,iPhone and other Smartphones. Discover your new all-purpose inbox. Write emails, create notes, set reminders and assign to-dos—your everyday tools, in Twobird. Download Macaw for free. The Macaw music software implements many plugin synthesizers, a clip based MIDI and Audio sequencer, a wave editor and a soundfont editor and sampler. It used for composing and live playback of all kinds of music.
Macaw Software
Macaw is an enterprise grade prescriptive Microservices platform. Macaw provides comprehensive toolset, many built-in core services, CI/CD integrations, management & operational capabilities and cloud agnostic deployment to accelerate enterprise cloud native journey.
Macaw overview:
- API modeling in JSON or Yang and Swagger documentation for microservices, or collection of microservices called as blueprints.
- Codegen, build and publish toolset for Microservice development. Java, Javascript language for service implementation, with more languages support coming in future.
- Many built-in core, essential services like database (Cassandra, MySQL), logging (Elasticsearch), identity with multi-tenancy etc. for rapid app development and focus on business logic.
- Microservice metadata allows for standardization, auditing, policy enforcement and service discovery & provisioning. Microservice tag identifies a specific code commit and can be used for release/sprint progression, staging or production usage.
- Macaw microservices are packaged as Docker containers. MDR (Meta Data Repository) holds the service blueprints, Metadata information, available Docker tags for a specific service. Docker registry holds service container images.
- Macaw service catalog serves as a marketplace and presents microservices that are available in selected MDR/Docker repositories, which can be private, shared or public.
- Macaw provides macaw CLI and a graphical web based console to deploy, scale and administer (monitor, troubleshoot) platform and the microservices. Message co-relation and event visualization serve as essential troubleshooting and analytics tools.
- From a runtime standpoint, Macaw is a distributed app running on top of one or more standalone Docker nodes that host Macaw microservices. Messaging, routing and loadbalancing among the nodes and services is achieved using Kafka & Zookeeper over SSL and frontend UI messages are loadbalanced through HAProxy. For service level resiliency, Macaw creates multiple instances of a microservice and operates it as a cluster using its native placement, load balancing algorithm.
- Macaw can be configured to send container placement request to a resource scheduler like Kubernetes or Docker Swarm, which will assume responsibility of container placement and high availability.
- Macaw offers several installation choices. For on-prem, Macaw can be installed on developer machine (Mac/PC/Linux) using Vagrant and VirtualBox, or on VMware vSphere. For clouds, Macaw AMIs are available on AWS Cloud and for other clouds, Macaw can be installed on top of CentOS based Linux nodes using installer scripts.
Setup and Installation
Following sections will cover Macaw platform installation and development environment setup on a MAC(OSX). For information on other installation options refer to documentation.
In the below steps, you are going to launch a CentOS Virtual machine using Vagrant/Virtualbox and run macaw platform on it. On the local MAC system, you will follow the instructions to install necessary tools tools like Docker and MACAW SDK to be able to develop micro services, publish and provision them on the macaw platform. From here onwards, Local Host/System will be referring to your MAC System and platform/vagrant/macaw VM refers to the Virtual Machine which is launched using Vagrant/Virtualbox
Before proceeding further, please go through the download instructions.
Download
Request Macaw Download by providing your contact information. You will receive a download link with all the details in an E-mail after accepting EULA.
Requirements
System:- MAC System Running OS X
- Memory - Minimum 12GB
- CPU - Minimum 2 Cores
Below is a list of software requirements needed to bring up macaw platform and also the necessary development environment to be able to develop/publish and deploy microservices. If you already have working versions of any of these tools just make sure to verify the versions and skip the installation. If not present, follow the link for each and do the required installation as suggested.
- Vagrant - Version 1.8.7 (or above)
- Virtual Box - Version 5.1.x (or above)
- Oracle JDK - Version 8 (or above) (Skip this step if java is already present)
- Apache ant - Version 1.9.x (or above) with Ant-contrib.
- Python 2.7.x and dependent packages. Python is installed by default on most of the systems. Check the version and skip python installation if version is 2.7.x
Note: Click here to verify your vagrant/virtual box versions and sanity of the installation.
Install the necessary python modules using pip command.
Note: Make sure to follow all 3 three steps including the Docker Installation verification.
Launching the Platform VM
In the below section, you will be launching a Virtual machine using Vagrant/Virtualbox. Macaw platform will be installed on this VM.
VM Launch stepsNote: The above steps download the box image from macaw.io and the completion time would be dependent on the network speed.
Sanity Check
On completion of above steps you are now logged into Platform VM. Note down the IP address of the VM using the following command. The Virtual Machine is pre-configured with the IP 192.168.33.10. This IP is reachable only from your current host. The VM will be able to access the rest of the internet.
In this case the IP is
Note: The Vagrant VM can be customized by editing the Vagrantfile before issuing the command vagrant up. Follow documentation from Vagrant on how to edit Vagrantfile.
Platform Installation
Execute the below sequence of steps on Vagrant/Platform VM to complete platform configuration and installation. You will receive the as part of the downloads registration confirmation email.
Execute macaw setup to generate the platform and provisioner configuration. Accept EULA when prompted. For Platform Host and Service Host, provide the IP 192.168.33.10 that you noted earlier. For all other settings, you can hit enter to select the defaults and type yes to accept.
SetupBootstrap Macaw Infra
Bootstrap Macaw PlatformDuring the dbinit step in the below commands, user would be prompted to enter Platform Admin Username and Password. By default the user would be '[email protected]' and the password is 'admin'. You can chose to configure your specific platform admin user with a different password. The username is an email address.
Bootstrap Macaw onprem ToolsNote: The docker registry tag is pulled from the public docker registry.
Verify the InstallationThe above command would display the status of the Macaw Infra/Platform/Tools. If you notice any container exiting/restarting, check the documentation/support team ([email protected]) for further troubleshooting.
If no errors were encountered till this point then you have successfully completed platform installation.
Login to Macaw Console
Once the above steps are executed, macaw console can be accessed at:
Login with username/password specified during setup. Default login is shown below.
Username:
password:
Get familiar with the interface. Navigate to Services tab to view running services. Click on any of the service to view its details, or browse/invoke APIs.
Fig. Macaw Console Login
Fig. Microservice Clusters
Fig. Microservice Details
Fig. Microservice API
SDK and Dev Environment
Once Macaw platform is up and running, you can quickly build and deploy example microservices that are packaged in SDK. To build more comprehensive and real-world Microservice applications refer to SDK developer guide
Download and Setup the SDK
As part of the download registration confirmation email, SDK downloadable link would be sent. Download the macaw SDK and untar it into your local project development directory.
Macaw Software Download
Add the below entries to your ~/.bashrc
Source the environment
![Macaw software Macaw software](https://cdn.guidingtech.com/imager/media/assets/190747/Beautiful-HD-Birds-Wallpapers-Download_7c4a12eb7455b3a1ce1ef1cadcf29289.jpg?1524142274)
Note: From here onwards, these environment variables will be referred in the entire documentation. Some of the macaw tools also refer to these environment variables to locate the services you are trying to publish.
MACAW_SDK_HOME - Directory where your downloaded macaw SDK artifacts are present.
MACAW_SERVICES_HOME - Directory where you are developing your microservices
MDR and Docker Registry
Copy the file from the output of the tools installation. The default path is on your platform VM. Copy the file to the SDK directory at the below location
The onprem Docker Registry is setup with self signed private certiicates. It is necessary to setup up the trust for the docker daemon on Host (MAC Host) to be able to communicate with onprem docker registry installed as part of the tools. Below are the instructions on how to achieve this for Host (MAC). Please refer to macawpublish documentation for more details.
On the Host (MAC)Step 1: Download the ca.crt in to your /Users/<id>/Documents folder.
Macaws Windows
Step 2: Connect to the Docker VM and Copy Certificate
Step 3: Verify docker login from the host
Once this point is reached successfully, macaw platform and development environment is setup successfully to be able to develop new micro services and be able to publish and provision them.
Note: Due to limitation with docker version 1.12.x on MAC, if your system or docker restarts, you have to repeat these 3 steps. The copied certificate is lost.
Develop Microservice
Once SDK and development environment setup is complete, you are ready to start developing and running microservices in Macaw platform. In this guide, we will pick one of the SDK quickstart examples. To develop new microservices you can clone SDK quickstarts or develop new microservices by referring to SDK Developer guide.
Develop Macaw Microservice
Macaw Microservices currently support Java and Javascript languages. Go to directory and pick microservice.
Model your Microservice.
You can use the existing calculator sample and build on top of it.
Artifact Generation Properties
Once you have modeled all your APIs then, then you specify how and where you would like to generate the artifacts in a simple properties file.
Modify the service artifact properties with highlighted values shown below. Leave defaults for rest
Note: Replace the environment variables with absolute paths. The code generation tool doesnt support environment variables yet.
Codegen
Next step is to use our code generator tool from Macaw SDK to generate required artifacts and stubs that are ready for you to go ahead and implement your Microservice. You will have separate stubs for public API implementation and internal service implementation.
Note: At this point your service directory $MACAW_SERVICES_HOME/calculator is created. Go through the detailed documentation to understand the directory structure of the service.
![Macaw software download Macaw software download](/uploads/1/0/5/6/105652277/259229272.jpg)
Implement business logic in the Microservice
Provide business logic and implementation in the java/javascript source files generated in impl directory.
Provide implementation for and methods similar to the highlighted text shown below
Building the Microservice
Build your Microservice using generated build files with familiar tools like ant. This will generate the target executable jar files.
Now you are ready to containerize this Microservice and publish to repository.
Now you are ready to containerize this Microservice and publish to repository.
Publish the Microservice
Create and publish the Microservice Blueprint
Macaw blueprint is a collection of related Microservices that function like a module. For example, you can have a blueprint called ‘Infrastructure Services’ and package all related infrastructure Microservices in the blueprint.
In this example, we only have one service in the blueprint.
Note: Creation and publishing of blueprint is a one time process and need not be repeated for the same service.
Create Blueprint:
Blueprint create successfully and stored at: Blueprint can be uploaded to MDR using macawpublish blueprint <Blueprint File> Publish Blueprint:
In this example, we only have one service in the blueprint.
Note: Creation and publishing of blueprint is a one time process and need not be repeated for the same service.
Create Blueprint:
Blueprint create successfully and stored at: Blueprint can be uploaded to MDR using macawpublish blueprint <Blueprint File> Publish Blueprint:
Publish the Microservice
Once we have created and published the blueprint, it’s time to publish the Microservice that we have built.
Publish the Microservice metadata, tag name. Along with the metadata publishing, this will also build container image and publish to docker registry
Publish the Microservice metadata, tag name. Along with the metadata publishing, this will also build container image and publish to docker registry
Deploy the Microservice
Login to the Macaw DevOps console
Browse to Catalog and select the onprem repository.
Locate your Microservice
Deploy the Microservice. Make sure to select the correct tag you used when you published the Microservice. In a production environment, this also means release team can pickup code from your SCM like SVN, GitHub, BitBucket etc. and apply tags to the services. QA team can pickup these tags and perform validations and announce sanitized versions through tags.
Once you have deployed your service, you can locate the running version of your instance in Services tab
Now that your service is up and running, you can browse the API, invoke APIs from API browser.
Browse to Catalog and select the onprem repository.
Locate your Microservice
Deploy the Microservice. Make sure to select the correct tag you used when you published the Microservice. In a production environment, this also means release team can pickup code from your SCM like SVN, GitHub, BitBucket etc. and apply tags to the services. QA team can pickup these tags and perform validations and announce sanitized versions through tags.
Once you have deployed your service, you can locate the running version of your instance in Services tab
Now that your service is up and running, you can browse the API, invoke APIs from API browser.